天天看點

phpStrom 配置xdebug php 調試一、運作環境二、調試過程

摘要:一直做php開發,有時候遇到一些小的邏輯bug,死活就是調不出來,累人。之前面試的時候被問到用什麼調試工具,懵逼……。工作中确認需求有需求一個調試工具,周内調了一整都沒調出來,周末整了一上午終于弄好了,記錄一下。

一、運作環境

  • win7(64bit)
  • wamp3.0.6 安裝路徑:E:\wamp64
  • phpStrom9.0
  • chrome51.0

二、調試過程

2.1 php安裝xdebug擴充

  **坑:**php.ini配置檔案按道理來說應該是在:E:\wamp64\bin\php\php5.6.25\php.ini這裡,但其實不是這個檔案,我安裝的wam3.0.6如圖

phpStrom 配置xdebug php 調試一、運作環境二、調試過程

從這裡打開php.ini,并打開這個檔案所在檔案夾是:E:\wamp64\bin\apache\apache2.4.23\bin,再看一下這個檔案的屬性:

phpStrom 配置xdebug php 調試一、運作環境二、調試過程

是一個軟連接配接,這個檔案的實際位置是:E:\wamp64\bin\php\php5.6.25\phpForApache.ini

是以如果找網上的教程要修改php.ini檔案的話,就知道要改哪個檔案了。

  幸運的是,這個版本的wamp自帶了xdebug,免去了網上下載下傳xdebug擴充的問題,這裡還要注意如果是自己下載下傳并配置php.ini的話,一要注意下載下傳的xdebug的版本号要和自己的php版本号要對應,另外下載下傳的時候,xdebug都可以選擇兩個版本,線程安全與否版本。

  下來就是配置php.ini,我把自己的配置項貼上:

[xdebug]
zend_extension ="E:/wamp64/bin/php/php5.6.25/zend_ext/php_xdebug-2.4.1-5.6-vc11-x86_64.dll"
xdebug.remote_enable = 
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=
xdebug.idekey="PHPSTORM"
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="E:/wamp64/tmp"
xdebug.show_local_vars=
           

說明其中幾項:

  • remote_host,remote_port。xdebug貌似是通過本地的這個9000端口來 php 和 xdebug 和 phpStorm通訊調試的,是以這兩項很重要
  • idekey,這個是與phpStrom裡面做辨別的,也很重要

配置完成後,在phpinfo()頁面可以看到:

phpStrom 配置xdebug php 調試一、運作環境二、調試過程
phpStrom 配置xdebug php 調試一、運作環境二、調試過程

說明php xdebug配置完成

2.2 phpStrom設定

直接上截圖:

phpStrom 配置xdebug php 調試一、運作環境二、調試過程
phpStrom 配置xdebug php 調試一、運作環境二、調試過程
phpStrom 配置xdebug php 調試一、運作環境二、調試過程
phpStrom 配置xdebug php 調試一、運作環境二、調試過程

  setting裡面設定完成,然後開始設定debug

phpStrom 配置xdebug php 調試一、運作環境二、調試過程
phpStrom 配置xdebug php 調試一、運作環境二、調試過程
phpStrom 配置xdebug php 調試一、運作環境二、調試過程

  好了,到這裡就配置完成了,打開chrome浏覽器,在程式裡面打上斷點,點phpStrom右上角的蟲子debug按鈕,就打開了chrome浏覽器,發現url是這樣的:

http://localhost/tpProject/tpTest?XDEBUG_SESSION_START=19163

相當于給通路連結後面帶上GET參數,這次xdebug會話的編号,這個編号不用每次調試每次點debug按鈕,可以一直用這一個會話Id,需要在url上面帶其他url參數也是可以的。

  OK,寫完啦,手疼……

<完>