2012-07-12 140 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