如何使用 xdebug 调试 PHP CLI 脚本?
我还没有完全弄清楚这一点。我找到的每一个文档都涵盖了如何使用xdebug调试在Apache中运行的脚本。我需要调试一个php CLI脚本。
那么,例如,我如何传递XDEBUG_SESSION_START变量来启动xdebug?
我专门尝试调试一个CakePHP shell。因此,如果有人对此有任何额外的见解,我将不胜感激。
谢谢。
我还没有完全弄清楚这一点。我找到的每一个文档都涵盖了如何使用xdebug调试在Apache中运行的脚本。我需要调试一个php CLI脚本。
那么,例如,我如何传递XDEBUG_SESSION_START变量来启动xdebug?
我专门尝试调试一个CakePHP shell。因此,如果有人对此有任何额外的见解,我将不胜感激。
谢谢。
在Xdebug的手册中有一些关于此的注释,例如(引用):
export XDEBUG_CONFIG="idekey=session_name"
php myscript.php
如果您使用Eclipse PDT来开发和调试PHP脚本,Apache或CLI之间没有太大区别:配置lloks完全相同,您只需要配置Web服务器,也不必指示URL ;相反,您必须指示PHP可执行文件的路径。
关于变量:好吧,你在“调试模式”下启动整个脚本,所以你没有任何“调试会话”的概念,我会说。XDEBUG_SESSION_START
例如,以下是我现在的样子,在右侧,单击第一个按钮时我得到的:Window > Preference > PHP > PHP executables
Edit
(资料来源:pascal-martin.fr)
(资料来源:pascal-martin.fr)
和窗口 :debug configurations
(资料来源:pascal-martin.fr)
并启动调试:它只是工作:
(资料来源:pascal-martin.fr)
希望这有帮助:-)
否则,您会遇到什么具体问题?
如果你使用的是 bash(或类似的 shell),这个小脚本可能会派上用场:
alias drush-debug=drd
function drd {
export XDEBUG_CONFIG="idekey=cli_session"
export SERVER_NAME="developer.machine"
export SERVER_PORT="9000"
drush "$@"
unset XDEBUG_CONFIG
unset SERVER_NAME
unset SERVER_PORT
};
或按照以下评论员的建议
alias drd='XDEBUG_CONFIG="idekey=PHPSTORM" drush "$@"'
这样,就不必在每次要调试时手动设置和取消设置触发器变量。