使用PHP fastcgi和eclipse进行Xdebug配置?

时间:2009-12-08 17:34:05

标签: php eclipse fastcgi xdebug eclipse-pdt

我一直在使用eclipse-pdt与xdebug和apache一起使用超过一年。事情完美无缺,我可以在eclipse中完成我想要的所有交互式调试(使用我自己的机器作为服务器)。

现在我从apache切换到nginx(因此PHP现在不是作为Apache服务而是作为fast-cgi运行)而且我找不到一种方法来配置eclipse与xdebug很好地协同工作。我不确定xdebug或eclipse(或两者)的问题是否确定。

在eclipse配置中,我已经将对PHP配置文件的引用更改为/etc/php5/cli/php.ini


尝试使用php.ini版本1

使用以下php.ini文件

zend_extension=/usr/lib/php5/20060613/xdebug.so
  • 我看到xdebug正在工作(例如,如果我做var_dump()我得到它的xdebug版本,而不是普通的PHP版本)
  • 我无法从eclipse进行交互式调试:浏览器打开并使用包含...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=...的典型URL完全加载页面,但程序执行不会在断点处停止
  • 在eclipse的右下角,我看到一条可疑消息:“Launching = put_the_name_of_my_project_here =:57%”“刷新工作区”交替显示

尝试使用php.ini版本2

如果我使用该文件的其他版本(在切换到nginx之前它是有效的):

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req

我根本无法访问我网站的任何页面。


PS:我机器上的其他数据: - 操作系统: GNU / Linux - Ubuntu 9.10 64位。 - PHP: 5.2.10-2ubuntu6.3与Suhosin-Patch 0.9.7; Zend Engine v2.2.0,版权所有(c)1998-2009 Zend Technologies with Xdebug v2.0.4 - Eclipse:查看截图。

alt text

5 个答案:

答案 0 :(得分:14)

xdebug和FastCGI使用相同的默认端口(9000)。在php.ini文件中更改XDebug的端口,如下所示:

xdebug.remote_port=9001

并更新您的IDE设置以使用9001。

答案 1 :(得分:7)

答案 2 :(得分:2)

尝试重启你的php。因为你有php-fastcgi,重启nginx似乎不会这样做。当我重新启动整个服务器时,更改生效。

答案 3 :(得分:1)

我遇到了同样的问题并解决了它 在文件/etc/php5/apache2/php.ini中添加:

[xdebug] xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


在文件/etc/php5/cli/php.ini中添加:

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


重启Apache:

sudo service apache2 restart

答案 4 :(得分:0)

解决方案中的问题是“ xdebug.remote_autostart = on ”。 如果您在文件配置“ xdebug.remote_autostart = on ”中设置。这将迫使Xdebug为在此服务器上完成的每个请求启动调试会话,而不必在请求中指定需要调试会话。

您需要更改

  

xdebug.remote_autostart = off

然后重新启动网络服务。 在这个例子中是Apache。

您可以在此处阅读更多内容:http://doc.waterproof.fr/phpedit/debugging_profiling/configuration/debugger_with_xdebug

好运!