为什么我的 php 脚本在启动时无法运行?从命令行运行没问题

为什么我的 php 脚本在启动时无法运行?从命令行运行没问题

我通过输入“crontab -e”(在 root 和“ubuntu”用户中,在 32 位 Canonical Ubuntu AWS 实例上)将以下信息放入我的 crontab 文件中:

@reboot /usr/bin/php /usr/share/nginx/www/cron/updateIp.php

我也尝试过:

@reboot /usr/bin/php /usr/share/nginx/www/cron/updateIp.php >> /home/ubuntu/crontab.log

两次重启后,/home/ubuntu/crontab.log 中没有任何内容。

我想象当这个 cronjob 尝试运行时 php 和/或 nginx 没有加载?

然而,由于没有任何错误日志可供检查,我不知所措接下来做什么..?

编辑:即使使用与crontab -e是在...下创建的,但 cronjob 没有运行。

编辑2:(系统日志的结果):

Nov  9 13:29:02 ip-10-122-254-128 CRON[603]: (root) CMD (php /usr/share/nginx/www/cron/updateIp.php)
Nov  9 13:29:02 ip-10-122-254-128 CRON[604]: (ubuntu) CMD (/usr/bin/php /usr/share/nginx/www/cron/updateIp.php >> /home/ubuntu/crontab.log 2>&1)

编辑3: 此链接实际上提供了我正在寻找的答案。显然我需要安装 php-cgi 并特别提到它,即使 whereis php 没有显示它?只需安装 php5-cgi 并将 /usr/bin/php 更改为 /usr/bin/php-cgi 即可。我已经安装了 php5-cli 和 php5-fpm,所以我认为 php5-cgi 不是必需的,但我想它一定是必需的。

答案1

检查 stat cron 是否正在运行

status cron 
cron start/running, process 1380

或者

ps aux | grep cron
root      1380  0.0  0.0   2092   876 ?        Ss   Nov03   0:02 cron

如果它正在运行,那么请查看/var/log/syslog是否有任何相关消息。

grep CRON /var/log/syslog
Nov  9 11:18:29 iain-ubuntu cron[3509]: (CRON) STARTUP (fork ok)
Nov  9 11:18:29 iain-ubuntu cron[3509]: (CRON) INFO (Skipping @reboot jobs -- not system startup)

答案2

最有可能的是,cron 服务已关闭

相关内容