我无法使VS Code扩展“ Php debug”在任何断点处停止。我正在Ubuntu笔记本电脑上从Docker运行php项目(我想调试)。任何建议,不胜感激。
我的设置:
我的VS Code launch.json文件是:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
"pathMappings": {
"/var/www/html": "/home/chris/my-test-debugging-project"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
我的/usr/local/etc/php/conf.d/xdebug.ini配置为:
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=172.17.0.2
xdebug.remote_log=/var/www/html/xdebug.log
xdebug.remote_connect_back=0
xdebug.remote_port=9000
XDebug日志文件(来自在php.ini中设置xdebug.remote_log):
Log opened at 2018-10-14 05:47:16
I: Connecting to configured address/port: 172.17.0.2:9000.
W: Creating socket for '172.17.0.2:9000', poll success, but error: Operation now in progress (29).
E: Could not connect to client. :-(
Log closed at 2018-10-
14 05:47:16
PHP调试日志输出(来自设置“ log”:launch.json中为true):
<- launchResponse
Response {
seq: 0,
type: 'response',
request_seq: 2,
command: 'launch',
success: true }
答案 0 :(得分:0)
据我所知9000是默认使用的php-fpm端口。因此,如果您为xdebug.remote_port=9000
使用相同的端口,则它将不起作用。您可以通过nginx conf作为示例cat /etc/nginx/conf.d/site.conf
来检查您是否可以检查行fastcgi_pass 127.0.0.1:9000;
或运行lsof -n -iTCP:9000 | grep LISTEN
来显示行是否被利用。我建议您
xdebug.remote_host
可能有误,登录到容器并尝试对172.17.0.2
进行ping操作,如果您的xdebug.remote_host
是错误的。找到主机的ip,将其替换为当前的172.17.0.2
答案 1 :(得分:0)
尝试设置xdebug.remote_connect_back=1
,让我知道是否可行。
如果这样做,我们应该以与问题that I previously answered相同的方式来结束该问题。
答案 2 :(得分:0)
我在VM上运行本地linux Web服务器。并使用samba将我的共享映射到Windows设备上的信中。我遵循了所有建议,但断点无法按预期工作。我只能调试将“ stopOnEntry”:true“添加到launch.json,但不能在个人添加的断点上将它们全部忽略。 我的问题是我的应用程序运行的路径,我这样修复:
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9900,
"log": true,
"stopOnEntry": false,
"pathMappings": {
"/var/www/html/booking" : "z:",
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9900
}
]
}
这显然是我的linux路径->“ / var / www / html / booking” 这是驱动器映射字母->“ z:”