如何为codeigniter设置cron作业url?
Posted
技术标签:
【中文标题】如何为codeigniter设置cron作业url?【英文标题】:How to set cron job url for codeigniter? 【发布时间】:2013-10-16 15:59:54 【问题描述】:我正在为我的网站使用 Codeigniter。我必须使用 cron 作业来运行控制器功能之一。我在网站上使用路由。而且我没有在 url 中使用 index.php。
例如http://my-domain.com/welcome/show,这里 Welcome 是我的控制器,show 是该控制器的函数名称。
我是这样用的,
0 * * * * php /home/username/public_html/welcome/show
它给出'没有这样的目录'
如何在 CPANEL 中为上述 url 设置 cron jon。
谢谢。
【问题讨论】:
【参考方案1】:* * * * * php index.php controllername functionname
第一个 * - 分钟, 第二个 * - 小时, 第三个 * - 一个月中的一天, 第 4 个 * - 月, 第 5 个 * - 星期几。
欲了解更多信息,请访问:https://crontab.guru/
【讨论】:
【参考方案2】:用途:
php index.php welcome show
作为 crontab 中的命令。例如:
0 * * * * php /home/username/index.php welcome show
来源(2.2.0 版) http://www.codeigniter.com/userguide2/general/cli.html
来源(版本 3.*) http://www.codeigniter.com/user_guide/general/cli.html
来源(版本 4.*) http://codeigniter.com/user_guide/cli/cli.html
【讨论】:
谢谢,我用过这个,但它会加载默认控制器。 您使用的是最新版本的 CI 吗? @Sachin try /usr/local/bin/php /home/user/index.php 欢迎节目 技巧在于加载与常规 /usr/bin/php 不同的 php 安装 我的机器上没有/usr/local/bin/php
excelente,在我的例子中是 php /home/myusername/domains/example.com/public_html/index.php tasks inserttest【参考方案3】:
我正在使用 hostgator 的 cpanel。 我在用户控制器中创建了一个用户控制器和“run_cron_data”函数。 命令:wget www.your_site_url.com/index.php/user/run_cron_data
请看下面的截图
【讨论】:
【参考方案4】:如果您使用的是 Hostgator(或任何其他 Linux 服务器),请尝试这个。
/opt/cpanel/ea-php72/root/usr/bin/php /YOUR_HOME_DIRECTORY/YOUR_USERNAME/public_html/marketing/index.php welcome emailcampaign 1
例如对我来说
/opt/cpanel/ea-php72/root/usr/bin/php /home3/adnan/public_html/index.php welcome emailcampaign 101
在哪里
welcome is the controller name
emailcampaign is the function name of welcome controller
101 = First argument of url.
【讨论】:
【参考方案5】:使用此过程通过 cPanel 设置 cron 作业:
-
登录到您的 cPanel 界面。
转到“高级”部分。
点击“Cron 作业”。
从提供的列表中选择具体时间。
您应该在“命令”字段中输入要运行的命令。
【讨论】:
【参考方案6】:如果您使用的是 cPanel,请使用以下命令:
/usr/bin/curl -k http://my-domain.com/welcome/show
这对我来说非常适合。
【讨论】:
【参考方案7】:在 Linux EC2 实例上,这有效:
*/5 * * * * /usr/bin/php /var/www/html/cifolder/index.php [module] [function]
【讨论】:
【参考方案8】:watch -n60 curl [your application path]/check_banalce/user_balance
在我的情况下,我使用 codeigniter,上面的命令每 60 秒执行一次在 check_balance 控制器中找到的 user_balance 函数。
【讨论】:
【参考方案9】:我使用的是 codeigniter 3.0.3,我的服务器是 hostgator。对我来说,以下格式工作正常
*/15 * * * * /opt/php55/bin/php /home/username/public_html/myapp/index.php reminders index
上述命令每15分钟运行一次,命令中的提醒是控制器名称,索引是方法名称。
【讨论】:
@sachin 你可以试试0 * * * * php /home/username/public_html/yourapp/index.php welcome show
【参考方案10】:
我已经做到了
00 09-18 * * 1-5 /usr/bin/php /var/www/html/app/index.php crontest
crontest 是控制器的名称,它也使用模型从数据库中提取数据并定期发送邮件(每周一至周五上午 9 点至下午 6 点)
我刚刚查看了this page,它通过示例进行了非常详细的解释。希望这对其他人也有用。
【讨论】:
虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。【参考方案11】:这是我使用的 cron
/usr/bin/php /home/pia/www/jobs/index.php cron 时事通讯
解释:
a) $_SERVER['DOCUMENT_ROOT'] = /home/pia/www
b) codeigniter 网站根目录 = /home/pia/www/jobs
c) 'cron' = 控制器名称
d) 'newsletter' = 方法名称
【讨论】:
嗨,这是什么工具?【参考方案12】:/usr/local/bin/php /home/username/public_html/index.php 控制器名方法名
这对我有用。
【讨论】:
感谢您的解决方案!如果我在我的应用程序中有登录名,这个解决方案只是一个简单的问题,它会询问为什么以及如何避免它? @Reshma D【参考方案13】:我在cron下面用过
php /full-path-to-cron-file/cron.php /test/index
来源:http://www.asim.pk/2009/05/14/creating-and-installing-crontabs-using-codeigniter/
这对我有用。
谢谢大家
【讨论】:
【参考方案14】:你也可以试试:
0 * * * * /usr/bin/curl --silent --compressed http://my-domain.com/welcome/show
或本地主机
0 * * * * /usr/bin/curl --silent --compressed http://localhost/welcome/show
希望对你有帮助。
【讨论】:
你能解释一下吗【参考方案15】:你可以试试这个:
wget api.example.com/index.php/controller/function
【讨论】:
谢谢回复,意思是我的例子中的url是0 * * * * wget http://my-domain.com/welcome/show
,对吗?
我觉得可以,你可以试试这个
谢谢 Suvash.. 这个网址对我有用。 wget yourSite.com/index.php/controller/method
我每分钟设置 2 个 cron,这些会创建许多 tmp 文件。
小心如果你正在使用它,因为基本上wget
正在下载一个网站作为一个文件,所以你的服务器会有很多文件。例如,我运行了 2 次 wget localhost/my_controller/auth
,然后我用 [root@myserver bin]# ls -l | grep auth
命令检查,我有 2 个文件:-rw-r--r-- 1 root root 57 Feb 27 07:53 auth
和 -rw-r--r-- 1 root root 57 Feb 27 07:53 auth.1
以上是关于如何为codeigniter设置cron作业url?的主要内容,如果未能解决你的问题,请参考以下文章