- 確認你的
image
中已經安裝並開啟了xdebug
- 擴充套件的版本要跟你的
php
當前擴充套件版本一致 - 要確認你的
xdebug
的ini
檔案正確載入了 - Phpstorm 的安裝方式,網上太多了,這裡不再贅述,文章開頭提供的轉載圖片連結,也有詳細的安裝方式
下面是一張 xdebug
的執行圖,供參考,
轉載自:https://segmentfault.com/a/1190000011387666#articleHeader9
如何安裝並開啟 xdebug
提供以下的一些資訊給你:
-
至於如何安裝,因為每個人用的
image
不一樣這裡就不再贅述,利用搜尋引擎你可以找到對應你係統的安裝命令,你可以放在Dockerfile
中,這樣當你執行docker-compose up -d
的時候就可以在build
的時候直接初始化到image
中 - 下載你對應版本的
xdebug
,可以在這個網址https://xdebug.org/wizard.php
中的文字框中輸入從你的php
容器命令列中執行php -i
列印出來的內容,貼上進去之後點選下方Analyse my phpinfo() output
按鈕,會得到你需要的東西。注意php -i
能執行成功的前提是你的php
的bin
目錄已經加入到環境變數中
下面是我通過phpinfo()
之後截的一張圖,關於 版本資訊你可以注意以下圖中的一些引數,
你可能需要注意到了有不同的 extention
。
extension
意為基於php引擎的擴充套件 zend_extension
意為基於zend引擎的擴充套件
而xdebug
是通過 zend_extension
擴充套件的
- 通常
php
的擴充套件 (即:.so 檔案) 有兩個地方存放
- 一個是
/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
,注意最後no-debug-non-zts-20131226
這個目錄可能基於版本號不同而變化 - 或者是這裡
/usr/lib64/php/modules
- 你的 擴充套件的
ini
檔案載入位置可以通過下面這張圖看出來
xdebug
的ini
配置展示如下
[Xdebug]
zend_extension = "/usr/local/php56/lib/php/c_extention/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_handler=dbgp
;xdebug.remote_host=192.168.65.1docker.for.mac.localhost
xdebug.remote_host=docker.for.mac.localhost
xdebug.remote_port=9009
xdebug.idekey=PHPSTORM
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_log="/var/log/php-fpm/xdebug.log"
; Enable xdebug extension module
;zend_extension="/usr/lib64/php/modules/xdebug.so"
;zend_extension="/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
估計用 docker
的最麻煩的就是 容器與宿主機的通訊問題,我是這樣配置的可以呼叫成功 xdebug.remote_host=docker.for.mac.localhost
,參考資料,點選前往
這裡提供一些其他的參考資料:
- https://gist.github.com/manuelselbach/8a214ae012964b1d49d9fb019f5f5d7b
- https://github.com/docksal/docksal/issues/389
- https://www.ashsmith.io/docker/get-xdebug-working-with-docker-for-mac/
Chrome
的小助手, 需要翻牆 點選安裝