在cron作业中执行PHP脚本

Kha*_*los 29 php linux apache cron centos

在我们的centos6服务器中.我想在cron job中执行一个php脚本作为apache用户,但不幸的是它不起作用.

这是crontab的版本(crontab -uapache -e)

24 17 * * * php /opt/test.php
Run Code Online (Sandbox Code Playgroud)

这里是"test.php"文件的源代码,它与"apache"用户作为所有者一起正常工作.

<?php exec( 'touch /opt/test/test.txt');?>
Run Code Online (Sandbox Code Playgroud)

我尝试用php的完整路径替换php(/ usr/local/php/bin/php),但它也无法正常工作

在此先感谢,请帮助我

Ili*_*sev 74

自动化任务:Cron

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
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,*/10****表示任务应该发生的时间.第一个数字表示分钟 - 在这种情况下,每隔"十"分钟.其他数字分别代表小时,,星期几.

*是一个通配符,意思是"每次".

首先输入命令行找出你的PHP二进制文件:

whereis php
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

php:/ usr/bin/php /etc/php.ini /etc/php.d/usr/lib64/php/usr/include/php/usr/share/php /usr/share/man/man1/php.1 .广州

正确指定命令中的完整路径.

输入以下命令以输入cronjob:

crontab -e
Run Code Online (Sandbox Code Playgroud)

看看你在crontab中得到了什么.

编辑1:

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

Shift+:
Run Code Online (Sandbox Code Playgroud)

然后输入 q!


小智 11

我有同样的问题......我必须以用户身份运行它.

00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php
Run Code Online (Sandbox Code Playgroud)