本機一直使用docker開發,對於習慣使用偵錯的人來說,PHP放在docker容器中又多了一層難度。
當然,這隻適用於還不懂設定的時候,一旦掌握竅門,其實是簡單不過的事情,和本機設定幾乎無任何難度差別。
開始之前,我們先做一些環境假設:
/Users/gary/dnmp/www/localhost
/var/www/html/localhost
localhost
,並在主機hosts和nginx設定中繫結9000
埠與nginx容器/應用連線這裡的域名不一定是localhost
,如果你用了Laravel、Yii、Thinkphp等框架,那一般會用類似 mydev.com
、dev.awaimai.com
、awaimai.dev
的域名,本文一樣適用。
主要設定如下:
[XDebug] xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = host.docker.internal
這幾行的作用是:
dggp
host.docker.internal
,也就是docker容器所在的主機。如果主機是Linux系統,host.docker.internal
可能用不了,需要改用PHP容器和主機同一虛擬網路下的IP,在主機中用docker network inspect dnmp_default
命令可找到,其中dnmp_default
是容器的所在的網路。這裡我們沒有設定xdebug.remote_port
,因為xdebug預設使用9000
,與我們FPM一致了,不用再設定。如果FPM使用其他埠,remote_port
也要改成相應埠。
設定完成後,重新啟動PHP容器。
1 選單選擇 Run – Edit Configurations,
2 在彈出的框中點左上角的 +
號,選擇 PHP Web Page
。
3 現在還沒有任何的伺服器,我們要加一個。如下,點選 server 右側的 ...
按鈕。
4 然後就是設定伺服器的資訊,這裡就是docker容器了。
localhost
,如果你的域名類似awaimai.dev
,那就填awaimai.dev
。80
埠,所以這裡保留預設80
。勾選
,然後填寫原生程式碼與容器程式碼的對映關係。如果用的是框架,這裡就填框架的根目錄。然後點選OK儲存。
5 返回後,
Index
。localhost
。/
表示首頁,如果是其他頁面,比如/home/index
,那就填/home/index
。點選OK
儲存。
返回程式碼視窗,在程式碼前打一個【斷點】,再點選【偵錯按鈕】,如下:
PHPStorm就會自動開啟瀏覽器,等程式執行到斷點時,自動停止。
這裡我們就可以看到PHP中的全域性變數、呼叫棧、臨時變數,
並且可以單步偵錯,非常方便。
以上就是手把手教你phpstorm如何偵錯Docker中PHP專案的詳細內容,更多請關注TW511.COM其它相關文章!