3

crontab で php ファイルを実行しようとしています。これが cronjob です。

10 * * * * /usr/bin/php  /var/www/update/ranks.php >> /var/www/update/log/ranks.txt

しかし、必要なファイルが存在しないというエラーが表示され続けます

PHP Warning:  require_once(../mws_products.php): failed to open stream: No such file or directory in /var/www/update/ranks.php on line 2
PHP Fatal error:  require_once(): Failed opening required '../mws_products.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/update/ranks.php on line 2

ブラウザからファイルを実行したり、ファイルのディレクトリに移動してファイルを実行したりすると、この問題は発生しません。cd /var/www/update/

ランク.php

<?php 
require_once('../mws_products.php');

echo "-------------------------------------------------------------\n";
echo date('d-M-Y H:i:s',time())."\n";
echo "Update Ranks\n";
$products->updateRanks();
$database->addUpdate("ranks", time());
echo "\n\n\n";
?>

フォルダ構造

[folder] update
   |____ [file] ranks.php

[file]   mws_products.php

この問題の原因は何ですか? (:Apacheとサーバーを再起動しようとしました)

4

2 に答える 2

5

ルート ディレクトリから crontab で実行しているため、../mws_pruducts.php は、指定されたルートに対して存在しません。

複数の解決策がありますが、これはその 1 つです。

define( 'ROOT', dirname(__FILE__) );  
require_once(ROOT . '/../mws_products.php');
于 2012-09-08T16:52:09.430 に答える
1

ファイルの絶対パスを試してみてください...

require_once('/var/www/mws_products.php');
于 2012-09-08T16:51:49.127 に答える