0

我正在尝试调试从命令行运行的 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 直接向我输出结果。

4

3 回答 3

2

您将看不到任何输出,因为您正在使用“&”运行脚本,您使用fg命令将进程带回前台。

于 2013-10-10T15:42:02.890 回答
1

最后使用 & 时,命令在后台启动。您可以通过命令查看后台进程jobs。当你尝试它时,你可以看到 php 进程处于“停止”状态。

问题是 php 正在等待输入。这是由这个 php 扩展引起的:

readline php 扩展

以这种方式运行它:

php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 < /dev/null &

或禁用该扩展程序。

于 2013-10-10T15:57:03.527 回答
0

从命令行末尾删除&符号。它告诉 shell 在后台运行命令。

编辑:否则,可能是因为您使用的是经过网络调整的 php.ini:我希望该配置将错误记录到日志文件中。

于 2013-10-10T15:39:51.857 回答