2012-03-11 96 views
3

我一直有一段时间让Eclipse调试我的CakePHP应用程序。我尝试阅读几个教程(其中没有一个很棒)。我试过使用Zend和XDebug。Eclipse PDT调试设置(XDebug/Zend)

我不是完全相同,甚至肯定,我应该怎样一旦它的正确设置以使用这个东西。

我想在我的PHP代码中设置断点,右键单击文本编辑器的PHP文件,并选择“调试PHP Web应用程序”,但它从来没有击中破发点。它开辟了日食中的浏览器连接到我的正常网址一些GET参数:

debug_host = 192.168.1.2%2C127.0.0.1 & start_debug = 1 & debug_port = 10000 & original_url =的http%3A% 2F%2Flocalhost%2Fparticipants & send_sess_end = 1 & debug_stop = 1个& debug_start_session = 1 & debug_no_cache = 1331422177353 & debug_session_id = 1000

有一两件事我不知道在我的项目的PHP调试properti es是PHP可执行字段。它被自动设置为'none',所以我必须创建一个指向'/ usr/bin/php'的条目。也许这不正确?

我去就创建一个PHP文件的简单应用程序只是有几个echo语句。我无法让调试器在那里达到一个断点。

这里是我的phpinfo(): https://sites.google.com/site/kylephpinfo/phpinfo.html?attredirects=0&d=1

我从来没有过这么多的麻烦调试器在我的生命中工作..

+0

您是否在服务器上安装并配置了调试器? – Phil 2012-03-11 03:26:44

回答

6

从你的php.ini的外观,调试器扩展没有加载。它通常显示在第一个框的下方,如with Xdebug v2.1.0, Copyright (c) 2002-2008, by Derick Rethans ...

因此,您需要确保的第一件事是您的服务器的PHP ini设置正确。找到httpd.conf中所指向的php.ini中,并对其进行编辑,包括像这样:

zend_extension_ts=C:\php\ext\php_xdebug-2.1.0-5.3.0.dll 
xdebug.remote_enable=1 
xdebug.remote_host=127.0.0.1 
xdebug.remote_port=9000 
xdebug.remote_handler="dbgp" 

注:

  • ts手段线程安全的,所以请确保你包得到的调试器也是ts
  • 该设置在Linux/Mac和.so调试器扩展中非常相似。
  • 最简单的方法是设置一个像XAMPP这样的服务器,它提供兼容的调试器扩展。

一旦你得到它,php.info显示xdebug(或Zend Debugger)加载,你已经准备好了。

如果你有你的服务器在本地机器上,最简单的方法是创建htdocs目录内的项目。当调试器尝试解析断点时,以及PDT尝试解析要打开的正确文件时,这将防止任何源查找问题。 (有path mapping设置你可以操纵,但这会为你节省麻烦)。

不要被PHP可执行调试(PHP脚本调试器)弄糊涂。您需要运行远程调试(即使它在同一台计算机上)。 PHP脚本仅适用于简单的PHP脚本,按原样运行(不在服务器上,并且与CLI一样)。

希望能帮助你开始! :)

更新:PHP 5.3没有必要使用zend_extension_ts后,改用zend_extension的上Php.net http://php.net/manual/en/ini.core.php#ini.zend-extension

0

只提到当你做对调试做它打开文件的第二个副本?如果是这样,它将拉远程版本进行调试,您将需要在该文件中设置断点。