在 cron 任务中执行 PHP 脚本
- 2024-10-09 09:10:00
- admin 原创
- 79
问题描述:
在我们的 centos6 服务器中。我想以 apache 用户身份在 cron 作业中执行 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,但是也不起作用。
解决方案 1:
自动化任务: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
在上面的示例中, /10 表示任务应发生的时间。第一个数字表示分钟——在本例中,每“十”分钟。其他数字分别表示小时、天、月和星期几*。
*
是通配符,表示“每次”。
首先通过在命令行中输入以下内容来找出您的PHP二进制文件:
whereis php
输出应该是这样的:
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.gz
在命令中正确指定完整路径。
输入以下命令进入cronjob:
crontab -e
查看crontab中的内容。
编辑1:
要退出 vim 编辑器而不保存,只需单击:
Shift+:
然后输入q!
解决方案 2:
我遇到了同样的问题...我必须以用户身份运行它。
00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php
解决方案 3:
runuser
您可能需要以具有执行 PHP 脚本权限的用户身份运行 cron 作业。尝试使用命令( )以 root 身份执行 cron 作业man runuser
。或者创建一个系统 crontable 并以授权用户身份运行 PHP 脚本,如 @Philip 所述。
我在此 stackoverflow 帖子中提供了有关如何使用 cron 的详细答案。
如何编写一个每天午夜运行脚本的 cron?
解决方案 4:
我尝试了所有与 PATH 的组合,但不起作用。可能需要它们。
就我的情况而言,使用 Centos 7,重新启动或服务器就可以正常工作。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件