PHP XDEBUG未启用

时间:2015-12-07 11:03:15

标签: php debugging xdebug php-7

无法启用XDEBUG。任何帮助或检查是否已启用且未反映?我在PHP7上,正在使用Xdebug 2.4.0rc2。 PHP.INI设置如下:

[XDebug]
zend_extension="C:/php/ext/php_xdebug.dll"

xdebug.remote_enable = on
xdebug.remote_host = localhost
xdebug.remote_port = 10000
xdebug.remote_handler = dbgp
xdebug.profiler_enable = 1 
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "profilerlogs"
xdebug.profiler_output_name = cachegrind.out.%p

无法启用它。这些步骤是正确的,但也没有显示在phpinfo()中。

6 个答案:

答案 0 :(得分:6)

我遇到了与 XAMPP PHP7相同的问题,现在它已经解决了:) 您的JSONObject contactData = new JSONObject(stringdata); JSONArray contactArray = contactData.getJSONArray("contactlist"); for(int i=0;i<contactArray .length;i++){ JSONObject jsonObject=contactArray.getJSONObject(i)); String id=jsonObject.getString("id") String key=jsonObject.getString("key") } 目录中应该存在丢失或错误的扩展文件。

这将解决您的问题。

  1. 转到xDebug
  2. Dowload Xdebug 2.4.0rc1(PHP 7.0 VC14 TS 32/64)
  3. 将其重命名为php_xdebug.dll
  4. 将此文件粘贴到&#34; php / ext&#34;夹
  5. 重新启动服务器。
  6. 现在检查您的C:/php/ext/

    在我的情况下,有64位版本,所以我只是改为32位

答案 1 :(得分:2)

除了@ haider-lasani所说的,请不要忘记你正在使用什么类型的PHP。最新的XAMPP正在使用一些非常复杂的设置。

转到PHP文件夹,检查是否有php7.dll或php7ts.dll。如果你有后一版本,那么你应该拿起TS版本的xdebug。 还要检查VC版本。在这种情况下它是VC14。 现在即使我使用的是TS版本的PHP,我仍然需要使用 zend_extension =“C:/php/ext/php_xdebug.dll”添加插件,而不是 zend_extension_ts =“C: /php/ext/php_xdebug.dll“

<强> TL; DR 下载xdebug时请确保:

  1. 检查x64 / x86位版本。(使用x86 xdebug只是为了安全)
  2. 检查您正在使用的PHP版本。
  3. 通过检查您是否拥有php {x} .dll或php {x} ts.dll来检查您是否拥有TS或非TS版本的PHP。{x}是您的php版本。
  4. 尝试在zend_extension和zend_extension_ts之间切换,在php.ini文件中包含xdebug插件,看看有什么用。
  5. 遵循所有这些步骤应该理想地解决您的问题。如果您仍然遇到任何问题,请告诉我。和平。

答案 2 :(得分:2)

如果您要在WSL或Linux上进行远程开发,请检查您的php目录,因为您可能需要在以下位置修改php.ini文件:

/etc/php/7.2/apache2/php.ini

/etc/php/7.2/cli/php.ini

使用

[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

;don't forget to change the path and filename to the correct one
;but make sure you use the full path

zend_extension="/usr/local/php/modules/xdebug.so"

答案 3 :(得分:1)

你不应该重命名你的DLL,最好不要这样做,因为它可以让你看到你运行的是什么版本的XDebug。

这是我做的,它的工作原理:

这个答案假设您使用正确的PATH条目设置了PHP,以便您可以从命令行运行PHP,例如GitBash https://git-for-windows.github.io/

  1. 打开命令行并输入:

    $ php -i

  2. 滚动到顶部并从命令行窗口开始复制输出

    phpinfo()

    .....复制内容,直到看到最后一行结束:

    If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net. `

  3. 转到XDebug Windows向导https://xdebug.org/wizard.php并将PHPInfo粘贴到大文本框中并提交。

  4. 将显示一个新页面,其中包含PHP的说明和&#34;系统摘要。请仔细按照说明操作,然后选择下载链接。

  5. 一旦你修改了PHP.ini并观察了你的&#34; ext&#34;文件夹是,将下载的XDebug dll文件复制到&#34; ext&#34;文件夹中。

  6. 再次打开命令行并输入以下命令:

    $ php -m

  7. 如果您按照说明正确,您会看到输出包含以下内容:

    [Zend Modules] Xdebug

    否则,您将在控制台输出的顶部看到错误,例如:       Cannot load Xdebug

    通常,错误的发生是因为您的XDebug:

    • 位置不正确
    • 版本错误
    • 由于线程类型,
    • 不兼容:您的PHP可能是线程安全的,而您的XDebug不是线程安全的(XDebug向导会自动选择正确的版本)

答案 4 :(得分:0)

我在一周前安装了Xampp。它已经在ext文件夹中安装了php_xdebug.dll文件。

对我来说,解决方案是指定xdebug文件,如下所示,没有文件路径:

zend_extension = "php_xdebug.dll"

答案 5 :(得分:0)

如果您使用的是运行PHP 7.2和Apache 2.4的Windows 10 x64,则在不使用完整路径的情况下指定DLL

zend_extension = php_xdebug-2.8.0-7.2-vc15-x86_64.dll

为我工作是因为我的extension_dir = "ext"已在php.ini中正确设置。

Here是一组详细的说明,如果您使用的是类似的设置。