2013-12-21 32 views
2

我的问题:Eclipse的Xdebug的冻结在57%

当启动从Eclipse的调试配置为我的PHP页面之一,页面打开成功在Chrome,但Eclipse调试器在57%冻结(在右下角Eclipse的角落)并且永远不会进一步发展。设定的断点永远不会到达。

我的设置:

  1. 甲基苯丙胺2.2
  2. PHP 5.3.3
  3. Eclipse的开普勒
  4. 的Eclipse PDT
  5. Xdebug的
  6. 2虚拟主机与根/应用程序/ MAMP/htdocs
  7. Apache Port:80
  8. MySql服务器端口:3306

我在MAMP中的虚拟主机设置工作正常。下面是关于Xdebug的安装截图:

Eclipse XDebug Configuration

Eclipse PHP Server Configuration

Eclipse PHP Executable Configuration

php.ini Xdebug contents

我怀疑问题是由我的虚拟主机造成的。这两个虚拟主机位于“/ Applications/MAMP/htdocs/ledworld”和“/ Applications/MAMP/htdocs/sandbox”下。我目前正在尝试调试沙箱项目。

如果您可以提供详细说明,我应该对附加的屏幕截图或逐步说明如何设置这将是伟大的改变!

+0

你能告诉从Web服务器日志是否收到请求?在客户端上,与9000端口的连接是否已经完成(netstat -na | grep:9000'说是连接,还是只是LISTENING)? –

+0

我检查了apache_error.log和php_error.log,没有任何东西被记录在这些文件中。 netstat -na | grep:9000也不显示任何内容(没有行符合grep)。 – faridghar

+0

道歉,原来在php错误日志中有这条线: [21-Dec-2013 15:36:45 Europe/Berlin] PHP警告:不支持远程调试处理程序'“dbgp”'。在未知的行0 – faridghar

回答

1

这里是任何人都停留在这个完整的解决方案:

/Applications/MAMP/bin/php/<your_php_version>/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 

注意,然后xdebug.remote_host选项设置为你给的名字你虚拟主机。所以在我的情况,我的httpd-vhosts.conf文件将containt这样

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

和我/private/etc/hosts文件中的一个条目将有这样

127.0.0.1  sandbox 

条目从事物Eclipse的一侧,在这里是你应该做的。

配置Eclipse的XDebug调试器。确保所选端口与上面php.ini文件中指定的端口匹配

如果您希望外部程序触发调试会话,请确保“接受远程会话(JIT)”设置为“localhost”(例如Chrome Xdebug助手扩展)。

Eclipse的首选项 - > PHP->调试 - >安装Debuggers-> XDebug->配置 - >

Eclipse Debugger Configuration

新增或编辑在Eclipse中现有的PHP可执行文件:

请确保“可执行路径”和“php.ini文件”字段指向MAMP正在使用的同一版本的PHP(MAMP-> Preferences ...-> PHP-> PHP Version。您可能不需要也要填写“php.ini文件”字段,不过我也是这样做的。

Eclipse的首选项 - > PHP-> PHP Executables->添加/编辑

Eclipse PHP Executable Configuration

安装一个服务器在Eclipse:

我使用HTTP端口80用于MAMP下的Apache(MAMP- >首选项...->端口 - > Apache端口)。如果您使用差分端口,请确保将其包含在此屏幕的“基本URL”末尾。

Eclipse的首选项 - > PHP-> PHP服务器 - >新建/编辑

Eclipse PHP Server Configuration

创建一个新的Eclipse调试配置,看起来像这样:

的 “PHP服务器” 应被设置为您在上面创建的服务器。 “文件”应该设置为您要在项目中调试的php文件。如果“URL”字段没有显示您期望在您的浏览器中输入要加载PHP文件的内容(即http://<virtual_host>/path/to/file/being/debugged.php,则取消选中“自动生成”框并手动修改“URL”字段的第二部分,以便完整的URL是你所期望的。不要忘了补充一点,你的PHP脚本预计将在$ _GET变量找到任何查询参数。

Eclipse Debug Configuration

调试配置应该是什么样子的“调试”选项卡这:

确保“服务器调试器”设置为XDebug。我喜欢取消选中“在第一线休息”选项,因为我觉得它总是在第一次休息时很烦人代码。使用断点来控制调试器停止的位置。

Eclipse Debug Configuration: Debugger Tab

这是所有你应该要做的。快乐调试! :)