手把手教你phpstorm如何偵錯Docker中PHP專案

2022-01-05 16:00:41
下面由教學欄目給大家介紹PHPStorm怎麼偵錯Docker中PHP專案 ,希望對需要的朋友有所幫助!

本機一直使用docker開發,對於習慣使用偵錯的人來說,PHP放在docker容器中又多了一層難度。

當然,這隻適用於還不懂設定的時候,一旦掌握竅門,其實是簡單不過的事情,和本機設定幾乎無任何難度差別。

1 環境

開始之前,我們先做一些環境假設:

  • 本機安裝了docker
  • 有一個安裝了xdebug擴充套件的PHP容器
  • 程式碼在本機的目錄是:/Users/gary/dnmp/www/localhost
  • 程式碼對映到容器目錄:/var/www/html/localhost
  • 專案使用域名localhost,並在主機hosts和nginx設定中繫結
  • PHP-FPM通過9000埠與nginx容器/應用連線

這裡的域名不一定是localhost,如果你用了Laravel、Yii、Thinkphp等框架,那一般會用類似 mydev.comdev.awaimai.comawaimai.dev的域名,本文一樣適用。

2 php.ini設定

主要設定如下:

[XDebug]
 xdebug.remote_enable = 1
 xdebug.remote_handler = "dbgp"
 xdebug.remote_host = host.docker.internal

這幾行的作用是:

  • 開啟xdebug遠端偵錯
  • 偵錯方式用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容器

2 PHPStorm設定

1 選單選擇 RunEdit Configurations

24a8eb40a65e47b75210b65071c7305.png

2 在彈出的框中點左上角的 + 號,選擇 PHP Web Page

75804f3456c240320f2647483ae082a.png

3 現在還沒有任何的伺服器,我們要加一個。如下,點選 server 右側的 ... 按鈕。

1bb78b64c6d95d29ead8cb2a53ca5b9.png

4 然後就是設定伺服器的資訊,這裡就是docker容器了。

  • Name:伺服器名稱,隨便寫都可以。
  • Host:域名,這裡我用localhost,如果你的域名類似awaimai.dev,那就填awaimai.dev
  • Port:連線伺服器的埠。這裡我們通過nginx連到PHP,用的是80埠,所以這裡保留預設80
  • Debugger:用Xdebug。
  • Use path mappings:這裡一定勾選,然後填寫原生程式碼與容器程式碼的對映關係。如果用的是框架,這裡就填框架的根目錄。
b4c488fcc5b66f548d9276e6af76616.png

然後點選OK儲存。

5 返回後,

  • Name:填寫一個設定名稱,隨便填,這裡我們偵錯首頁,填Index
  • Server:下拉選擇伺服器,這裡我們選擇剛加的localhost
  • Start URL:起始偵錯的頁面,/表示首頁,如果是其他頁面,比如/home/index,那就填/home/index
d93c397485ee4107d37692e22da1f97.png

點選OK儲存。

3 開始偵錯

返回程式碼視窗,在程式碼前打一個【斷點】,再點選【偵錯按鈕】,如下:

6424510277d4992b3c9db7e7bc9a7ff.png

PHPStorm就會自動開啟瀏覽器,等程式執行到斷點時,自動停止。

這裡我們就可以看到PHP中的全域性變數、呼叫棧、臨時變數,

並且可以單步偵錯,非常方便。

以上就是手把手教你phpstorm如何偵錯Docker中PHP專案的詳細內容,更多請關注TW511.COM其它相關文章!