天天看點

在phpStorm中使用xdebug調試

<a href="#1-%e7%8e%af%e5%a2%83%e8%af%b4%e6%98%8e">環境說明</a>

<a href="#2-%e9%85%8d%e7%bd%aephpini">配置phpini</a>

<a href="#3-%e9%85%8d%e7%bd%aephpstorm">配置phpstorm</a>

<a href="#4-xdebug%e5%b7%a5%e4%bd%9c%e5%8e%9f%e7%90%86%e8%af%b4%e6%98%8e">xdebug工作原理說明</a>

在mac下搭建的lnmp環境,可以參考:

<a href="http://blog.csdn.net/alex_my/article/details/53818143">mac搭建lnmp環境</a>

<a href="http://blog.csdn.net/alex_my/article/details/53818143">http://blog.csdn.net/alex_my/article/details/53818143</a>

nginx中的網站配置:

環境均使用brew安裝,其中xdebug被安裝到:

php的配置中也有指向

/usr/local/etc/php/5.6/php.ini

xdebug.remote_mode:

需要注意的是,這裡不要再添加以下配置,會出現警告: 已經加載了xdebug.so

還有一個重要的是,如果你用的是nginx,并且是預設配置,一般9000端口都是被使用的。

按照網上其它教程做而xdebug無法斷點的原因就是使用了以下配置:

重新開機php-fpm

打開 phpstorm–preferences–languages &amp; frameworks – php

點選debug, 填寫以下内容

打開debug–dbgp proxy填寫以下内容

打開網站工程,ide右上角,點選edit configurations..

點選彈出框左側的+号。

選擇php web application

此時左側多了一列php web application – unnamed (改名為start)

在右側 – configuration – server 右側的 …

在彈出框servers左側點選+号,填寫以下内容

一些就緒後,在ide的右上側,綠色三角形右側,有一個臭蟲按鈕,打好斷點,就可以點選使用了

ide中安裝了一個遵循bgdp協定的xdebug插件, 稱為xdebug-a

調試模式下,ide中的xdebug-a建立服務,監聽端口: 9001(在phpstorm中設定的)

ide在目前url後面加上了xdebug_session_start參數

php伺服器中的xdebug子產品,稱為xdebug-b, 接收到帶有xdebug_session_start的請求後,會進入到調試模式

xdebug-b會以協定(bgdp)向xdebug-a的服務建立連接配接,提供調試服務。

php.ini中配置的xdebug.remote_host:xdebug.remote_port是xdebug-a的位址和端口

xdebug-a建立服務時,這個端口不能被其它程序占用了。

<a href="#">top</a>

繼續閱讀