我正在跑步: WAMP服务器版本2.5 PHP版本5.5.12 Aparche 2.4.9 Mysql 5.6.17 Windows 7的 Xdebug 2.2.5
我已经使用他们在网站上提供的xdebug向导安装了推荐版本的xdebug并配置了我的php.ini文件,如下所示:
xdebug.remote_autostart=on
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_host= "localhost"
xdebug.remote_port=9000
xdebug.remote_mode=req
xdebug.idekey="netbeans-xdebug"
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "my path"
xdebug.show_local_vars=0
然后我尝试使用此处概述的方法测试xdebug:https://blogs.oracle.com/netbeansphp/entry/howto_check_xdebug_installation
它表示使用以下代码创建文件:
<?php
$address = '127.0.0.1';
$port = 9000;
$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_SESSION_START = mysession
我已经完成了,我收到以下错误消息:
Warning: socket_bind(): unable to bind address [10048]: Only one usage of each socket address (protocol/network address/port) is normally permitted. in stuff.php on line 5
Call Stack
# Time Memory Function Location
1 0.0010 242312 {main}( ) ..\stuff.php:0
2 0.0010 242976 socket_bind ( ) ..\stuff.php:5
Unable to bind
所以我去命令提示符运行netstat -aon,发现pid为3300的进程正在监听0.0.0.0:9000。我检查了任务管理器,结果发现它是httpd.exe。我试图改变
xdebug.remote_port=10000
但我得到同样的信息。
我不确定如何从这里开始。
答案 0 :(得分:0)
重启后问题似乎已经解决了。我不知道是什么修好了。
答案 1 :(得分:0)
我用一些命令创建了一个php文件,只是为了关闭套接字。然后我在另一个标签中打开它。所以我之前运行的选项卡(使用socket_listen)现在运行正常。试试吧。经过一些测试后,错误完全停止,但稍后再次出现。我认为这不是一个解决方案,但可以帮助理解问题。这是第二个文件的代码:
<?php
$address = '127.0.0.1';
$port = 9000;
$socks = socket_create(AF_INET, SOCK_STREAM, 0);
socket_close($socks);
?>
答案 2 :(得分:0)
我遇到了同样的问题,检查了php和xampp的版本就解决了:事实证明,xampp在64位计算机上安装了32位,我选择了错误版本的xdebug(它必须是32位)