2012-04-01 55 views
22

我安装了Xdebug,一切正常,直到突然停止工作。 phpinfo()给出了一个带有所有变量的很好的XDebug输出。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 

然而,运行此代码应该检查的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安装,我走了两遍这些步骤。我的配置有什么问题?谢谢。

+0

甚至在添加xdebug.remote_log =“/ tmp/xdebug.log”并重新启动Apache2并运行应用程序日志为空之后... – valk 2012-04-02 05:50:59

回答

10

最后,只留下了两个解决方案 - 重新安装Ubuntu操作系统或安装新的虚拟机,特别是xdebug,我打算为第二个解决方案。 有趣的是,一切都按照“RTM”(f = freaking)工作。我无法弄清楚的一件事是如何阅读XDebug的日志,以便了解真正的问题所在。

UPDATE

有些挣扎之后,我删除了所有的php.ini中,我不得不Xdebug的有关每一行。并将这些行移至/etc/php5/conf.d/xdebug.ini。重新启动Apache,然后是PHPStorm,它可以工作。 P.S.在中间,我试图从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" 
0

检查端口没有被占用,检查NetBeans是配置为侦听端口(我看你有没有9001,9000是默认的通常情况下)也当我使用Eclipse调试我必须“终止并重新启动”调试因为它停止工作,永远不会为什么,我怀疑某种过期的调试会话

2

我在Ubuntu更新php后也有这个问题。对我来说,在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&postcount=14

6

在服务器上,试试这个命令:

$ netstat -anp | grep CLOSE_WAIT

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

+0

对于那些不完全熟悉linux的人,我使用ubuntu的PID命令是最后一列:3131/apache2 PID = 3131 – espradley 2017-07-21 16:31:32

1

我检查我

netstat的-anp

输出,并发现有我的远程机器[运行的XDebug]上开放套接字(在XDebug的端口范围)由主进程的数。

杀死'主'过程解决了我的问题。

对我来说就像是一个港口超限的情况。 认为这些信息可能对某些人有用。