SoapClient ile Cron sorun php dahil

2 Cevap php

Ben bir php script var, ve her gün çalıştırmanız gerekir. Bu script bir SoapClient vardır, ve ben doğrudan tarayıcı kullanarak bir komut dosyası olarak çalıştırabilirsiniz eğer iyi çalışır. Ancak, bazı ölümcül hatalar Ben bir cron işi olarak ayarlarsanız.

Script "crontest.php" gibi çok basit bir

<?php 

$mage_url = 'http://******.com/api/?wsdl'; 
$mage_user = '*****'; 
$mage_api_key = '******';

$soap = new SoapClient( $mage_url ); 
echo "success";

exit;
?>

Ve ben set cronjob olduğunu

0 8 * * * /usr/bin/php /home/duan/public_html/scripts/crontest.php

O verir hatadır

Fatal error: Sınıf 'SoapClient' bulunamadı /home/duan/public_html/scripts/crontest.php

Ben satırı kaldırın eğer iyi çalışır

$soap = new SoapClient( $mage_url );

Herkes yardımcı olabilir?

2 Cevap

Bunun yerine, doğrudan php arayarak komut çalışan, bir http istek aracılığıyla sayfasını yüklemek için sunucu almak için vaşak kullanmayı deneyin:

/usr/bin/lynx -source http://example.com/cron.php

Bu script, web tarayıcısı üzerinden kendiniz görmek olduğu gibi aynı şekilde çalışmasına neden olmalıdır. İlk komut satırında bunu test ve sonra cron işi için sadece / dev / null ya uygun olarak bir günlüğüne çıktı yönlendirebilirsiniz:

/usr/bin/lynx -source http://example.com/cron.php> / Dev / null 2> & 1

Muhtemelen dosya nusoap.php eklemek veya php kitaplığı yüklemeniz gerekir. Sadece 5.0.1 sürümüne sonra dahil, ancak sunucu (aynı sınıf adı var, size NuSOAP kullanmak özellikle) kullanmak olabilir.

Siz web sitesi kodu arama ve nusoap.php eklenmesi veya dl('SoapClient') (dl bir php kütüphane yükler) gibi bir komut için bakmak gerekir.

Onun NuSOAP Değilse, php -m komutunu deneyebilirsiniz ve SoapClient olup olmadığını görmek. Değilse try php -v.