基於 docker 開發環境下-配置 PHPStorm xdebug

rexmolo發表於2018-07-24
  1. 確認你的 image 中已經安裝並開啟了 xdebug
  2. 擴充套件的版本要跟你的 php 當前擴充套件版本一致
  3. 要確認你的 xdebugini 檔案正確載入了
  4. Phpstorm 的安裝方式,網上太多了,這裡不再贅述,文章開頭提供的轉載圖片連結,也有詳細的安裝方式

下面是一張 xdebug 的執行圖,供參考,

轉載自:https://segmentfault.com/a/1190000011387666#articleHeader9

15065147579121.jpg

如何安裝並開啟 xdebug 提供以下的一些資訊給你:

  1. 至於如何安裝,因為每個人用的image不一樣這裡就不再贅述,利用搜尋引擎你可以找到對應你係統的安裝命令,你可以放在 Dockerfile 中,這樣當你執行 docker-compose up -d 的時候就可以在 build 的時候直接初始化到 image

  2. 下載你對應版本的 xdebug ,可以在這個網址 https://xdebug.org/wizard.php 中的文字框中輸入從你的php 容器命令列中執行 php -i列印出來的內容,貼上進去之後點選下方Analyse my phpinfo() output 按鈕,會得到你需要的東西。注意 php -i 能執行成功的前提是你的 phpbin 目錄已經加入到環境變數中

下面是我通過phpinfo() 之後截的一張圖,關於 版本資訊你可以注意以下圖中的一些引數,

你可能需要注意到了有不同的 extention

extension意為基於php引擎的擴充套件 zend_extension意為基於zend引擎的擴充套件

xdebug 是通過 zend_extension 擴充套件的

image-20180614141644629

  1. 通常 php 的擴充套件 (即:.so 檔案) 有兩個地方存放
  • 一個是 /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226 ,注意最後no-debug-non-zts-20131226這個目錄可能基於版本號不同而變化
  • 或者是這裡 /usr/lib64/php/modules
  1. 你的 擴充套件的 ini檔案載入位置可以通過下面這張圖看出來

image-20180614143600006

  1. xdebugini 配置展示如下
[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 ,參考資料,點選前往

這裡提供一些其他的參考資料:

  1. Chrome 的小助手, 需要翻牆 點選安裝

相關文章