如何设置 CRON 来执行公共 html 文件夹之外的 php 文件?

如何设置 CRON 来执行公共 html 文件夹之外的 php 文件?

我有一个 php 文件,例如位于:

/data/web/process.php

此文件不公开(该文件夹中没有运行虚拟主机,但安装了 apache)。我需要每天每分钟执行此文件。

我知道我可以用 打开 crontab crontab -e,但我不确定我应该向文件中写入什么才能使我需要做的事情有效。

请问有什么帮助吗?

答案1

运行crontab -e并添加行:

* * * * * /usr/bin/php -f /data/web/process.php 2>&1 >> /path/to/output/file.log

在执行此操作之前,请确保它能/usr/bin/php -f /data/web/process.php满足您的要求。另请注意,cron 将以调用 的同一用户身份运行它crontab -e,因此如果您以用户 rimmer 身份运行它,它将以 rimmer 身份运行,如果以 root 身份运行,它将以 root 身份运行。

如果你希望以 apache 用户身份执行,请执行以下操作:

sudo -u www-data crontab -e

假设 www-data 是您的 apache 用户。您还可以创建一个文件/etc/cron.d/my-php-job

确保没有坏人可以编辑 /data/web/process.php 文件并仔细检查该文件。我会将此文件设为 root 所有并具有 644 权限。不要将其设为 apache 用户所有并可写。

答案2

请尝试以下操作:

/path/to/php -f /data/web/process.php

相关内容