设置新的Cron以运行PHP文件,似乎什么也没发生

问题描述 投票:0回答:4

我确定这对某人来说相当容易回答。

我有一个专用服务器,该服务器已经由我之前的其他人安装,我需要设置一个新的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运行吗?

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

非常感谢您的帮助,谢谢。

php linux ssh cron crontab
4个回答
0
投票

检查index.php文件的路径是否正确。另外,运行crontab -l命令以查看克隆列表。


0
投票

我想如果您使用的是Vixie Cron,则无需重新启动。 php文件路径或脚本可能存在一些问题。请查看下面的链接,它可能会有所帮助。我引用了一个小摘录。

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

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


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

0
投票

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

/usr/bin/php -v

而且没有授权的滑稽生意。

确保您已安装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日志至少会告诉您是否正在调用它。PHP错误日志(或按照配置的syslog)将为您提供预期的基础知识,但也有一些容易遗漏的错误,例如超出内存限制或已配置的max_execution_time。

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

© www.soinside.com 2019 - 2024. All rights reserved.