【发布时间】:2016-01-27 19:14:18
【问题描述】:
经过几次不同的尝试,我创建了一个 cron 任务,它每分钟运行以下文件 - 这个文件称为 cron.php:
<?php
echo file_get_contents('http://website.com/search/all');
?>
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
【问题讨论】:
-
php -f /srv/users/serverpilot/apps/websitename/public/index.php search/all如果您的Search.php控制器直接位于您的controllers文件夹中,则应该可以工作。您的error_log中是否有任何错误?另外请记住,您可以使用127.0.0.1而不是localhost作为数据库主机。 -
嗨@ArkoElsenaar -
Search.php文件直接位于controllers文件夹内。 error_log 为空... -
从 cron 运行时,您希望在哪里看到输出?
-
嗨@ScottSaunders - 该文件应该发送一封电子邮件并写入数据库。 cron 不会发生,但通过 CLI 以
php /srv/users/serverpilot/apps/websitename/public/cron.php访问时会发生
标签: php codeigniter cron