CRON ile CodeIgniter dosyasını çalıştırmak nasıl?

5 Cevap php

Ben geçmişte aşağıdaki yöntemi denedim:

<?php
set_time_limit(0);
$_SERVER['PATH_INFO'] = 'cron/controller/index';
$_SERVER['REQUEST_URI'] = 'cron/controller/index';
require_once('index.php');
?>

ve cron.php çağıran ve daha sonra yoluyla çağırarak, CodeIgniter kurulum dizininde bir dosyada bu koyarak:

php /home/[username]/public_html/my_project/cron.php

Onun CRON üzerinden çalıştırmak zaman ben ancak, mükemmel çalışıyor benim tarayıcıda cron.php için URL'yi yazarsanız ben bir 404 hatası alıyorum. CodeIgniter ve show_404() işlevi aşağıdaki kodu koyarak

function show_404($page = '')
{
   print_r($_SERVER);
   echo "\n\n";
   die ($page);
}

bana e-postayla aşağıdaki çıktıyı almak sonuçları:

Array
(
   [SHELL] => /bin/sh
   [MAILTO] => me@gmail.com
   [USER] => [me]
   [PATH] => /usr/bin:/bin
   [PWD] => /home/[me]
   [SHLVL] => 1
   [HOME] => /home/[me]
   [LOGNAME] => [me]
   [_] => /usr/bin/php
   [PHP_SELF] =>
   [REQUEST_TIME] => 1266479641
   [argv] => Array
       (
           [0] => /home/[me]/public_html/my_project/cron.php
       )

   [argc] => 1
   [PATH_INFO] => cron/controller/index
   [REQUEST_URI] => cron/controllers/index
)


home/[me]

İşte benim gerçek adı yerine [beni] ettik.

Herhangi bir fikir?

5 Cevap

CodeIgniter üzerinden bir cron çalıştırmak için basit yolu uygulaması ile bir cron URL kullanılabilir hale getirmektir.

Sonra wget yoluyla çağrı

wget -O - -q -t 1 http://www.example.com/cron/run

Kontrolörün içinde sonra Google robotları Yanlışlıkla tetik eğer cron çok sık yani çalıştırmak sağlamak için bir günlüğü kullanabilirsiniz.

İkinci bir yöntem lynx kullanmak olacaktır

/usr/local/bin/lynx -source http://www.example.com/cron/run

Örümcek tepkisini görmezden - Sen de eklemek isteyebilirsiniz. Bu aşımına gelen isteği durdurur:

wget -O - -q -t 1 --spider http://www.example.com/cron/run

Ayrıca bu kontrol etmek isteyebilirsiniz: Cron job bootstrapper

Bu doğrudan komut sizin CodeIgniter denetleyicileri çalıştırmak için kullanabileceğiniz basit bir önyükleyici dosyasıdır. Bu cron işleri için CI denetleyicileri kullanmak için çok kolay ve şık bir çözüm. Ayrıca günlük destekler.

Orada komut satırında CodeIgniter'ı çalıştırma hakkında bir wiki makale, ancak bu (çok bunun için bir kütüphane var) terminali yoluyla kullanıcı ile etkileşim için gereken uygulamalar için daha yararlıdır.

http://codeigniter.com/wiki/CI_on_the_command_line/

O wget kullanarak üzerinden bu şekilde yapmanın bir yararı sahip kullanıcılar veya botlar tarafından yürütülüyor kodunuzu koruyabilirsiniz olduğunu:

if(!empty($_SERVER['HTTP_HOST']))
{
     show_error('Shove off hax0r!');
}

Eğer url çalıştırarak cron işi çalıştırmak istiyorsanız, burada büyük bir yazıdır

http://www.nbill.co.uk/documentation/setting-up-a-cronjob.html