PHP性能測試利器-Xdebug和phpstorm

Xdebug是一個開放源代碼的PHP程序調試器(即一個Debug工具),能夠用來跟蹤,調試和分析PHP程序的運行情況。如下爲Windows+Phpstorm+Xampp+Xdebug安裝示例,MAC安裝請參考集成開發和斷點調試環境的配置Mac+PhpStorm+XAMPP+Xdebugphp

1、下載Xdebug

在下載xdebu以前,咱們須要先看下咱們的php版本,找到與之對應的Xdebug版本下載便可,我這裏的PHP版本爲V5.6.15,因此,Xdebug的版本也必須是V5.6版本。 重要的事情再說一遍:php版本和xdebug版本必定要相對應哦!!!Xdebug官網下載html

查看php版本apache

echo phpinfo();

clipboard.png

下載XdebugV5.6:vim

clipboard.png

2、安裝Xdebug

一、php.ini的配置

將下載大的擴展文件php_xdebug-2.5.0-5.6-vc11-x86_64.dll放置到php的ext擴展目錄下,這個是個人擴展路徑:D:xamppsphpextphp_xdebug-2.5.0-5.6-vc11-x86_64.dll,而後在php.ini中添加下面的一段擴展代碼,而後保存。segmentfault

[xdebug]

;指定Xdebug擴展文件的絕對路徑 
zend_extension=」D:\xampps\php\ext\php_xdebug-2.5.0-5.6-vc11-x86_64.dll」
;啓用性能檢測分析 
xdebug.remote_enable = On
;啓用代碼自動跟蹤  
xdebug.auto_trace=on  
;容許收集傳遞給函數的參數變量  
xdebug.collect_params=on  
;容許收集函數調用的返回值  
xdebug.collect_return=on  
;指定堆棧跟蹤文件的存放目錄  
xdebug.trace_output_dir="D:/debug"  
;指定性能分析文件的存放目錄  
xdebug.profiler_output_dir="D:/debug"  

xdebug.remote_handler = dbgp
xdebug.remote_host= localhost

xdebug.remote_port = 9000

xdebug.idekey = PHPSTORM

clipboard.png

說明::在上述配置內容中,zend_extension用於指定Xdebug擴展模塊的文件路徑(因爲Xdebug是基於Zend引擎的擴展,所以必須使用zend_extension配置指令,而不是extension。zend_extension指令的配置路徑必須是絕對路徑)。remote_handler 、remote_host、remote_port 這些都有默認值,但仍是建議設置下,至少知道要設置這些參數~php7

二、重啓Apache

重啓Apache,而後查看phpinfo(),是否已經安裝Xdebug擴展成功ssh

若是加載擴展失敗,請看失敗日誌:
錯誤信息存在apache的logs文件中,error.log,查看方法如圖phpstorm

clipboard.png

查了下緣由,是由於apache爲32位,php爲x86即32位,而本身裝了一個64位的Xdebug,因此,安裝擴展失敗了,這裏須要找一個32位的Xdebug,而且php編譯版本爲V11的Xdebug:ide

clipboard.png

3、出現的問題

安裝好Xdebug後,進行斷點調試又出現這樣的幺蛾子:函數

Waiting for incoming connection with ide key '15222'

clipboard.png

4、Homestead 安裝Xdebug擴展

1.編譯安裝Xdebug

在經歷了很長一段時間後,Xdebug從2.4.0版本開始,支持調試PHP 7代碼,接下來,咱們採用源碼編譯的方式進行安裝。

首先,咱們執行 vagrant ssh 登陸到Homestead虛擬機;

其次,下載並解壓Xdebug源代碼:

wget http://xdebug.org/files/xdebug-2.4.0rc1.tgz
tar xvzf xdebug-2.4.0rc1.tgz

接下來,進入解壓縮的目錄,使用phpize7.0生成配置文件、configure、make、make install:

cd xdebug-2.4.0RC1
sudo phpize7.0
sudo ./configure --enable-xdebug
sudo make
sudo make install

clipboard.png

而後建立 xdebug.ini 配置文件

mkdir -p /usr/local/php/xdebug
sudo cp /usr/local/xdebug-2.4.0RC1/modules/xdebug.so /usr/local/php/xdebug/xdebug.so
sudo vim xdebug.ini

xdebug.ini

zend_extension="/usr/local/php/xdebug/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.max_nesting_level = 500
sudo mkdir /etc/php/mods-available
vagrant@homestead:/usr/local/xdebug-2.4.0RC1$ sudo cp xdebug.ini /etc/php/mods-available

接下來,在當前PHP 7 CLI和FPM的conf.d目錄建立對應的符號連接:

sudo ln -snf /etc/php/mods-available/xdebug.ini /etc/php/7.0/cli/conf.d/20-xdebug.ini
sudo ln -snf /etc/php/mods-available/xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.ini

最後,咱們重啓php7.0-fpm,讓新的配置生效:

sudo service php7.0-fpm restart

咱們有不少方式來確認Xdebug已經正常工做了:

在Terminal執行 php -m ,在輸出結果最後的[Zend Modules]部分,能夠看到有Xdebug
執行php -i |grep xdebug,在輸出的結果中,能夠看到有xdebug support => enabled;

clipboard.png

哈哈,咱們看到Xdebug已經安裝成功了

在導航上 Run->edit Configurations... 進入如下界面

clipboard.png

相關文章:
phpstorm配置Xdebug進行調試PHP教程
上手並過渡到PHP7(1)——基於Homestead的PHP7和XDdebug環境
本地xdebug調試搭建 Laravel+homestead+phpstorm

相關文章
相關標籤/搜索