Php Eclipse Xdebug冻结在57%
我的问题是: 当从Eclipse为我的一个php页面启动调试配置时,该页面在Chrome中成功打开,但Eclipse调试器冻结在57%(在Eclipse的右下角),并且永远不会进一步进行。永远不会到达设置的断点 我的设置:Php Eclipse Xdebug冻结在57%,php,eclipse,debugging,xdebug,vhosts,Php,Eclipse,Debugging,Xdebug,Vhosts,我的问题是: 当从Eclipse为我的一个php页面启动调试配置时,该页面在Chrome中成功打开,但Eclipse调试器冻结在57%(在Eclipse的右下角),并且永远不会进一步进行。永远不会到达设置的断点 我的设置: MAMP 2.2 PHP 5.3.3 日食开普勒 Eclipse PDT Xdebug 2台根位于/Applications/MAMP/htdocs的虚拟主机 Apache端口:80 MySql服务器端口:3306 MAMP中的虚拟主机设置工作正常。下面是有关Xdebug设置
如果你能提供详细的说明,说明我应该对所附的屏幕截图进行哪些更改,或者一步一步地说明如何设置,那就太好了 以下是其他陷入此困境的人的完整解决方案:
/Applications/MAMP/bin/php//conf/php.ini
的底部应该如下所示:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/<your_php_version>/lib/php/extensions/no-debug-non-zts-<timestamp>/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=sandbox
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=ECLIPSE_DBGP
xdebug.remote_log=/tmp/xdebug.log
我的/private/etc/hosts
文件将有这样一个条目
<VirtualHost *:80>
ServerName sandbox
DocumentRoot /Applications/MAMP/htdocs/sandbox/
<Directory /Applications/MAMP/htdocs/sandbox/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
127.0.0.1 sandbox
从Eclipse的角度来看,这里是您应该做的
配置Eclipse的XDebug调试器。确保所选端口与上面php.ini文件中指定的端口匹配
如果希望外部程序触发调试会话(例如Chrome Xdebug helper extension),请确保将“接受远程会话(JIT)”设置为“本地主机”
Eclipse首选项->PHP->调试->已安装调试程序->XDebug->配置->
在Eclipse中添加新的或编辑现有的PHP可执行文件:
确保“可执行路径”和“php.ini文件”字段指向MAMP正在使用的同一版本的php(MAMP->Preferences…->php->php version)。您可能不需要同时填写“php.ini文件”字段,但我还是这样做了
Eclipse首选项->PHP->PHP可执行文件->添加/编辑
在Eclipse中设置服务器:
我在MAMP(MAMP->Preferences…->Ports->Apache port)下为Apache使用HTTP端口80。如果使用不同的端口,请确保将其包含在此屏幕中“基本URL”的末尾
Eclipse首选项->PHP->PHP服务器->新建/编辑
创建一个新的Eclipse调试配置,如下所示:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/<your_php_version>/lib/php/extensions/no-debug-non-zts-<timestamp>/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=sandbox
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=ECLIPSE_DBGP
xdebug.remote_log=/tmp/xdebug.log
“PHP服务器”应设置为您在上面创建的服务器。“文件”应设置为您希望在项目中调试的PHP文件。如果“URL”字段未显示您希望在浏览器中键入的内容以加载PHP文件(即http:///path/to/file/being/debugged.php
,然后取消选中“自动生成”框并手动修改“URL”字段的第二部分,以便完整的URL是您所期望的。不要忘记添加PHP脚本期望在$\u GET变量中找到的任何查询参数
调试配置的“调试器”选项卡应如下所示:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/<your_php_version>/lib/php/extensions/no-debug-non-zts-<timestamp>/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=sandbox
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=ECLIPSE_DBGP
xdebug.remote_log=/tmp/xdebug.log
确保“服务器调试器”设置为XDebug。我喜欢取消选中“在第一行中断”选项,因为我发现总是在代码的第一行中断很烦人。请使用断点来控制调试器停止的位置
这就是你需要做的一切。愉快的调试!:)你能从web服务器日志中判断它是否收到过请求吗?在客户端,是否曾经连接到端口9000(是
netstat-na | grep:9000
说已连接,还是只是在侦听)?我检查了apache_error.log和php_error.log,这些文件中没有记录get。netstat-na|grep:9000也没有显示任何内容(没有与grep匹配的行)。抱歉,原来php错误日志中有这一行:[21-Dec-2013 15:36:45 Europe/Berlin]PHP警告:不支持远程调试处理程序“dbgp”。在第0行的“未知”中,我无法理解该错误,因为您的第一个屏幕截图显示您禁用了dbgp。作为更新,我删除了虚拟主机配置(从hosts文件中删除了条目,从MAMP httpd-vhosts.conf文件中删除了条目,并将所有网站文件放在htdocs下。然后我在php.ini文件中添加了以下选项:“xdebug.remote_log=/tmp/xdebug.log”,以便生成xdebug文件。这向我显示了相同的错误:“E:不支持远程调试处理程序‘DBGp’:-()在生成的日志中,我将php.ini文件中的选项从“xdebug.remote\u handler=DBGp”更改为“xdebug.remote\u handler=DBGp”等等,瞧!成功了!