本文關鍵點
10余年的淳安網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整淳安建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“淳安網(wǎng)站設計”,“淳安網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。Visual Studio Code Docker 下的 PHP 環(huán)境 XDebug 1. Visual Studio Code 1.1. 安裝、設置
官方下載
macOS Linux Windows推薦配置
請參考這里,只是一些初始設置、美化等,與 PHP 調(diào)試無關。
1.2. PHP Debug安裝
快捷鍵 cmd + p 或 ctrl + p,輸入 ext install php debug
注意:安裝完成后必須重啟 vscode。
配置
打開一個 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/debao/": "${workspaceRoot}" } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9001 } ] }
配置成功后,在項目下生成一個包含該配置的目錄,如下:
. ├── .vscode │ ├── launch.json ├── 其它項目文件 2. Docker 下的 PHP 環(huán)境
推薦直接克隆我之前封裝的一個基于 Docker 的 LNMPA 環(huán)境,當然你也可用使用你自己的 Docker PHP 環(huán)境,但是這里的配置是針對 Nginx + Apache 的組合形式,你可以根據(jù)具體環(huán)境進行調(diào)整。
詳細如下:
2.1. 安裝、配置 XDebug 擴展修改 Dockerfile 文件,安裝 XDebug
... && 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 ...
修改后,需要重新編譯對應的鏡像文件,更多安裝擴展的方式請參考:Docker 中的 PHP 如何安裝擴展
配置 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. 調(diào)整 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; } ... }
主要追加以下兩個參數(shù),用以解決在 debug 時 504 超時問題,具體數(shù)值可根據(jù)需要設置。
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. 測試斷點調(diào)試
按快捷鍵 F5 打開斷點,此時在瀏覽器中訪問網(wǎng)頁,將跳轉到 vscode 編輯器,并且樣式如下:
說明:上圖是一個 TP 項目,雖然沒有手動設置斷點,但是開啟調(diào)試模式后,訪問網(wǎng)頁會首先進入根目錄下的框架入口文件。