我目前正在尝试将 Netbeans 作为 IDE 来处理 PHP 文件。部分工作是让 Xdebug 正常运行。我已经让 Xdebug 在 Windows 机器上工作,但这是我在 Linux 上的第一次尝试。
我得到了正确的模块,我按照http://xdebug.org/wizard.php上的说明进行操作
我也有一个正确的 phpinfo() 输出,带有 Xdebugsection pressent 和所有内容。我无法发布我的 phpinfo() 的输出,但那里一切似乎都很好。我的 php.ini 文件中的配置如下:
[XDebug]
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9101
[ZendModules]
Xdebug
我只希望能够连接到端口 9101(Xdebug 监听的端口)。我从网站上获得了以下小脚本来执行此操作。
<?php
$address = '127.0.0.1';
$port = 9101;
print $port . " " .$address . "\n";
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
print "sock = " . $sock . "\n";
socket_bind($sock, $address, $port) or die('Unable to bind');
print "socket bind worked \n";
socket_listen($sock);
print "listening on sock\n";
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);
?>
当我运行这个脚本时,我得到以下输出:
michael@michael-Inspiron-N5030:~$ php5 testXdebug.php
9101 127.0.0.1
sock = Resource id #4
socket bind worked
listening on sock
这意味着脚本不会完成运行,它只是停在那里,没有其他任何事情发生。
有人知道可能导致这种情况的原因吗?