2009-09-01 3 views
0

나는 PHP 스크립트를 가지고 있으며 매일 실행해야합니다. 이 스크립트는 soapclient를 가지고 있으며 브라우저로 직접 스크립트를 실행하면 잘 작동합니다. 그러나 크론 작업으로 설정하면 치명적인 오류가 발생할 수 있습니다.soapclient가 PHP에 포함 된 cron 작업 문제

스크립트는 "crontest.php"

<?php 

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

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

exit; 
?> 

내가 설정 한 cronjob를 매우 간단이주는 오류가

치명적인 오류입니다

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

입니다 : 클래스 'SoapClient'이 (가) /home/duan/public_html/scripts/crontest.php에 없습니다.

I 라인

$soap = new SoapClient($mage_url); 

누구든지 도움이 될 수 있습니다 제거하면 그것은 잘 작동?

+1

어쩌면이 스크립트를 브라우저에서 실행하면 스크립트를 처리하는 php-cgi이고 여기에서 PHP-cli이므로 문제가 발생하지 않는지 확인하십시오. – p4bl0

답변

0

대신 직접 PHP를 호출하여 스크립트를 실행하는 HTTP 요청을 통해 페이지를로드하기 위해 서버를 얻을 수 살쾡이를 사용해보십시오 :

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

이 스크립트가 동일한에서 실행되도록한다 웹 브라우저를 통해 직접 볼 때와 마찬가지입니다. 먼저 명령 행에서 그것을 테스트 한 다음 cron 작업을 위해 당신은 적절한는/dev/null로 출력 또는 로그를 전환 할 수 있습니다 당신은 아마 파일 nusoap을 포함 할 필요가

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

0

. PHP 또는 PHP 라이브러리를로드하십시오. 버전 5.0.1 이후에만 포함되어 있지만 서버에서 사용할 수 없습니다 (특히 클래스 이름이 같은 nusoap을 사용하는 경우).

당신은 웹 사이트 코드를 검색하고 nusoap.php의의 포함 또는 DL ('SoapClient') (DL는 PHP 라이브러리를로드)과 같은 명령을 찾아야한다.

nusoap이 아닌 경우 php -m 명령을 시도하고 SoapClient가 있는지 확인할 수 있습니다. 시도하지 않으면 php -v.