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


How to create a simple Cron (CodeIgniter)

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

[已解决]

你会注意到我正在使用ServerPilot作为我网站的一部分。他们的平台允许我选择我的网络应用程序应该运行哪个版本的php。无论如何。。。

在此

网站上找到了修复程序: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用户的。

使用完整的路径,例如

/usr/bin/php

只需将其与 curl 一起使用即可

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

在命令文本框中