我有一个配置了apache2,php7和xdebug的docker容器。
我在容器中运行了以下脚本,以确认可以从包含?XDEBUG_START_SESSION = mySession的请求网址远程触发xdebug。当我请求附加了附加字符串的php文件时,以下脚本完成显示连接已被接受,因此xdebug似乎被成功触发。
$address = "127.0.0.1";
$port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
if ($sock === false) {
echo "Socket connection failed... ";
$lastError = socket_last_error();
echo socket_strerror($lastError);
} else {
echo "Socket connection made... ";
$bindResult = socket_bind($sock, $address, $port);
if ($bindResult) {
echo "Bind was successful... ";
$listenResult = socket_listen($sock);
if ($listenResult) {
echo "Socket is listening... ";
$client = socket_accept($sock);
if ($client === false) {
echo "Accept failed... ";
$lastError = socket_last_error();
echo socket_strerror($lastError);
} else {
echo "Connection accepted... ";
echo "connection established: $client";
socket_close($client);
}
} else {
echo "Listening failed... ";
$lastError = socket_last_error();
echo socket_strerror($lastError);
}
} else {
echo "Bind failed";
$lastError = socket_last_error();
echo socket_strerror($lastError);
}
socket_close($sock);
}
现在我尝试使用eclipse neon.3运行手动启动的调试会话,它似乎挂起了eclipse显示启动file.php的状态:(48%)
任何关于尝试使用xdebug进行eclipse的想法都将非常感激。
xdebug的.ini设置为:
xdebug.profiler_enable_trigger = 1
xdebug.trace_enable_trigger = 1
xdebug.remote_enable=1
xdebug.remote_host="172.18.0.1"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
远程主机地址是通过观察容器的phpinfo()上的REMOTE_ADDR条目获得的。