對有有經驗的程序員,使用echo、print_r()、print_f()、var_dump()等函數足以調試php代碼,若是須要在IDE工具中使用斷點調試,xdebug就是一個很是好的php調試工具。對於不熟悉的代碼,能夠用Xdebug一步一步的查看請求過程和代碼執行過程。php
準備工做
本地部署的server環境,推薦用phpStudy(內置xdebug),開啓php擴展就能夠了,不用單獨下載xdebug。(下載與php版本對應的xdebug:http://www.xdebug.org)html
配置如下三處
1、配置php.ini,需注意是不是使用集成環境。找到相應的php.ini,例以下邊是phpStudy的php5.3的php.ini,其中黑色部分是系統默認的,紅色是手動添加的。nginx
[XDebug] xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug" xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug" zend_extension="D:\phpStudy\php\php-5.6.27-nts\ext\php_xdebug.dll" xdebug.remote_enable = 1 xdebug.remote_mode=req ; 注意,remote_host的值若是填寫localhost不能用,則填寫127.0.0.1 xdebug.remote_host=127.0.0.1 ; 注意,端口和idekey要與netbeans中配置同樣 xdebug.remote_port=9001 xdebug.idekey=netbeans-xdebug
2、重啓apache服務器,查看phpinfo()裏邊是否有xdebug,記錄下idekey(個人是netbeans-xdebug)。程序員
這一步很是重要,由於坑就在這。。。
若是使用NetBeans調試php時,一直提示「等待NetBeans鏈接xdebug」,就要使用命令行查看已經加載的模塊,查看xdebug是否正確加載。
在命令行下輸入:php -mapache
當提示:PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0,意思就是xdebug必須加載到zend modules的擴展中。
extension意爲基於php引擎的擴展,zend_extension意爲基於zend引擎的擴展,因此正確的方法是設置php.ini配置文件:zend_extension=php_xdebug-2.4.1-7.0-vc14-nts.dll。若是使用phpStudy,啓用xdebug擴展的時候,php.ini配置文件會自動增長這個配置。
在php.ini 中還要設置:output_buffering = Off
3、配置NetBeans
在NetBeans的 工具-選項-php 中配置(NetBeans版本8.2)瀏覽器
在這裏面也有個坑,就是調試器端口,網上通常都是9000,可是有沒有考慮使用Nginx的狀況,在用nginx做爲服務器代理的時候,nginx通常使用的就是9000端口!這就是爲何咱們在配置php的xdebug時候使用9001端口。
php.ini中的端口和idekey要與NetBeans中的「調試器端口」和「會話ID」保持一致,否則一樣提示:「等待NetBeans鏈接xdebug」!
服務器
4、配置好了以後,重啓下netbeans,再開始調試。
配置都保存了以後,仍是鏈接失敗的話,就重啓一下netbeans吧。不少都知道,修改了PHP.INI要重啓服務器。可是沒想過netbeans的有些配置改了以後,也要重啓才能生效。
ide
5、開始調試
打開項目(現有項目,無需新建項目),而後選擇 菜單-調試-調試項目,通常會在默認瀏覽器中彈出http://localhost/index.php?XDEBUG_SESSION_START=netbeans-xdebug,後邊紅色參數是xdebug參數,必需要有。
!!!重點!!!若是想單獨調試某個url頁面,在頁面後面加上這個參數?XDEBUG_SESSION_START=netbeans-xdebug或者& XDEBUG_SESSION_START=netbeans-xdebug,而後打開就能開始調試了。函數
參考文章:
NetBeans配置Xdebug 遠程調試PHP (http://blog.csdn.net/21aspnet/article/details/47756651)
關於netbeans斷點調試php的問題 (https://www.oschina.net/question/232352_2209537)
在 NetBeans IDE 中調試 PHP 源代碼 (https://netbeans.org/kb/docs/php/debugging_zh_CN.html)
使用netbeans進行PHP團隊開發和基於xdebug進行多人遠程調試 (http://starlight36.com/post/netbeans-use-for-php-team-with-xdebug)
php斷點調試工具--NetBeans+Xdebug調試php方法 (http://www.cnblogs.com/feichengwulai/articles/6252039.html)工具
版權聲明:本文采用署名-非商業性使用-相同方式共享(CC BY-NC-SA 3.0 CN)國際許可協議進行許可,轉載請註明做者及出處。 |