如何创建一个简单的Cron(CodeIgniter)

时间:2016-01-27 19:14:18

标签: php codeigniter cron

经过几次不同的尝试,我创建了一个每分钟运行以下文件的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

3 个答案:

答案 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)

只需使用curl

即可

卷曲“http://www.nameofdomain.com/controllername/functionname

命令文本框中的