phpstorm中的调试PHP命令行脚本
-
24-10-2019 - |
题
我用 phpstorm 作为我调试PHP的主要工具,非常高兴。到目前为止,我一直在使用Firefox来运行脚本,而PhpStorm捕捉到了完美的破裂。
现在,我有一种情况,我正在通过命令行(不是浏览器)运行PHP脚本,并且想知道是否有一种方法可以通过命令行运行PHP脚本来设置PHPSTORM?
解决方案
请 观看/投票 相关的phpstorm问题。
目前,配置有点复杂。应该可以像 在Zend KB中描述, ,带有假服务器和 PHP远程调试 phpstorm中的配置。请注意,本教程有一个错误,您需要设置这样的query_string(在Windows上):
SET "QUERY_STRING=start_debug=1&debug_port=10137&debug_host=127.0.0.1&debug_stop=1&no_remote=1&debug_session_id=10000"
(请注意引用的差异,这很重要)。
设置phpstorm,如屏幕截图所示:
请按 调试 主工具栏上的按钮。 PHPSTORM将开始聆听调试器连接。
在命令行中运行您的脚本:
d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php
PHPSTORM将达到断点:
通过Zend Server安装在Windows上进行了测试,但在其他系统和Xdebug上应该相似。
如果您想直接从phpstorm调试,请使用 PHP脚本 运行/调试配置类型。您为此项目配置的PHP实例必须具有 Zend调试器 或者 xdebug 在配置文件中启用。
可以在 File | Settings | PHP
.
只需使用Zend Server安装验证(PHP Home: d:\dev\zend\ZendServer\bin
)和Zend Debugger,对我来说非常适合。
其他提示
用phpstorm在外壳/命令行上使用Xdebug启用PHP调试非常容易:
export XDEBUG_CONFIG="idekey=PHPSTORM"
在Windows CLI中,使用设置代替导出。
set XDEBUG_CONFIG="idekey=PHPSTORM"
确保phpstorm正在聆听PHP调试连接。
从命令行端禁用调试:
unset XDEBUG_CONFIG
此(PHPSTORM)是默认的phpstorm IDE键。
- 单击运行。
- 单击编辑配置...
- 单击绿色 +
- 选择PHP脚本。
- 在名称字段中提供名称。
- 在文件字段中提供脚本的完整路径。
- 单击确定。
- 选择您在此下拉列表中刚刚配置的脚本:
- 单击运行或调试按钮。您的脚本应该运行,它应该捕获设置的任何断点。
如果运行脚本,则可以在此处看到输出:
如果调试脚本,则可以在此处看到输出:
检查环境变量 SERVER_NAME
和 SERVER_PORT
设置。 PHPSTORM需要他们进行正确的映射。将它们放在bash中或在phpscript中手动设置。在这两种情况下,PhpStorm都可以找到它 $_SERVER['SERVER_NAME']
和 $_SERVER['SERVER_PORT']
正确。
对我(在MacOS上),它以这种方式工作:export XDEBUG_CONFIG="idekey=12345"
这些建议对我来说都没有很好。
如果您处于相同的情况,请尝试此命令(检查正确的PHP解释器路径)
/usr/bin/php -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 [PHP_SCRIPT]
在MacOS上,我使用了不同的bash_profile。我必须首先运行命令:
source ~/.bash_profile
这将我的PHP从内置的/usr/bin/php更改为通过XAMPP安装的PHP。 phpstorm的Xdebug开始在上面的命令之后工作。