Bir url cronjob Kıvrılmaları kullanarak

4 Cevap php

Ben MediaTemple barındırılan php-Codeigniter üzerinde bir uygulama var ve ben bir denetleyici koşuyoruz bir cron işi yapmak istiyorsanız, destek herhangi bir başarı, örnek olmadan kullanarak denedim CURL kullanmak söyledi:

curl http://mydomain.com/admin/action/get

Benim denetleyici bir veritabanına bazı bilgiler ekler, kıvırmak hata görüntülemek yok ama ben çalışır tarayıcıda doğrudan denetleyicisi çalıştırdığınızda ekler tek gerçekleşiyor değildir. Hiçbir auth gereklidir.

Herhangi bir fikir?

teşekkürler

4 Cevap

İnsanların gerçekten size yardımcı olabilir daha önce neler olduğu hakkında daha fazla bilgi vermeniz gerekir. Bunu görmek Lütfen helpful guide to asking questions.

Bazı başlangıç ​​noktaları:

  1. Eğer komut satırından bu komutu çalıştırdığınızda ne olur?
  2. Bir Web tarayıcısında kontrolör URL'ye gidin ne olur?
  3. Senin "hiçbir başarı" Tam olarak ne oluşur? Başarının hangi endikasyonlar arıyorsun ve ne gözlemliyoruz?
  4. Denetleyicisi kimlik doğrulaması gerektiriyor mu? Eğer öyleyse, bunu sağlamak için nasıl curl söylemek gerekir. Eğer değilse, bu süreç denial-of-service saldırıları veya diğer güvenlik sorunları kolaylaştırabilir İnternetteki herkes tarafından harekete izin vererek olduğunuzu unutmayın.

Ya da ... sadece CLI üzerinde çalışan ve php dosyasına doğrudan cron görevi atamak için tasarlanmış bir PHP komut dosyası yazabilirsiniz:

php -f /path/to/my/file.php

İşte some information CLI PHP kullanarak. ways to do this CodeIgniter ile vardır.

Bu istek bir yere gidiyor ise kesin öğrenmek için bir yolu var, dedi. (Istek çıkışını tasarruf yanında) CodeIgniter mükemmel günlüğe kaydetme yöntemleri ile donatılmıştır. Sen 3 gibi bir şey için application/config/config.php sizin $config['log_threshold'] ayarlayabilirsiniz. Sonra bir kez CLI bir tarayıcıda hem isteği çalıştırın ve. Sonra Geçerli gün için günlük dosyası için application/logs klasörüne bakın. Dosya içinde Talep ettiğiniz URL bulabilirsiniz. Bu günlüğe kaydedilir iki yer var olmalıdır. Eğer günlük dosyasında yapılan isteklerin sayısından daha az varsa, o zaman bir şey CURL yanlış olduğunu biliyorum. Aksi takdirde, bir şey uygulaması ile yanlış olduğunu biliyorum.

Sadece bir cronactivator.php dosyası yapmak ve bu dosyaya cronjob etmektedir. Hiçbir CURL gerekli.

<?php 
//for php4 use fopen
$html_data = file_get_contents('http://www.yoursite.com/framework/controller/action', 'r');
echo "DONE!";
exit;

?>

@ Seth - yani gerçekten bu test edemez bir linux kutusunda değilim, ama sorunudur ya curl itself is not installed veya curl needs certain specific switches to work.

Eğer hala çalışmak istiyorsanız, ilk önce sunucunun SSH aracılığıyla işe almak (Windows Macun kullanın) veya alternatif olarak bunu test etmek için bir komut dosyası yazabilirsiniz;

<?php
    $code=system('curl --help');
    echo '<br><br> Exit Code: '.$code;
?>

Bu 0'dan başka bir hata kodu yazıyor eğer, CURL ile sorunları değil.


Diğer yandan, wget yerine kullanabilirsiniz. Daha CURL fazla Linux (afaik) desteklenir. Ben CURL büyük bir hayranı değilim ama, sadece bu yüzden wget bu tür işler için daha popüler olur.