我正在运行 Ubunutu Linux 服务器、PHP5、Apache2,并且无法通过 crontab 运行任何类型的 cronjob。
我使用编辑crontab
crontab -e
我保存我要运行的文件:
*/5 * * * * php /home/user/public_html/crx/cronx.php
它保存得很好。我可以从控制台运行该文件并顺利进行。我什至找不到该文件的任何现有日志。我检查了 cron 是否正在运行、停止和启动……没有变化。
当前的 php 文件只是一个简单的测试脚本,将一行插入到数据库中。
我检查了该文件的权限并具有读写权限。我完全被难住了。我似乎无法通过 cron 运行任何东西。我可以运行什么来测试权限吗?
编辑 我也尝试过以下命令
- /usr/bin/php /home/user/public_html/crx/cronx.php
我使用 whereis php 和 which php 来定位并确认它都在正确的区域运行
最佳答案
您的时间有太多 *
值。
此外,cron 可能没有正确设置 PATH
以使用 PHP。
改为尝试:
*/5 * * * * /usr/bin/php /home/user/public_html/crx/cronx.php
其中 /usr/bin/php
是 PHP 的实际路径。您可以从控制台运行 which php
以查看您应该使用的 PHP 二进制文件的路径。
编辑:为了解决问题,这里还有一些尝试:
# see if cron is running just by having it create a file
*/5 * * * * touch /tmp/crontab-$(date +%s)
另一种选择:
将您的 PHP 脚本的权限设置为 755
,并将开头更改为:
#!/usr/bin/php -q
<?php
// rest of script
然后将您的 cron 选项卡更改为:
*/5 * * * * /home/user/public_html/crx/cronx.php
我仍然不确定 cron 是问题还是 PHP 脚本的运行。
关于PHP Cronjob 不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11893665/