为什么 xDebug 不适用于 Ubuntu 上的 Php Storm?

Why does xDebug do not work with Php Storm on Ubuntu?

我已经安装了 xdebug 并尝试将它与 phpstorm 一起使用。但它不想正常工作。

我尝试将以下设置放入 /etc/php5/apache/php.ini/etc/php5/mods-avaible/xdebug.ini:

zend_extension="xdebug.so"

; Debugging
xdebug.remote_enable= 1
xdebug.remote_port= 9000
xdebug.idekey = "PHPSTORM"

; Var-Display
xdebug.var_display_max_children = 2048
xdebug.var_display_max_data = 8192
xdebug.var_display_max_depth = 99
xdebug.max_nesting_level = 3000

我认为`xdebug.ini 应该是这个设置的正确位置。

然后我用 sudo service apache2 restart 重新启动了 apache 并打开了一个打印出 phpinfo() 的页面。但正如您在屏幕截图上看到的那样 - 它一直显示 netbeans-xdebug.

我能做什么?我在整个系统中搜索了其他 php.ini 个文件,但没有任何其他文件。

我的问题的解决方案

我发现在我的浏览器中,即使在重新启动我的系统后(显然)一个 cookie XDEBUG_SESSION=netbeans-xdebug 导致了这个问题。

删除它并重新加载我的 phpinfo() 页面后,我的新 idekeyPHPSTORM,现在 xdebug 可以与我的 ide.

一起使用

我认为问题在于我安装了 xdebug 并在没有设置的情况下使用我的 ide 进行了尝试 - 所以 idekey 的(默认?)值是这个 netbeans-xdebug 值。一旦设置了 cookie,只要这个 cookie 还存在,它就会忽略 php 设置。

这对我有用。

zend_extension="/usr/lib/php5/20121212/xdebug.so"
[xdebug]
xdebug.remote_enable = on
xdebug.profiler_enable = off
xdebug.show_local_vars=0
xdebug.max_nesting_level = 500

但是运行下面的命令先定位xdebug.so

locate xdebug.so

并相应地更改以下行

zend_extension="/usr/lib/php5/20121212/xdebug.so"

它通常会发生(如果 xdebug.so 的路径是正确的)因为 remote_enable 被设置为关闭。

xdebug.remote_enable=on

可能会解决问题。