我最近安装了PHPStorm和Xdebug,以便调试在本地服务器上运行的PHP脚本。我正在运行Mac OS 10.8.5和MAMP。我一直使用Safari 6.2.4作为我的主要浏览器,但问题也出现在最初,我能够让PHPStorm停在我放置的检查点,但在一个脚本中,它拒绝输入foreach() {}
声明。因此,我创建了一个小测试脚本,其中仅包含此语句,并自行测试。第一个PHPStorm很乐意逐步完成每一行,然后在我的小测试脚本或任何其他脚本中拒绝停在任何断点处。
我花了几个小时检查并重新检查各种官方指南,并测试了所有建议的技术。有时,我的测试页面将开始加载,然后浏览器中的进度条将停止。我猜测PHPStorm实际上是对断点做出反应,但未能显示调试器控件。
以下是此情况的屏幕截图。 PHPStorm窗口中是否应该有另一个面板,允许我逐步完成脚本?如果是这样,我怎么能让它出现?如果没有,有没有办法调试PHPStorm调试器?
以下是php.ini中的xdebug设置:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port="9000"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/Applications/MAMP/tmp"
xdebug.remote_log="/Applications/MAMP/logs/xdebug.log"
我在PHPStorm中设置了运行/调试配置:
Host: web Port: 9000
Document Root: /Volumes/Sites/web
这是xdebug.log的输出:
Log opened at 2015-05-20 12:06:48
I: Connecting to configured address/port: localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Volumes/Sites/web/test.php" language="PHP" protocol_version="1.0" appid="3174" idekey="1"><engine version="2.2.3"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2013 by Derick Rethans]]></copyright></init>
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
Log closed at 2015-05-20 12:06:48
在“运行”面板中,我看到:
/Applications/MAMP/bin/php/php5.5.3/bin/php -S jce:9000 -t /Volumes/Sites/web
[Wed May 20 08:06:48 2015] 127.0.0.1:51388 Invalid request (Malformed HTTP request)
每次刷新浏览器后127.0.0.1:
更改后的端口号。
PHPStorm也无法对浏览器中运行的JavaScript文件中设置的断点做出反应。