paip.php的調試--attilax總結php
php的調試可用PDT與XDEBUGGER,或者與zend debugger來。。若是是php WEB項目,只能web
進行遠程調試,XDEBUGGER/zend debugge 加載起來後,把PHP的信息截獲,而後鏈接PDT的瀏覽器
9000/10000端口,把內部信息發往ECLIPSE PDT了。。session
---------1.使用xdebugger------------
a.在PHP。INI配置xdebugger,而後PHPINFO()測試,肯定能夠看到XDEBUGGER的配置。eclipse
。將其REMOTE配置所有打開..ide
b.設定multisession,這點很重要::: 在eclipse中的PDT插件,window>設定》PHP》DEBUG, 測試
打開PHP DEBUG設置頁, php debugger選擇XDEBUG,而後configure》installed url
debuggers>xdebugger>configure >xdebug/dbgp setting , 必定要選定「use 插件
multisession" ,這點很重要。默認端口9000通常不要改..debug
c.配置項目調試起動頁:::而後在ECLIPSE圖標欄,點DEBUG圖標,open debug dialog> php
web page>配置爲XDEBUG調試。。
d.進行調試。。在WEB開發中,只能進行遠程調試。。本地調試僅僅對本地化PHP腳本而言。。
PDT不支持,直接在瀏覽器裏輸入URL,而後打斷點,這樣子是沒法中止下來的,沒法斷點調試。。
這點和JAVA的遠程調試不一樣..
e.只能用PDT打開調試IE窗口,能夠看到MS http://localhost/t2.php?
XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13418867522671 ,有
XDEBUG_SESSION_START參數等...而後你再設置斷點,再打入或者跳轉到要測試的URL...
f.注意:::multisession設置很是重要,不然,你只能命中斷點一次,就中止調試了。。設置了
multisession後,每次打開調試的PHP頁面,,都會命中斷點的.就和JAVA的遠程調試差很少了...
---------------2.配置zend debugger進行遠程調試----------
a.配置::
a.1. Add the following line to your php.ini file:
Linux and Mac OS X: zend_extension=<full_path_to_ZendDebugger.so>
Windows: zend_extension_ts=<full_path_to_ZendDebugger.dll>
Windows non-thread safe: zend_extension=<full_path_to_ZendDebugger.dll>
a.2. Add the following lines to your php.ini file:
zend_debugger.allow_hosts=<host_ip_addresses>
zend_debugger.expose_remotely=always
(*) hopst_ip_addresses are the IPs of the hosts which will be allowed to initiate
debug sessions
a.3. Copy the dummy.php file to your document root directory.
a.4. Restart your Web server.
b.在eclipse中的PDT插件,設置爲zend debugger。
c.c.配置項目調試起動頁::
d.d.進行調試。。也是須要要PDT打開調試窗口,不能直接窗口調試..URL ms:
http://localhost/t2.php?
debug_session_id=1000&start_debug=1&debug_start_session=1&debug_host=192.1
68.1.188%2C127.0.0.1&debug_no_cache=1341887571398&debug_port=10000&send
_sess_end=1&original_url=http://localhost/t2.php&debug_stop=1它會把PDT使用的鏈接端口發往zend debugger...