看起來一切正常,但 VSCode 并沒有停止調試。我有一個運行 PHP 映像的 docker 容器。我需要做什么才能在斷點處停下來?我在日志中看不到錯誤,恰恰相反,他們似乎在說斷點配置得很好,并且代碼運行正確。容器的 IP為 172.22.0.2,我的主機的 IP為 172.22.0.1文件xdebugo.so存在于容器內: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so主機host.docker.internal已正確設置。我使用以下方法構建了我的圖像:docker build -t phpdebug:5 .該文件/usr/local/etc/php/conf.d/xdebug.ini存在于正在運行的容器中。啟動.json{ "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000, "log": true, "externalConsole": false, "pathMappings": { "/": "${workspaceRoot}/" } } ]}碼頭工人-compose.ymlversion: '2'services: app: restart: 'no' image: phpdebug:5 command: php -S 0.0.0.0:8000 ports: - "8000:8000" volumes: - phpdata:/app environment: PHP_EXTENSION_XDEBUG: 1volumes: phpdata: driver: local driver_opts: type: 'none' o: 'bind' device: '/home/element/php/tuto'/usr/local/etc/php/conf.d/xdebug.inizend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"xdebug.default_enable=1xdebug.remote_enable=1xdebug.remote_port=9000xdebug.remote_handler=dbgpxdebug.remote_connect_back=0xdebug.remote_host=host.docker.internalxdebug.idekey=VSCODExdebug.remote_autostart=1xdebug.remote_log=/usr/local/etc/php/xdebug.log/etc/hosts127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters172.22.0.2 d484e93eed2a172.22.0.1 host.docker.internalDockerfile:FROM phpRUN pecl install xdebugRUN ip -4 route list match 0/0 | awk '{print $3 "host.docker.internal"}' >> /etc/hostsCOPY custom.ini /usr/local/etc/php/conf.d/xdebug.ini
1 回答

長風秋雁
TA貢獻1757條經驗 獲得超7個贊
日志顯示在<init數據包中:
file:///app/index.php
所有斷點的配置如下:
file:///home/element/php/tuto/result.php
這表明您所做的路徑映射不正確:
"pathMappings": {
"/": "${workspaceRoot}/"
}
在您的情況下,我認為應該是以下內容,前提是這兩個目錄都有一個index.phpandresult.php文件。如果沒有,您需要調整第二個路徑,使其成為包含index.php和result.php文件的路徑。
"pathMappings": {
"/app": "/home/element/php/tuto"
}
- 1 回答
- 0 關注
- 334 瀏覽
添加回答
舉報
0/150
提交
取消