经过几次不同的尝试,我创建了一个每分钟运行以下文件的cron任务 - 这个文件名为cron.php:
<?php
echo file_get_contents('http://website.com/search/all');
?>
搜索是我的控制器,全部是我的功能。
当通过终端访问此文件时,该文件正常工作并且预期:
php /srv/users/serverpilot/apps/websitename/public/cron.php
但是,只要我在 crontab -e 中安排它,它就无法正常运行(如果有的话),并且不会显示任何错误。这是 crontab -e :
的内容* * * * * php /srv/users/serverpilot/apps/brickmulesite/public/cron.php
当我查看我的cron日志( grep cron / var / log / syslog )时,这就是我所看到的:
Jan 27 13:55:01 websitename CRON[22231]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:56:01 websitename CRON[22237]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:57:01 websitename CRON[22241]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:58:01 websitename CRON[22247]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 13:59:01 websitename CRON[22260]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:00:01 websitename CRON[22266]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:01:01 websitename CRON[22270]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:02:01 websitename CRON[22274]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:03:02 websitename CRON[22278]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:04:01 websitename CRON[22363]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:05:01 websitename CRON[22367]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:06:01 websitename CRON[22372]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:07:01 websitename CRON[22376]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
Jan 27 14:08:01 websitename CRON[22383]: (root) CMD (php /srv/users/serverpilot/apps/websitename/public/cron.php)
看来cron正在运行但是没有运行文件中的代码。我错过了什么?
我知道我应该可以使用以下内容运行它,但这样做也没有,所以我想简化问题:
php -f /srv/users/serverpilot/apps/websitename/public/index.php search all
答案 0 :(得分:1)
<强> [解决] 强>
您会注意到我使用 ServerPilot 作为我网站的一部分。他们的平台允许我选择应该运行哪个版本的php我的web应用程序。总之...
该修复程序在本网站上找到: https://serverpilot.io/community/articles/how-to-use-the-php-cli.html
我需要做的是更改cron中的PHP调用,使其显示为:
* * * * * php5.6-sp /srv/users/serverpilot/apps/websitename/public/cron.php
请注意 php5.6-sp
我想这对ServerPilot用户非常具体。
答案 1 :(得分:0)
使用像
这样的完整路径/usr/bin/php
答案 2 :(得分:0)