Php Eclipse Xdebug冻结在57%

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设置

我的问题是:

当从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/htdocs/ledworld”和“/Applications/MAMP/htdocs/sandbox”下。我目前正在尝试调试沙盒项目


    如果你能提供详细的说明,说明我应该对所附的屏幕截图进行哪些更改,或者一步一步地说明如何设置,那就太好了

    以下是其他陷入此困境的人的完整解决方案:

    /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”等等,瞧!成功了!