Xdebug配置
在Web應用運行環境中,打開php.ini文件(例如你的Web程序跑在本地,就修改本地的php.ini,如果你的程序跑在內網機172.16.17.8,那你就ssh到這臺機器上,修改這臺機器的php.ini)。在文件尾部添加Xdebug配置:
[Xdebug] xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_connect_back=1 xdebug.remote_port=9001 xdebug.remote_autostart=1 xdebug.idekey=phpstorm
用到的最多的配置就是以上幾個,對于這幾個的配置解釋如下:
·remote_enable
決定xdebug是否開啟遠程調試模式,在使用Remote Debugging的時候必須打開;
·remote_host vs remote_connect_back
由于這兩個配置項有緊密聯系,所以放在一起講。
(1)首先,如果你指針對單個調試用戶,比如就你自己調試,你可以將remote_host設成你的Web程序運行的ip,remote_connect_back的值不設置或者設置為0(你不設置默認也是0)。這樣Xdebug每次調試的時候會固定連接remote_host指定的ip;
(2)但是如果你支持的是多人調試,明顯設置一個remote_host是沒辦法的。這個時候就可以用remote_connect_back=1來設置。當remote_connect_back設置為1的時候,xdebug會根據請求來的ip自動回連,進行調試,從而支持多人調試。同時,這個值設為1的話會使remote_host的設置無效;
(3)一般情況下,推薦使用remote_connect_back=1的配置
·remote_port
顯然這是設置調試端口的,這里的端口需要與PHPStorm中配置的調試端口一致,需要注意的時候不可用和別的端口起沖突,不然會無法進入調試,我們這里設置成9001(因為fpm默認的端口是9000,為了防止沖突,這里設置成9001);
·remote_autostart
默認狀態下,觸發調試需要在url中增加get參數:XDEBUG_SESSION_START={xdebug.idekey},如果想自動啟動調試,可以將這個值設為1,所以推薦將這個值設為1;
·idekey
可以理解為調試的令牌,需要運行Web程序的PHP中配置的令牌和PHPStorm中配置的令牌一致,才可觸發調試;