docker環境下,使用phpstorm進行debug

上一篇文章中,闡述了在phpstorm安裝xdebug。實際的開發過程當中,因爲歷史項目的存在,不一樣框架的存在,咱們須要藉助docker來快速的實現開發環境的部署與統一,本文將闡述如何在docker下實現項目的xdebugphp

理論概述

與在本機直接開發不一樣,docker環境下,大致是這樣。docker

clipboard.png

宿主機,即咱們開發用的電腦。

咱們看到,有如下幾點不一樣:segmentfault

PHP環境不一樣

本機開發時。項目的運行環境與IDEA上的CLI,都是本機環境,相統一。
docker開發時,本機環境與dokcer環境可能不統一。框架

項目的路徑不一樣

本機開發時,xdebug反饋的項目路徑,就是開發機的實際路徑。
docker環境下,xdebugdocker主機的路徑發送給宿主機,但宿主機接收到,在本機上的此路徑上,找不到對應的文件。固然,也就沒有辦法進行正確的信息顯示。phpstorm

遠程地址不一樣

本機開發時,遠程主機地址就是本機地址,因此是127.0.0.1
docker開發時,遠程主機地址,應該是宿主機地址。spa

實施

總結出上面的幾點不一樣後,開始實施也變得簡單了。debug

統一PHPSTORM與docker的PHP環境

配置 -> Languages .. -> PHP
CLI Interpreter ... -> + -> From Docker Vagrant3d

clipboard.png

若是不清楚PHP的路徑的話,進行DOCKER容器,使用 whereis php。若是在 service找不到 docker,須要進入 配置 -> docker -> + -> 肯定,則 phpstorm會自動爲咱們找到當前存在的容器。

映射路徑

配置 -> Languages .. -> PHP -> SERVICES -> +日誌

clipboard.png

前面提本地項目路徑,後面對應docker項目路徑。code

注意:爲了保持統一,在 docker容器配置時,應該使用 volumes來進行磁盤映射。

修改遠程地址

修改docker容器中的,php.ini中的xdebug.remote_host=host.docker.internal

host.docker.internal表明:宿主機

添加項目配置信息

clipboard.png

clipboard.png

clipboard.png

clipboard.png

總結

弄懂原理,善於看日誌纔是解決問題的捷徑。

相關文章
相關標籤/搜索