设置一个新的Cron来运行一个PHP文件似乎什么也没发生

时间:2015-01-08 11:05:01

标签: php linux ssh cron crontab

我确信这对某人来说很容易回答。

我有一个专门的服务器,由我之前的其他人设置,我需要设置一个新的cron作业。 cron将运行一个PHP文件。

到目前为止,我已完成以下工作:

  • sudo crontab -u root -e
    编辑crontab。我添加我的代码行之前的最后一行是PHP脚本cron所以我用它作为示例并将文件路径更改为我的新文件。请参阅下面的两个示例,我也改变了每分钟运行的cron:

旧例子

 */5 * * * * /usr/bin/php /home/emailer/htdocs/admin/cron.php

我添加了新代码

 */1 * * * * /usr/bin/php /home/non-cms-websites/crons/cron-notifications/index.php

我添加的脚本只是将测试邮件发送到我的电子邮件帐户,使用PHP Mailer,目前只是一个基本脚本,但是当我开始工作时会有更多功能。

我是否需要重新启动/重新加载cron以便我添加新的cron?

如果有所不同,服务器正在运行Linux Ubuntu 10.04 64位。

非常感谢任何帮助,谢谢。

4 个答案:

答案 0 :(得分:0)

检查index.php文件的路径是否正确。还可以运行 crontab -l <​​/ strong>命令查看crons列表。

答案 1 :(得分:0)

根据此链接,您需要重新启动:http://wiki.qnap.com/wiki/Add_items_to_crontab

根据此链接,您不需要重新启动,但在某些注释中似乎可能会因Linux分发而异。 Restarting cron after changing crontab file?

重新启动的命令可能因linux发行版而异。这适用于我的Debian机器,也适用于Ubuntu。

sudo /etc/init.d/cron restart

sudo service cron restart

答案 2 :(得分:0)

如果您使用的是Vixie Cron,我认为没有必要重新启动。可能php文件路径或脚本有一些问题。请参阅以下链接,它可能会有所帮助。我引用了一小段摘录。

http://www.unixgeeks.org/security/newbie/unix/cron-1.html

&#34;有很多守护进程(例如httpd和syslogd)需要重新启动它们 配置文件更改后,程序有机会 重装它们。 Vixie Cron会自动重新加载文件 已使用crontab命令进行编辑。一些cron版本重新加载 文件每分钟,有些需要重新启动,但Vixie Cron只是加载 文件如果已经改变了。&#34;

答案 3 :(得分:0)

您提到您已经检查了它,但不清楚是要指向php的路径还是要在cli上实际运行它-如您所说的那样,它可以通过浏览器运行,并且.php脚本的路径正确。健全检查php可执行文件应在的位置

/usr/bin/php -v

虽然我运行的是完全不同的版本,但到2020年,我的php exec路径是/ bin / php。

没有授权的滑稽生意。

确保您已安装php-cli:

dpkg --get-selections | grep -i php

检查cron日志(通常是/ var / log / cron) 检查PHP错误。确保php.ini实际上具有cli的错误日志: 例如

; Log errors to specified file. PHP's default behavior is to leave this value ; http://php.net/error-log error_log = /var/log/httpd/php_errors.log ; Log errors to syslog. ;error_log = syslog

甚至更容易地,临时启用错误显示以供脚本调试(假设尚未明确禁用)。您之后的脚本顶部

error_reporting(E_ALL & ~E_NOTICE); ini_set('display_errors', 1);

使用您在cron中配置的命令字符串直接在cli上运行它(再次-健全性检查!)。让cron做事情,然后检查日志。

cron日志至少会告诉您是否被调用。 PHP错误日志(或按照配置的syslog)将为您提供预期的基础知识,但也有一些容易遗漏的错误,例如超出内存限制或已配置的max_execution_time。

通过网络服务器运行并不意味着在cli上一切都很好。