2013-03-21 129 views
1

好吧,我看了其他所有線程,完成了他們已經完成的工作,並在手冊中說了些什麼,我無法弄清楚這是否適合我的生活。 cron工作的結果正在通過電子郵件發送給我的其中一封電子郵件。它所做的只是打印佈局的html標記......並打印基本頁面內容......就像它沒有註冊任何東西。CodeIgniter通過Cpanel的Cron作業

php /home/jdstable/public_html/dev/index.php cron decrease_pets_stats 

這是我的命令行..我試圖用用戶/本地/ bin/php的東西取代php,它並沒有工作。問題是,我有其他的cron作業運行在PHP路徑/到/ cron.php工作FINE程序的PHP代碼...但它不會與CI ..

我的控制器是Cron和我的方法是decrease_pets_stats ..

//decrease pets stats 
public function decrease_pets_stats() { 
$this->load->model('Cron_model', 'cron'); 
    $this->cron->decrease_pets_stats(); 
    echo 'Decreased pet stats'; 
} 

這裏是方法的邏輯:

//decrease pets stats 
//runs every hour 
public function decrease_pets_stats() { 
    $this->db->set('hunger', 'hunger - 5'); 
    $this->db->set('happiness', 'happiness - 5'); 
    $this->db->set('loyalty', 'loyalty - 5'); 
    $this->db->update('user_creature'); 
} 

沒有人有任何想法,爲什麼它只是打印佈局標記?我的構造是這樣的:

public function __construct() { 
     parent::__construct(); 
     if(! $this->input->is_cli_request()) show_error('Direct access is not allowed'); 

     $this->load->model('Cron_model', 'cron'); 
    } 

我的父類的構造持有相當多的東西(裝載傭工和庫越來越出現在每一頁上,如果他們登錄的用戶信息一起

不它的問題,如果這是在控制器的頂部,即使打開控制器的Cron上課前?

if (! defined('BASEPATH')) exit('No direct script access allowed'); 

回答

6

默認安裝PHP您使用的可能是編譯爲CGI-FCGI,不爲CLI。這取決於你的主機上和/或服務器,但您需要搜索您r爲命令行界面安裝PHP,然後在你的cron作業中使用它。我對Hostmonster的確切同樣的問題,我的cron命令結束了:

/ramdisk/bin/php5-cli ~/public_html/sitefolder/index.php controller method 

對於我來說,我需要的PHP是/ramdisk/bin/php5-cli

1

在/ usr/local/bin目錄/ PHP /home/jdstable/public_html/dev/index.php的cron decrease_pets_stats

這個固定。

2

有同樣的問題,並試圖之後不管我所能的事情明顯的工作... 在/ usr/local/bin目錄/ PHP /absolute/path/to/index.php的cron

5

對於笨2.2。0

你可以試試這個兩種方法:在你的情況

  1. php-cli /home/username/public_html/index.php controller method
  2. wget http://www.example.com/controller/method

  1. php-cli /home/username/public_html/index.php Cron decrease_pets_stats
  2. wget http://www.example.com/Cron/decrease_pets_stats

它可以正常工作。 乾杯!

0

下面是解決方案首先,你需要找到的phpinfo的document_root文件名路徑

PHP5 /home/abc/public_html/index.php FOLDER_NAME控制器功能