前言:
此篇筆記是來自同僚小愛同學的整理,原文在github上(點選閱讀原文,看着會舒服許多),為了通路友善(不科學上網很難加載出圖檔),經同意後複制到自己部落格,在此也特别感謝他的幫助配置。
第一次配置還可以參考這篇文章,手把手教學,二者結合能極大提高配置成功率。
phpstuyd+phpstorm實作單步調試:https://www.kancloud.cn/tstayang/image/909004
正文:
搭建過很多次開發環境了,但每次在調試這一塊還是會多少耗費一點時間。 是以便有了這篇關于PHPSTORM調試的筆記。
在進行調試之前,首先要做的是下載下傳并安裝Xdebug,然後再做相應的配置。如果使用內建環境,那麼可以跳過這一步,通常都自帶了Xdebug。
下載下傳Xdebug(Windows)
xdebug官網
如何選擇符合自己PHP的版本的Xdebug,可以通過下面這種方法來判斷。
使用Xdubug官方提供的一個檢測工具
在指令行中輸入:
Mac
$ php -i | pbcopy
Linux
$ php -i | xsel
Windows
$ php -i | clip

将輸出的phpinfo資訊填入,然後就會自動檢測該版本的PHP 所對應的Xdebug,如下圖(這裡以Windows 為例):
點選下載下傳相應的檔案。
安裝并配置Xdebug
将下載下傳好的檔案放進指定目錄 …\php\ext
配置php.ini檔案,這裡需要注意的是:要找到正确的php.ini檔案。如果你不确定是哪一個,可以參考下面這個方法:
列印出phpinfo(),找到字段Loaded Configuration File根據後面的路徑去找就沒錯了。
打開找到的php.ini配置檔案,在最後面加上以下代碼:
Windows
[XDebug]
zend_extension = “C:\xampp\php\ext\php_xdebug-2.6.1-7.2-vc15.dll” #這個位址指向 xdebug所在的檔案路徑
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_port=9001
xdebug.idekey=PHPSTROM
xdebug.remote_host = localhost
其中:
xdebug.remote.host如果是本地調試,填localhost就好。
xdebug.remote_port為調試所監聽的端口,通常預設使用 9001 ,需要和PHPStorm 中的 Debug port 相同。
下載下傳并安裝Xdebug(Mac)
Mac 下安裝Xdebug,有兩種方式:
使用pecl指令
通過源碼編譯
使用 pecl
Pecl 是 PHP 的包管理器。
這裡以PHP5.6為例,需要安裝最新2.5.x版本的Xdebug,因為這是PHP5.6提供支援的最後一個版本。
$ pecl install xdebug-2.5.5
源碼編譯
源碼擷取的方式和上面Windows 的方式是一樣的,将輸出的phpinfo粘貼至輸入框,然後下載下傳對應版本的Xdebug。
$ tar -xvzf xdebug-2.9.4.tgz
$ cd xdebug-2.9.4.tgz
$ phpize
$ ./configure
$ make
$ cp modules/xdebug.so /usr/lib/php/extensions/xdebug
啟用Xdebug
無論是通過哪種方式安裝,在正式使用之前,都需要手動啟用該子產品。
找到對應版本的 php.ini 檔案并編輯,在配置檔案中的最後部分加上以下内容:
[XDebug]
zend_extension="/usr/local/lib/php/extensions/xdebug/xdebug.so"
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_port=9001
xdebug.idekey=PHPSTORM
xdebug.remote_host = localhost
重新開機PHP即可。
如何檢查Xdebug 是否啟用?
$ php -m | grep xdebug
xdebug
在PHPStorm中配置Xdebug
Mac
File->Setting->PHP->Debug,確定PHPStorm 已經找到了Xdebug。
在剛才的配置沒錯的前提下,這裡是可以看到已經成功安裝了Xdebug的。
如果顯示沒有安裝,請檢查上面兩步操作有無問題。
File->Setting->PHP->Debug
Debug port 與php.ini配置檔案中的xdebug.remote_port的對應參數保持一緻。
File->Setting->PHP->Server,這三個參數的值和php.ini中的保持一緻。
配置域名
這裡根據實際情況配置,我本地使用80 端口作為項目通路端口,是以這裡填的是80。
配置調試參數
Run->Web Server Debug Validation,檢查是否配置成功。
確定項目檔案路徑和本地域名能正常通路,如果一切正常則能看到輸出。
Windows
Windows 下的PHPStorm 配置和Mac 幾乎差不多,保證一下幾點是正常的基本上沒啥問題。
確定PHPStorm 啟用了對應版本的 Xdebug。
PHPStorm 的調試資訊與php.ini檔案中保持一緻。
項目檔案路徑和本地域名能正常通路。
Xdebug 調試端口并非一定要用9001,隻要保持php.ini與PHPStorm 的保持一緻就好了。
在PHPStorm中使用Xdebug
有兩種方式使用Xdebug:
直接在編輯器中開始調試。
通過在請求位址中附加xdebug 的請求參數來調試,這招通常用來處理一些前後端分離的關聯調試。
參考連結
PhpStrom Xdebug 配置與使用
如何在Mac 上為不同版本的PHP 開啟Xdebug
配置Xdebug-官方教程
Xdebug 官網
Xdebug 檢測工具
補充:
如果啟用了在php.ini中啟用了xdebug.remote_autostart,請使用、
xdebug.remote_autostart = 0
當這個等于1時會影響到phpmyadmin的運作