1

私は約1年前にMagentoの製品インポートスクリプトを作成し、それ以来正常に実行されており、製品カタログ、在庫数、製造中止製品リスト、および各製品に関連付けられた画像ファイルを含むいくつかのXMLファイルをダウンロードしています。

突然、今週、スクリプトは完全に実行されなくなりました。突然終了したように見えますが、画面にも、スクリプトを含むディレクトリのサーバーのerror.logファイルにもエラーメッセージは表示されません。

スクリプトの先頭に次のようなものがあるので、実際にエラーが発生している場合はエラーが表示されるはずです。

error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('display_errors', 'On');

私が見た唯一のことは関連しているかもしれませんが、ブラウザからスクリプトを実行するとまったく表示されないため、確信が持てません-スクリプトがcrontab(php .. ./public_html/import/ss365products.php> / dev / null 2>&1)は、error.logファイルで次のようになります。

[26-Sep-2012 12:00:01] PHP Warning:  require_once(/app/Mage.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in .../public_html/import/TempProducts.php on line 5

Mage.phpがどこにも行かなかったのに、なぜそれが得られたのかよくわかりません。

だから...私はこの問題をデバッグするために今どこを見ればいいのか本当にわかりません。どんなアドバイスも大歓迎です!

4

4 に答える 4

1

cronの場合は、Mage.phpへの完全なフォルダーパスを指定するだけで、スクリプトは正常に実行されます。apacheで実行する場合、/appはwebrootフォルダーに相対的ですが、cronとして実行している間は、ファイルシステムに相対的なフォルダーを見つけようとします。

于 2012-09-26T20:02:19.793 に答える
0
[26-Sep-2012 12:00:01] PHP Warning:  require_once(/app/Mage.php)

それは相対的なパスのようには見えません。たぶんそれはルートディレクトリでMage.phpを探していますか?

これを試してください:require_once "/full/path/to/app/Mage.php"

于 2012-09-26T19:21:14.643 に答える
0

使用するrequire_once(__DIR__ . '/app/Mage.php');

于 2012-09-26T19:21:43.723 に答える
0

コマンドラインには$_SERVER['DOCUMENT_ROOT']がないため、間違ったパスでMage.phpを検索します。一部のphp.ini設定が適用されていない可能性があるため、スクリプトが中止される可能性があります(つまり、時間制限が設定されています)。

たぶんあなたは以下を使ってウェブページとしてcronジョブにアクセスするべきです:

wget http://yourdomain/cron.php

于 2012-10-05T09:17:16.370 に答える