毎日のログを生成する Kohana フレームワーク (3.0.9) を使用しています。CRONがスクリプトを実行する前日にログファイルが作成された場合はメールしたいのですが、何日も試してみた後、PHP CLI modusでsafe_modeを延期する方法がわかりません。
Web 上でスクリプトを実行している場合、問題はありません。しかし、スクリプトを Plesk 9.5.2 サーバー (または root ユーザーとしてコマンドライン) で CRON タスクとして実行したいのですが、次のエラーが表示されます。
ErrorException [ 2 ]: dir(): SAFE MODE 制限が有効です。uid が 10001 のスクリプトは、uid 48 ~ APPPATH/classes/controller/ajax.php が所有する /var/www/vhosts/mydomain.com/subdomains/mysubdomain/httpdocs/application/logs/2011/01 へのアクセスを許可されていません [ 181 ]
Plesk コントロール パネルで SAFE MODE をオフにしました。これは Web リクエストに対しては正常に機能しますが、コマンド ラインまたは CRON タスクとしては機能しません。
次のコードを使用して、機能するかどうかをテストしています。
$d = dir(APPPATH.'logs/2011/01/');
echo "Handle: " . $d->handle . "\n";
echo "Path: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
echo $entry."\n";
}
$d->close();
ディレクトリ APPPATH.'logs/' とディレクトリ APPPATH.'logs/2011' を読み取ることができますが、毎日のログ ファイルで毎月を表すディレクトリは常にエラーになります。