我安装了Xdebug,一切都很好,直到它突然停止工作。phpinfo()为所有变量提供了一个不错的XDebug输出。
php -m | grep deb
还提供了两次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
然而,当使用should check 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);
此外,根据XDebug的安装,我完成了两次步骤。我的配置出了什么问题?谢谢
最后,我只剩下两个解决方案——重新安装Ubuntu操作系统或安装一个新的虚拟机,特别是为xdebug安装,我选择第二个。有趣的是,一切都按照"RTM"(f=怪异)进行。有一件事我想不通,那就是如何读取XDebug的日志,以了解真正的问题在哪里
更新
经过一番努力,我从我拥有的每一个php.ini中删除了与xdebug相关的每一行。并将这些行移到/etc/php5/conf.d/xdebug.ini。重新启动Apache,然后启动PHPStorm,它就工作了。顺便说一句,在中间,我尝试从github和标准的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"
在服务器上,尝试以下命令:
$ netstat -anp | grep CLOSE_WAIT
任何:9000个条目都会给XDebug带来麻烦;考虑CCD_ 2。
更新php后,我在Ubuntu上也遇到了这个问题。对我来说,打开php.ini中的html错误可以让xdebug和Netbeans重新工作。。。
sudo vi /etc/php5/apache2/php.ini
display_errors = On
html_errors = On
并重新启动apache:
sudo /etc/init.d/apache2 restart
http://ubuntuforums.org/showpost.php?p=9592364&后计数=14
我检查了
netstat-anp
输出,并发现我的远程机器上的主进程[运行XDebug]有许多打开的套接字(在XDebug端口范围内)。
杀死"大师"进程为我解决了问题。
对我来说,这似乎是一个港口超载的情况。我觉得这些信息可能对一些人有用。
检查端口是否被占用,检查netbeans是否被配置为侦听该端口(我看到你通常有9001,9000是默认值)。此外,当我使用eclipse进行调试时,我必须不时"终止并重新启动"调试会话,因为它停止了工作,我从未低估过为什么,我怀疑某种过期的调试会话
检查是否将断点放在正确的文件中。查找脚本进入的第一个文件(前端控制器)。例如,在symfony上可以有多个符号。
在我的情况下,在将xdebug更新到3版本后,我只放入/设置php.ini配置
error_reporting=E_ALL
display_startup_errors=1
display_errors=1
然后命令CCD_ 3显示所有警告和错误。就我而言:
Xdebug: [Config] The setting 'xdebug.remote_enable' has been renamed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_enable (See: https://xdebug.org/docs/errors#CFG-C-CHANGED)