1

5分ごとに実行するCronジョブをセットアップしています。Cronジョブは次のとおりです。

php /var/www/vhosts/default/htdocs/Mail-test/index.php

私の index.php スクリプトの最後は次のとおりです。

$path = $base_path . trim($row['company']) . '/Users/' . trim($row['name']) . '/Upload/';
$zip_processing_file = $path . 'zip.php';

require_once "zip_processing_file";

ただし、Cron ジョブを実行すると、次のディレクトリが= $zip_processing_file存在しないというエラーが表示されます。/var/www/vhosts/default/htdocs/Mail-test/

私はこの問題を理解できないようです。インクルードを試みましたが、同じ問題が発生します。これを機能させる唯一の方法は、

header("location: $zip_processing_file");

次にWebブラウザからヒットするとMail-test/index.php、プロセス全体が循環しますが、Webブラウザでは実行できません。Cronジョブが機能する必要があります。ありがとう!

4

4 に答える 4

1

/ var / www / vhosts / default / htdocs / Mail-test /に言及しているエラーメッセージは、に保存されているパス(とを含む)に関係していないよう で$zip_processing_fileあるため、別の問題である可能性があります。UsersUpload

ただし、この問題は、コードが変数require_onceを補間していないことが原因である可能性があります。$zip_processing_file

変化する:

require_once "zip_processing_file";

に:

require_once $zip_processing_file;
于 2011-04-29T17:55:32.203 に答える
0

だから、あなたのコードに従って、これから:

$path = $base_path . trim($row['company']) . '/Users/' . trim($row['name']) . '/Upload/';
$zip_processing_file = $path . 'zip.php';

次のようなものが得られるはずです(の内容に応じて$base_path

/var/www/vhosts/default/htdocs/company/Users/name/Upload/zip.php

代わりに、エラーが印刷されています:

/var/www/vhosts/default/htdocs/Mail-test/

あなたのコードによれば、これは意味がありません。

$zip_processing_file の内容に、ロードする必要がある PHP ファイルへの完全なサーバー パスが含まれていることを確認する必要があります。

関数が機能した理由はheader()、web-root 相対パスを使用できるためです。require()PHP で またはその他のファイルベースの操作を使用する場合、ドキュメント相対パスまたはサーバー ルート パスを受け取る必要があります。

于 2011-04-29T17:52:53.263 に答える
0

欲しいらしい

require_once "/Mail-test/" . $zip_processing_file;
于 2011-04-29T18:19:09.257 に答える
0

ほとんどの場合、php の物理アドレスを指定する必要があります。

のように: '/var/www/..../zip_processing_file.php';

于 2011-04-29T17:49:27.637 に答える