在上一篇文章中,闡述了在phpstorm
安裝xdebug
。實際的開發過程當中,因爲歷史項目的存在,不一樣框架的存在,咱們須要藉助docker
來快速的實現開發環境的部署與統一,本文將闡述如何在docker
下實現項目的xdebug
。php
與在本機直接開發不一樣,docker
環境下,大致是這樣。docker
宿主機,即咱們開發用的電腦。
咱們看到,有如下幾點不一樣:segmentfault
本機開發時。項目的運行環境與IDEA上的CLI,都是本機環境,相統一。docker
開發時,本機環境與dokcer
環境可能不統一。框架
本機開發時,xdebug
反饋的項目路徑,就是開發機的實際路徑。docker
環境下,xdebug
將docker
主機的路徑發送給宿主
機,但宿主機
接收到,在本機上的此路徑上,找不到對應的文件。固然,也就沒有辦法進行正確的信息顯示。phpstorm
本機開發時,遠程主機地址就是本機地址,因此是127.0.0.1
。docker
開發時,遠程主機地址,應該是宿主機地址。spa
總結出上面的幾點不一樣後,開始實施也變得簡單了。debug
配置 -> Languages .. -> PHP
CLI Interpreter ... -> + -> From Docker Vagrant3d
若是不清楚PHP的路徑的話,進行DOCKER容器,使用whereis php
。若是在service
找不到docker
,須要進入配置 -> docker
-> + -> 肯定,則phpstorm
會自動爲咱們找到當前存在的容器。
配置 -> Languages .. -> PHP -> SERVICES -> +日誌
前面提本地項目路徑,後面對應docker
項目路徑。code
注意:爲了保持統一,在docker
容器配置時,應該使用volumes
來進行磁盤映射。
修改docker
容器中的,php.ini
中的xdebug.remote_host=host.docker.internal
host.docker.internal
表明:宿主機
弄懂原理,善於看日誌纔是解決問題的捷徑。