我有一个 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