1. Visual Studio Code
1.1. 安裝、設定
- 官方下載下傳
- macOS
- Linux
- Windows
-
推薦配置
請參考這裡,隻是一些初始設定、美化等,與 PHP 調試無關。
1.2. PHP Debug
-
安裝
快捷鍵 cmd + p 或 ctrl + p,輸入
注意:安裝完成後必須重新開機 vscode。ext install php debug
-
配置
打開一個 PHP 項目,點選菜單 Debug > Add Configuration,或按照下圖操作
詳細配置如下:
配置成功後,在項目下生成一個包含該配置的目錄,如下:{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9001, // 對應 XDebug 的配置 "stopOnEntry": true, "pathMappings": { // "容器中對應的項目位址": "本機項目位址" // 絕對路徑 "/var/www/html/test/": "${workspaceRoot}" } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9001 } ] }
. ├── .vscode │ ├── launch.json ├── 其它項目檔案
2. Docker 下的 PHP 環境
推薦直接克隆我之前封裝的一個基于 Docker 的 LNMPA 環境,當然你也可用使用你自己的 Docker PHP 環境,但是這裡的配置是針對 Nginx + Apache 的組合形式,你可以根據具體環境進行調整。
詳細如下:
2.1. 安裝、配置 XDebug 擴充
- 修改 Dockerfile 檔案,安裝 XDebug
修改後,需要重新編譯對應的鏡像檔案,更多安裝擴充的方式請參考:Docker 中的 PHP 如何安裝擴充... && mkdir -p /tmp/xdebug \ && wget -c https://github.com/xdebug/xdebug/archive/2.6.0.tar.gz \ && tar -xf 2.6.0.tar.gz -C /tmp/xdebug --strip-components=1 \ && docker-php-ext-configure /tmp/xdebug --enable-xdebug \ && docker-php-ext-install /tmp/xdebug \ ...
-
配置 XDebug
在 php.ini 檔案追加以下配置
說明:[XDebug] zend_extension = xdebug.so xdebug.remote_enable = 1 xdebug.remote_handler = dbgp xdebug.remote_port = 9001 xdebug.remote_autostart = 1 xdebug.remote_connect_back = 0 xdebug.idekey = docker xdebug.remote_host = 192.168.2.14
- remote_port 預設 9000,為避免沖突,改為 9001
- remote_host 是主控端的 ip 位址
2.2. 調整 Nginx server 配置
server {
listen 80;
server_name my.test; # 這裡替換你的域名
index index.html index.htm index.php;
root /usr/share/nginx/html/test;
...
location ~ .*\.(php|php5)?$ {
proxy_pass http://php_apache:8091; # 這裡是對應的 apache 容器位址和端口
proxy_read_timeout 300;
proxy_send_timeout 300;
index index.php;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
...
}
主要追加以下兩個參數,用以解決在 debug 時 504 逾時問題,具體數值可根據需要設定。
- proxy_read_timeout
- proxy_send_timeout
2.3. 暴露 XDebug 通信接口
修改 docker-compose.yml 檔案,在 nginx 和 apache 服務下通過 expose 暴露 9001 端口
使用如下指令重新啟動服務
docker-compose stop
docker-compose down
docker-compose up -d
3. 測試斷點調試
按快捷鍵
F5
打開斷點,此時在浏覽器中通路網頁,将跳轉到 vscode 編輯器,并且樣式如下:
說明:上圖是一個 TP 項目,雖然沒有手動設定斷點,但是開啟調試模式後,通路網頁會首先進入根目錄下的架構入口檔案。
版權聲明:本文為CSDN部落客「weixin_34097242」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_34097242/article/details/91745201