3 回答

TA貢獻1818條經驗 獲得超8個贊
您不需要安裝 XAMPP,所有設置都由安裝了 PHP 的 WSL 管理。我在 Windows 10 21H2 中使用 WSL2 (Ubuntu 20) 有一個帶有 docker 的 Laravel 項目,這是我使 xdebug 工作的設置。我使用 Xdebug 2.9.8,xdebug.ini 中的文本有一些更改,但大部分是相同的。
PHP 7.1.33 (cli) (built: Nov 22 2019 18:34:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans
如果您使用將項目/文件從 Windows 掛載到 WSL2 環境
xdebug.ini
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_connect_back = Off
xdebug.remote_host = "host.docker.internal"
xdebug.remote_port=9009
Dockerfile
FROM php:7.1-fpm
RUN pecl install xdebug-2.9.8 \
&& docker-php-ext-enable xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/
Docker-compose.yml
services:
webapp:
working_dir: /var/www/html
volumes:
- ./my-project-folder:/var/www/html
進入您的項目文件夾,輸入code .以使用 WSL 打開項目,然后創建調試文件 (launch.json):(通過單擊擴展并選擇“啟用”在 WSL 中啟用 PHP Xdebug 擴展)
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9009,
"pathMappings": {
"/var/www/html": "${workspaceFolder}"
}
如果您使用 wsl 文件系統(在 wsl 環境中克隆您的項目,而不是從 Windows 掛載它):設置幾乎與 (1) 類似,但您需要一些額外的修改:
Docker-compose.yml
extra_hosts:
- "host.docker.internal:host-gateway"
VS Code 的 launch.json
"hostname": "0.0.0.0",
就這樣。根據我的經驗,第二種方法比第一種方法快得多。

TA貢獻2041條經驗 獲得超4個贊
您有兩個選項來啟用調試:
使用VSCode Remote - WSL 擴展,讓 VSCode 為您配置其他所有內容
在 php.ini 中配置 XDebug遠程配置
我的建議是使用 WSL 擴展方法。
請記住,如果您決定使用擴展方法,則會出現 Git 無法正確識別修改后的文件的問題

TA貢獻2051條經驗 獲得超10個贊
您已經安裝了 XDebug 3。Xdebug 的版本 3 改變了您需要配置其設置的方式。最重要的重大變化是監聽端口現在是9003而不是9000。這是我的本地主機中 Xdebug 3 的php.ini配置(它應該可以在任何地方工作):
[xdebug]
zend_extension="C:\xampp\php\ext\php_xdebug-3.0.4-7.4-vc15-x86_64.dll"
xdebug.mode=develop,debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.start_with_request=trigger
更改 Xdebug 擴展的路徑,您現在應該可以調試代碼了。
- 3 回答
- 0 關注
- 262 瀏覽
添加回答
舉報