作為一個資深的php開發者,我在之前的一篇文章里面也講了如何搭建lnmp的docker鏡像,這里不再贅述。在基於鏡像運行容器中我也安裝了xdebug,於是考慮用phpstorm來配置xdebug。
使用xdebug的好處很多:1.可以讓開發者進行斷點調試。2.並可以收集和顯示運行階段的變量和值。3.減少不必要的代碼調試。這樣php開發者就不用每次手動寫代碼進行斷點調試,不用"var_dump"、"echo" 、"print_r"之類的輸出語句打印變量。而且xdebug還提供了可以step in(步進)到調用函數內部,這樣更方便進行debug。
首先給一個phpstorm和xdebug互相調用的圖:

由此可見,需要配置好docker中的xdebug的配置,還有就是IDE中的xdebug相關配置。
1.配置docker中的xdebug。
先進入docker容器,然后使用php --ini命令查找到xdebug的配置文件地址。
用vim打開20-xdebug.conf,增加如下所示的配置:
zend_extension=xdebug.so [XDebug] xdebug.start_with_request = yes ;xdebug.remote_handler = "dbgp" xdebug.remote_connect_back=1 xdebug.remote_enable=1 xdebug.client_host=192.168.3.6 xdebug.remote_port=9003 xdebug.remote_log = "/var/log/dnmp/php.xdebug.log" xdebug.idekey=PHPSTORM xdebug.mode=debug
其中xdebug.client_host是xdebug3的新配置,
可以填寫宿主機(就是你真實電腦)的ip,這是關鍵,千萬不要填寫什么172開頭的,那是docker同網段的ip,不是本機真正的ip。如果你是的mac,可以用ifconfig查看你的en0的ip,其他操作系統的命令類似。
然后remote_port就是監聽的端口號,建議用900x端口號,這樣不會和常見已用的端口號重復。完成上面步驟,
記得重啟容器讓配置生效。
2.phpstorm的配置很簡單,先選擇ide的preferences,然后選擇debug選項面板,如圖所示。

然后再配置Server,如下圖所示。

最后配置php web page,用上一步配置好的server即可,如下圖所示。

然后就可以開始快樂地使用xdebug了。