以前以為php調試時伺服器端和IDE必須在同一台機子上,無意發現xdebug其實是支援遠端偵錯的。
嘗試之後發現可以配置成功,還是可以調試代碼的感覺爽啊!
php所在Ubuntu伺服器 :192.168.10.XXX
Windows開發機(Zend作為IDE) :192.168.40.XXX
PS:PHPStorm也是可以配置成功的,個人更喜歡Zend,所以以zend為例。
1.伺服器端安裝php的xdebug外掛程式
使用php編譯出xdebug,放到php的外掛程式目錄
/opt/php/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
2.配置php.ini
[xdebug]
zend_extension="/opt/php/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.10.XXX ← 此處為伺服器IP
xdebug.remote_port=9009 ← 預設9000連接埠與php-fpm衝突,改成9009
xdebug.remote_connect_back=1
xdebug.remote_autostart=0
※修改完後需要重啟web伺服器
3.windows開發下安裝Zend
4.配置Zend
1)配置PHP Servers
起一個Server name,設定Debugger方式為Xdebug,最後設定啟動目錄
還是這個視窗,切到第二個tab上,設定管理員目錄和本地代碼目錄的對應關係。( 關鍵步驟)
注意:我使用samba使得windows下用的和ubuntu下是同一份代碼,如果本地代碼和伺服器不一致的話,不清楚會發生什麼!
2)配置xdebug
由於把xdebug的預設連接埠號碼改為了9009,所以這裡也需要修改為9009。
3)確認php的debug模式
這裡的PHP Server應該就是前面配置好的那個Server名
4)修改預設瀏覽器為chrome。預設的內建瀏覽器行為怪異,建議使用chrome
5.配置debug啟動項
繼續確認Debugger是否配置為了xdebug
6.確認結果
想要調試的程式碼前面單擊,打上斷點,然後重新整理瀏覽器,查看斷點是否進入。
沒有問題的話,將會進入斷點
以上