CodeIgniter CRON 任务

4
我正在尝试设置一个CRON作业,在CodeIgniter安装中进行一些数据库更改,但是遇到了主机问题,导致它无法正常工作。主机的CRON设置只允许执行PHP文件,而不是调用URL。
我尝试过以下方法: 从静态PHP文件中使用Curl、wget、file_get_contents、fopen、http_get - 所有这些都被主机禁止了。 使用命令行接口的控制器方法:/path/to/php /path/to/index.php 在与主机的无果对话后,我没有任何想法。有人知道如何在没有上述方法的情况下从静态PHP文件中调用控制器方法吗?

我使用CLI方法,它可以正常工作...你用的是哪个版本的PHP?你知道你的主机是哪种Linux吗? - Marc Audet
你是在共享主机还是虚拟专用服务器(VPS)上工作? - Marc Audet
我不确定这是哪种Linux系统,也不知道如何查找,但我可以在phpinfo下看到:x86_64-redhat-linux-gnu。这些命令可以通过PHP 4或PHP 5.2运行,并且它位于共享主机上。 - PaulK
你的最佳选择可能是在我们托管公司的社区论坛或公告栏上发布一些内容(如果可能的话)。这个问题非常依赖于服务器。很抱歉我不能提供太多帮助。 - Marc Audet
尝试这些解决方案 https://dev59.com/p1vUa4cB1Zd3GeqPpACy - san4o
谢谢您的提示/链接,但仍然没有成功 - 主机似乎已经锁定了除直接文件执行以外的所有内容 - 仍然欢迎提出想法 - PaulK
1个回答

1

首先,我假设你正在使用CI ver 2>(在此之前没有CLI支持)。

其次,假设你要在cron下运行的页面是http://www.mysite.com/index.php/cronjobs/thejob

正确的命令应该是:

/usr/bin/php /var/www/rootCIfolder/index.php cronjobs thejob

请将/usr/bin/php替换为您的php可执行文件所在位置,将/var/www/rootCIfolder替换为您的CI文件夹所在位置。
您需要使用支持命令行的编译php。您可以通过以下方式进行验证:
# php -v
PHP 5.3.3 (cli) (built: Jul  3 2012 16:53:21)

关于cronjobs和job怎么办?控制器和方法呢? - Stranger
1
@Udhay 是的,“cronjobs”是控制器,而“thejob”是方法。 - Iraklis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接