[英]PHP remote debugging: XDebug can't connect to JetBrains php Storm client
我想通過以下軟件配置進行遠程調試:
Win 7 Pro 64位WAMP Server 2.2(32位)包括。 Apache 2.2.22,PHP 5.4.3,XDebug php_xdebug-2.2.1-5.4-vc9.dll JetBrains PHPStorm 4.0.3
1.)WAMP啟動並運行,我的站點可以在localhost / fox /下找到
2.)PHP Storm有一個項目,我的源文件和apache別名localhost / fox之間有一個映射
2.)我安裝了php擴展XDebug並將以下行添加到我的php.ini中
[xdebug]
zend_extension="c:/wamp/bin/php/php5.4.3/zend_ext/php_xdebug-2.2.1-5.4-vc9.dll"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_connect_back=On
xdebug.remote_autostart=On
xdebug.profiler_enable=On
xdebug.profiler_enable_trigger=off
xdebug.profiler_output_name=cachegrind.out.%t.%p
xdebug.profiler_output_dir="c:/wamp/tmp"
xdebug.remote_log="C:/wamp/tmp/xdebug.log"
xdebug.remote_cookie_expire_time=6000
這應該配置遠程調試XDebug和回調地址。
我在這里檢查了我的安裝:xdebug.org/wizard.php
3.)我配置了phpstorm,首先我添加了本地服務器
然后在這里檢查我的設置
http://www.bilder-hochladen.net/files/jrn0-2-c81e-jpg-nb.html
(我也試過127.0.0.1/fox作為服務器地址,而不是localhost)
我的調試設置: http : //www.bilder-hochladen.net/files/jrn0-1-c4ca-jpg.html
現在我重啟我的apache,我進入phpstorm,設置一個斷點(它是紅色的),點擊該功能
Run -> Start listen to PHP Debug Connections
電話接收器正在變成綠色,這究竟是什么意思,但它對我來說是一個正面的信號。
當我現在在本地webserver absolutley上運行我的php腳本沒有任何反應時,程序運行在斷點上並且不會停止。
在Xdebuggers日志(C:/wamp/tmp/xdebug.log)中,我發現這些消息的負載如下:
I: Checking remote connect back address.
I: Remote address found, connecting to ::1:9000.
E: Could not connect to client. :-(
Log closed at 2012-07-19 14:21:08
在互聯網的某個地方,我發現了暗示,Windows防火牆可以阻止通信,所以我把它關閉完整但但沒有幫助。
我還嘗試通過telnet連接到localhost:9000,我得到了phpstorm的回復。
有沒有人知道在哪里搜索錯誤或我還能嘗試讓這些東西工作?
邁克爾,非常感謝你的幫助
ps抱歉,我不允許發布兩個以上的鏈接,因為我是新來的,因此沒有指向xdebug向導的超鏈接。
也許有點晚了......
在這里,您的設置存在矛盾:
xdebug.remote_host="localhost"
xdebug.remote_connect_back=On
這兩個設置重疊。 你的情況如何?
a) 您只想從一個源調試應用程序 (例如,您正在開發並部署到localhost
)。
然后你幾乎完成了:你已經定義了遠程主機是localhost
。 注釋掉remote_connect_back
行(帶;
)
b) 您希望接受多個開發源 (例如,在同一網絡中調試應用程序的多台機器)。
然后正在覆蓋remote_host
行,因此您可以刪除或注釋它。
這實際上是您當前正在運行的配置。 那么,它有什么問題? 檢查它運行此腳本:
<?
echo $_SERVER['REMOTE_ADDR'];
輸出將是::1
。 那么,向Apache服務器發出請求的主機是localhost
。 Apache正在將該名稱解析為IPv6地址::1
,最終沒有錯。 但是Xdebug無法連接到IPv6地址。 看到:
I: Remote address found, connecting to ::1:9000.
E: Could not connect to client. :-(
因此,我們的目標是讓Apache 最好將localhost
解析為IPv4地址(不會在OS級別或Apache級別禁用任何IPv6支持)。 這可以通過向您的hosts
文件添加下一行來實現:
127.0.0.1 localhost
這個簡單的黑客將成功! 現在localhost
總是最好被解析為IPv4地址,而::1
仍然是完全可以理解的。
您可以嘗試禁用IPV6 http://support.microsoft.com/kb/929852 ,我認為這是您嘗試連接時的問題。
找到遠程地址,連接到:: 1:9000。
系統嘗試連接IPV6,我認為XDebug只能啟用IPV4。
您的代碼中的斷點到底在哪里? 我知道XDebug很有趣。
對於PHP 5.4,您的Xdebug設置應該是
[XDebug]
zend_extension="<path to php_xdebug.dll>"
xdebug.remote_enable=1
xdebug.remote_port="<the port for XDebug to listen to>" (the default port is 9000)
xdebug.profiler_enable=1
xdebug.profiler_output_dir="<AMP home\tmp>"
http://www.jetbrains.com/phpstorm/webhelp/configuring-xdebug.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.