这里是任何人都停留在这个完整的解决方案:
您/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中现有的PHP可执行文件:
请确保“可执行路径”和“php.ini文件”字段指向MAMP正在使用的同一版本的PHP(MAMP-> Preferences ...-> PHP-> PHP Version。您可能不需要也要填写“php.ini文件”字段,不过我也是这样做的。
Eclipse的首选项 - > PHP-> PHP Executables->添加/编辑
安装一个服务器在Eclipse:
我使用HTTP端口80用于MAMP下的Apache(MAMP- >首选项...->端口 - > Apache端口)。如果您使用差分端口,请确保将其包含在此屏幕的“基本URL”末尾。
Eclipse的首选项 - > PHP-> PHP服务器 - >新建/编辑
创建一个新的Eclipse调试配置,看起来像这样:
的 “PHP服务器” 应被设置为您在上面创建的服务器。 “文件”应该设置为您要在项目中调试的php文件。如果“URL”字段没有显示您期望在您的浏览器中输入要加载PHP文件的内容(即http://<virtual_host>/path/to/file/being/debugged.php
,则取消选中“自动生成”框并手动修改“URL”字段的第二部分,以便完整的URL是你所期望的。不要忘了补充一点,你的PHP脚本预计将在$ _GET变量找到任何查询参数。
调试配置应该是什么样子的“调试”选项卡这:
确保“服务器调试器”设置为XDebug。我喜欢取消选中“在第一线休息”选项,因为我觉得它总是在第一次休息时很烦人代码。使用断点来控制调试器停止的位置。
这是所有你应该要做的。快乐调试! :)
你能告诉从Web服务器日志是否收到请求?在客户端上,与9000端口的连接是否已经完成(netstat -na | grep:9000'说是连接,还是只是LISTENING)? –
我检查了apache_error.log和php_error.log,没有任何东西被记录在这些文件中。 netstat -na | grep:9000也不显示任何内容(没有行符合grep)。 – faridghar
道歉,原来在php错误日志中有这条线: [21-Dec-2013 15:36:45 Europe/Berlin] PHP警告:不支持远程调试处理程序'“dbgp”'。在未知的行0 – faridghar