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