2012-07-12 137 views
3

我需要使用CodeIgniter在文件上运行cron作业,但CodeIgniter不会让我直接运行文件。即使用CodeIgniter运行cron作业

我可以运行在浏览器中的控制器:

api.example.com/index.php/cron 

我唯一的托管让我运行PHP文件时,我无法通过命令行来做到这一点,因为它不会让我跑的wget或卷曲。

我怎样才能让笨运行文件象下面这样:

api.example.com/index.php/application/controller/cron.php 

我可以调用该文件与我的主机。

更新

以为我只会更新选项中没有一个为我工作我最终改变托管和执行以下操作。

http://devsforrest.com/116/setup-a-cronjob-to-run-every-5-minute-on-media-temple

回答

1

型用户wget命令应该是:

wget api.example.com/index.php/controller/function 

,并注意不要使用文件的路径中使用它调用你的函数的URL。

0
class Cron extends CI_Controller { 
    function index($dummy) { 

     // Crony command 

    } 
} 

线:api.example.com/index.php/cron/index/dummy.php

Basicly给出的示例使用第三URI段传递.php您不要使用结束的值。

要不然你可以用好醇” Routing

+0

啊正确的感谢罗宾会给那个尝试;) – user1503606 2012-07-12 20:24:53

+0

这不会工作,请参阅图像附加https://s3-eu-west-1.amazonaws.com/isdcloud/backups/Screen+Shot+2012-07- 13 + at + 09.42.33.png – user1503606 2012-07-13 09:03:24

+0

所以基本上它会提取你的ftp中的所有php文件的列表?它们是多么复杂和有限的解决方案。 – 2012-07-13 09:32:25

0

使用的.htaccess追加.php后缀请求的URL,我没有测试下面的代码,但我希望它能帮助。

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [R=301] 
+0

嗨拉米仍然不能得到这个工作,看看我的cronjobs如何在我的形象工作https://s3-eu-west-1.amazonaws.com/isdcloud/backups/Screen+Shot+2012-07-13+at+09.42 .33.png – user1503606 2012-07-13 09:03:56

2

不知道这是你在找什么,或者如果我回答你错了,但我跑我使用CodeIgniter cron作业的方法就是做这个的cron的:

php /path/to/index.php controller function 

然后在控制器我有这它

if(PHP_SAPI != 'cli') exit('My Custom Error Message'); 
+0

嗨不幸的是,仍然不能得到这个工作看看我的cronjobs如何在我的形象工作https://s3-eu-west-1.amazonaws.com/isdcloud/backups/Screen+Shot+2012-07-13 + at + 09.42.33.png – user1503606 2012-07-13 09:04:16

0

使用卷曲的顶部,并通过URL调用您的cronjob。如果CURL在您的主机中启用,那将是一个不错的选择。

在您的网站的根文件夹中创建一个名为cronjob.php的PHP文件名,并将以下脚本添加到文件中。

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/index.php/controller/method"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$server_output = curl_exec ($ch); 
curl_close ($ch); 
?> 

现在在cronjob中调用php文件cronjob.php,它应该工作。与您的网址,以你的情况运行笨文件的cron沿

+0

您好,仍然无法得到这个工作,看看我的cronjobs如何在我的形象工作https://s3-eu-west-1.amazonaws.com/isdcloud/backups/Screen+Shot+2012 -07-13 + at + 09.42.33.png – user1503606 2012-07-13 09:04:03

+0

是的,这是可能的。我编辑了答案以更详细地解释它。请再检查一次。 – Nish 2012-07-13 09:09:25

+0

不起作用,因为我需要它来运行.php文件而不是index.php – user1503606 2012-07-13 09:14:48