使用 crontab 执行 php

2022-08-30 19:39:17

我正在尝试按计划运行php脚本。所以我认为crontab是个好主意。我使用的服务器是在Linux上,我不太熟悉。所以我遇到的问题是,我不知道如何使脚本从php可执行。我需要引用脚本,或者将其放入可以从命令行运行php的文件夹中。所以我不知道该给我的crontab什么路径,例如:

5  * * * * var/www/some/path/script.php

我发现了一些关于这个php可执行文件的模糊信息,在

/usr/bin/php

但是我在那里找不到任何php文件,也许我没有安装它?我的 php5 和 apache 安装是在:

/etc/php5

所以我的问题变成了,是否无论如何都可以在任何其他文件夹中使用crontab执行php脚本,或者我只是在usr / bin / php中缺少php可执行文件?


答案 1

首先在命令行键入:

whereis php

以将在其下运行 cron 作业的用户身份执行此操作。这将显示可执行文件的路径。然后,您可以在 cron 条目中使用该路径(如果它尚未包含在 PATH 变量中):

5 * * * * /your/path/to/php /var/www/some/path/script.php

编辑:如果您拥有的只是安装的Apache PHP模块,则可能需要安装(Ubuntu软件包名称)软件包。这将为您提供可以从命令行运行的二进制可执行文件。php5-cli


答案 2

这是一个Linux系统吗?

在较新的Linux发行版中,
实际上有一个方便的crontab设置系统
,它不需要用户在crontab中进行任何条目。例如,在SuSE Linux中,你有目录

/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.monthly/
/etc/cron.weekly/

只需将调用脚本(konno_php_start)放在这些目录中,例如

/etc/cron.hourly/konno_php_start

它是可执行的(chmod 755左右),并且包含:

#!/bin/sh
cd /var/www/some/path/
php  script.php >> logfile.txt 2>&1

并重新启动 cron 守护程序。就是这样。

从日志文件中,您将看到您的php解释器
是否会在PATH中找到。如果不是,请将 /etc/cron.hourly/konno_php_start 中的行更改为

/full/path/to/php  script.php >> logfile.txt 2>&1

问候

断续器


推荐