나는 cron 스크립트에 갇혀있어 도움이 필요합니다.cron 스크립트를 사용하여 클래스 함수를 실행하는 방법
내 사이트는 1and1 서버에서 호스팅됩니다. 클래스 함수 구조를 사용하여 PHP에서 cron 스크립트를 작성했습니다.
실제로 두 개의 스크립트가 있습니다. 그것들은 다음과 같습니다 : 1) init.php 2) job.php
나는 init.php에서 필자는 필요한 클래스와 함수를 작성했다. job.php 스크립트에서 위와 아래에 init.php를 포함 시켰습니다. 다른 기능 (데이터베이스 쿼리와 이메일 보내기)을 작성했습니다.
브라우저 (http://www.abc.com/job.php)를 사용하여 스크립트를 직접 실행하면 스크립트가 올바르게 실행됩니다. 나는 이메일을 받고있다. 그러나이 스크립트를 쉘을 사용하여 cron 작업으로 설정 한 후 응답이 없습니다. cron의 오류 로그를 확인하는 방법을 알지 못합니다.
은 PHP 파일샘플 구조는 아래에 주어진다 :
init.php :
define('DB_SERVER','***********');
define('DB_USERNAME','*******');
define('DB_PASSWARD','******');
define('DB_DATABASE','*******');
class information{
public function __construct(){
$connection = mysql_connect(DB_SERVER,DB_USERNAME,DB_PASSWARD) or die ('connection error'.mysql_error());
mysql_select_db(DB_DATABASE,$connection) or die('database error'.mysql_error());
}
public function configuration(){
$sql = "SELECT * FROM config order by id";
$exe = mysql_query($sql);
$site_config = array();
while($res = mysql_fetch_array($exe)){
$site_config[$res['name']]=$res['value'];
}
return $site_config;
}
}
$obj = new information;
job.php :
는 ('init.php')를 요구;
class Achdirect_cmi
{
private $ID;
private $AID;
private $Key;
public $site_config;
public function __construct()
{
global $obj;
$this->site_config = $obj->configuration();
$this->ID = $this->site_config['id'];
$this->AID = $this->site_config['A_id'];
$this->Key = $this->site_config['key'];
}
.
.
.
.
}
이 스크립트를 실행하면 도움이됩니다.
** cron 작업은 SSH 액세스를 사용하여 설정됩니다.
아래의 명령은 cron 스크립트를 설정하는 데 사용되었습니다.
-
-
-
-
- 는/usr/빈/php에 /a/b/htdocs/scripts/job.php
-
-
-
셸 명령과 구성이 실행되는지 여부를 확인하기 위해 테스트 스크립트도 추가했습니다. 테스트 스크립트가 제대로 실행되었습니다. **
기능을 하나씩 분석 한 후 아래 코드가 실행되지 않는 것으로 나타났습니다. 변수가 제대로 초기화되었지만 "SoapClient"개체가 생성되지 않았습니다. SoapClient 클래스는 나를 정의하지는 않지만 php5의 핵심 기능임을 유의하십시오.
try{
$client = new SoapClient($url, array("location" => $location));
$params = array("ticket" => $auth_array, "MerchantID" => $MerchantID, "TransactionID" => $trace_number);
$response = $client->getTransaction($params);
}
catch (Exception $e){
echo $e->getMessage();
}
제발 내가 필요하다고 제안 해주세요.
은 crontab 파일에 example.org' @'MAILTO = 나를 추가;의 경우이 이메일을 보내드립니다 cron 작업이 뭔가를 출력합니다 –
cronjob은 어떻게 설정합니까? SSH에 액세스 할 수 있습니까? 아니면 웹 기반 콘솔입니까? –
방금 sa 위의 엠프 코드 구조, 내 원본 스크립트에서 메일이 포함되어 있습니다. 브라우저를 사용하여 스크립트를 실행하면 이메일이 전송됩니다. 하지만이 스크립트를 cron 스크립트로 설정 한 후에는 전자 메일을받지 못합니다. 나는이 점을 위에 언급했다. cron 작업은 쉘 액세스 및 명령을 사용하여 설정됩니다. 또한 cron이 작동하는지 또는 동일한 쉘 구성을 사용하지 않는지 테스트 스크립트를 사용하여 테스트했습니다. – Debashis