我正在尝试调试从命令行运行的PHP应用程序。我想稍后使用 cronjob 每小时调用一次模块。
为了调试,我像这样执行PHP脚本:
php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 &
(忘记"12" - 这是脚本的参数(
现在基本上我通过 SSH 获得此输出:
[2] 10181
[1] Done php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12
我不知道我做了什么更改,但几周前我直接在屏幕上看到了实际的 php 错误。这就是我所期望的。但是我不知道如何强制PHP直接输出我结果。
您不会看到任何输出,因为您正在使用"&"运行脚本,您需要 fg 命令将进程恢复到前台。
当你在最后使用 & 时,命令在后台启动。您可以通过命令 jobs
查看后台进程。当你尝试它时,你可以看到php进程处于"停止"状态。
问题是 php 正在等待输入。它是由这个 php 扩展引起的:
阅读线 PHP 扩展
以这种方式运行它:
php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 < /dev/null &
或禁用该扩展程序。
从命令行末尾删除与号。 它告诉命令行管理程序在后台运行命令。
编辑:否则,可能是因为您使用的是网络调优的PHP.ini:我希望该配置将错误记录到日志文件中。