手把手教你phpstorm如何調試Docker中PHP項目

藏色散人
發布: 2022-01-05 15:43:44
轉載
4745 人瀏覽過

下面由phpstorm教學欄位來介紹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

手把手教你phpstorm如何調試Docker中PHP項目
#2 在彈出的方塊中點左上角的

號,選擇PHP Web Page

手把手教你phpstorm如何調試Docker中PHP項目
3 現在還沒有任何的伺服器,我們要加一個。如下,點選 server 右邊的

...按鈕。

手把手教你phpstorm如何調試Docker中PHP項目
4 然後就是設定伺服器的訊息,這裡就是docker容器了。

  • Name:伺服器名稱,隨便寫入都可以。
  • Host:域名,這裡我用localhost,如果你的域名類似awaimai.dev,那就填awaimai. dev
  • Port:連接伺服器的連接埠。這裡我們透過nginx連到PHP,用的是80端口,所以這裡保留預設80
  • Debugger:用Xdebug。
  • Use path mappings:這裡一定勾選,然後填入本機程式碼與容器程式碼的對應關係。如果用的是框架,這裡就填入框架的根目錄。
手把手教你phpstorm如何調試Docker中PHP項目
然後點選OK儲存。

5 返回後,

  • Name:填寫一個設定名稱,隨便填,這裡我們偵錯首頁,填Index
  • Server:下拉選擇伺服器,這裡我們選擇剛加的localhost
  • Start URL:起始偵錯的頁面,/表示首頁,如果是其他頁面,例如/home/index,那就填/home/index
手把手教你phpstorm如何調試Docker中PHP項目
點選

OK儲存。

3 開始調試

返回程式碼窗口,在程式碼前面打一個【斷點】,再點擊【調試按鈕】 ,如下:

手把手教你phpstorm如何調試Docker中PHP項目

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

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

並且可以單步調試,非常方便。

以上是手把手教你phpstorm如何調試Docker中PHP項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:awaimai.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!