PhpStorm連接容器內的XDebug進行斷點偵錯
php進行斷點調試儘管不像其他語言那麼方便,但是有些是有確實有其用處,比如調試循環內的數據異常時。在php於phpstorm都安裝在同一環境下時,配置phpstorm的xdebug調試並不是多困難的事情,但是如果你使用了docker容器來安放你的php環境時,他們之間的配合工作就不是那麼簡單容易的了,下邊介紹一下如何使phpstorm連通docker容器內的php xdebug
#請注意,該方法由於需要docker容器能夠與宿主機進行網路通信,因此對於mac上的docker容器不可用(mac的docker使用linux vm技術實現,預設無法與本地網路實現通信,但是也可以透過其他方式曲線救國,這裡不講),但是mac上的phpstorm可以使用該方法連接遠端linux伺服器上的docker容器內的php xdebug
配置docker容器內的php xdebug環境
在docker容器中安裝好php-pecl-xdebug擴充功能之後,編輯/etc/php.d/下的*-xdebug.ini檔案(如果沒有該檔案也可以直接寫在php.ini檔案結尾)
- #將xdebug.remote_enable參數設定為1
- 將xdebug.remote_host參數設定為你的宿主機IP(如果你的phpstorm安裝在你的宿主機,否則指向你phpstorm所在機器的IP)
- 將xdebug.remote_port參數設定為你要使用的連接埠(預設為9000)
配置phpstorm
- 開啟phpstorm的設定:PhpStorm->Preferences(command ,)
- 設定languages & Frameworks->PHP ->Debug頁面中xdebug項目的debug port為你容器中xdebug設定的連接埠
- #配置languages & Frameworks->PHP->Servers頁面,新增Server
#配置phpstorm的debug
- 打開phpstorm的設定:run->Edit configurations
- 加入一個PHP Web Appliation
- 將右上角的小電話的圖示設定為監聽狀態就可以啟用XDEBUG調試程式了
瀏覽器擴充功能
php的xdebug需要監聽請求中的特定參數才能啟用xdebug調試,這裡推薦安裝一個瀏覽器擴展,該擴充功能在啟用時可以保存此參數並附加到每個頁面中以便調試
- 火狐瀏覽器可以安裝:The easiest xdebug擴充
- chrome瀏覽器可以安裝: XDebug Helper擴充功能