cron スクリプトで行き詰まっており、あなたの助けが必要です。
私のサイトは 1and1 サーバーでホストされています。クラス関数構造を使用してphpでcronスクリプトを作成しました。
実際には 2 つのスクリプトがあります。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;
ジョブ.php:
require('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/bin/php /a/b/htdocs/scripts/job.php
シェル コマンドと構成が実行されるかどうかを確認するために、テスト スクリプトも追加しました。テスト スクリプトは正しく実行されました。**
機能を 1 つずつ分析した結果、以下のコードが実行されていないことがわかりました。変数は正しく初期化されていますが、「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();
}
必要なものを提案してください。