在cron作业中执行PHP脚本

0md85ypi  于 2022-12-21  发布在  PHP
关注(0)|答案(4)|浏览(157)

在我们的centos 6服务器中,我想以apache用户的身份在cron job中执行一个php脚本,但是很遗憾它不起作用。
下面是crontab的版本(crontab -uapache -e)

24 17 * * * php /opt/test.php

这里是“test.php”文件的源代码,它可以很好地与“apache”用户作为所有者。

<?php exec( 'touch /opt/test/test.txt');?>

我尝试用php的完整路径(/usr/local/php/bin/php)替换php,但也不起作用。

mwngjboj

mwngjboj1#

Cron是Linux/UNIX类计算机操作系统中的一个基于时间的调度服务。Cron作业用于调度命令定期执行。您可以设置命令或脚本,这些命令或脚本将在设定的时间重复运行。Cron是Linux或UNIX类操作系统中最有用的工具之一。Cron服务(守护程序)在后台运行,并不断检查*/etc/crontab * 文件、/etc/cron./目录。它还检查/var/spool/cron/*目录。

配置Cron任务

在以下示例中,下面显示的 * crontab命令 * 将每隔十分钟自动激活cron任务:

*/10 * * * * /usr/bin/php /opt/test.php

在上面的示例中,/10***表示任务应该发生的时间。第一个数字表示 * 分钟 *-在本例中是每"十"分钟。其他数字分别表示 * 小时 月 * 和 * 星期 *。

  • *是通配符,表示"每次"*。

首先在命令行中键入以下内容,找出 * PHP * 二进制文件:

whereis php

输出应类似于:
/usr/bin/php/etc/php.ini/etc/php. d/usr/lib64/php/usr/包含/php/usr/共享/php/usr/共享/man/man1/php.1.gz
在命令中正确指定完整路径。

键入以下命令以进入cronjob:

crontab -e

看看你在 * crontab * 里得到了什么。

编辑1:

要退出vim编辑器而不保存,只需点击:

Shift+:

然后键入q!

nkcskrwz

nkcskrwz2#

我遇到了同样的问题...我必须以用户身份运行它。

00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php
llmtgqce

llmtgqce3#

您可能需要以具有执行PHP脚本权限的用户身份运行cron作业。请尝试使用命令runuserman runuser)以root用户身份执行cron作业。或者创建一个系统crontable并以授权用户身份运行PHP脚本,如@Philip所述。
在这篇stackoverflow文章中,我提供了如何使用cron的详细答案。
如何编写一个在每天午夜运行脚本的cron?

8fsztsew

8fsztsew4#

我尝试了所有的路径组合,但不工作。可能他们是必要的。
在我的案例中,使用Centos 7时,重新启动或服务器正常工作。

相关问题