Xdebug停止工作,我在哪里寻找错误?

val*_*alk 30 php ubuntu xdebug response

我安装了Xdebug,一切都很好,直到它突然停止工作.phpinfo()为所有变量提供了一个很好的XDebug输出.

php -m | grep deb
Run Code Online (Sandbox Code Playgroud)

还提供两次XDebug(对于Zend和PHP),所以再次看起来很好.我的php.ini有这些行:

zend_extension=/usr/lib/php5/20090626/xdebug.so
;extension=xdebug.so
xdebug.remote_host=localhost
xdebug.remote_enable=on
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=1
Run Code Online (Sandbox Code Playgroud)

然而,当运行此代码时,应检查XDebug(来自Netbeans文档),它只是卡住了.所以没有IDE正在使用XDebug.

<?php
$address = '127.0.0.1';
$port = 9001;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);
Run Code Online (Sandbox Code Playgroud)

另外,根据XDebug的安装,我走了两步.我的配置有什么问题?谢谢.

val*_*alk 13

最后,只剩下两个解决方案 - 重新安装Ubuntu操作系统或安装一个新的VM特别是xdebug,我要去第二个.有趣的是,一切都按照"RTM"(f = freaking)工作.我无法弄清楚的一件事是如何读取XDebug的日志以了解真正的问题所在.

UPDATE

经过一番挣扎,我从每个php.ini中删除了与xdebug相关的每一行.并将这些行移至/etc/php5/conf.d/xdebug.ini.重启Apache,然后PHPStorm,它的工作原理.PS在中间,我试图用gclub和标准的Ubuntu版本安装带有pecl的xdebug.我认为我编译的那个目前正在工作.并且......日志也会更新.

;xdebug configuration
zend_extension = /usr/lib/php5/20090626/xdebug.so
xdebug.remote_host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"
Run Code Online (Sandbox Code Playgroud)


Der*_*huk 11

在您的服务器上,尝试以下命令:

$ netstat -anp | grep CLOSE_WAIT

任何:9000个条目会给你XDebug麻烦; 考虑kill -9 <pid>.

  • 对于那些不完全熟悉linux的人来说,我使用此命令在ubuntu上的PID是最后一列:3131/apache2 PID = 3131 (2认同)