ブラウザでスクリプトを実行すると、通常の php インクルードで非常に奇妙な問題が発生します。シェルでは、すべて正常に動作します。そのため、パーミッションの問題かphp構成の問題であると想定しましたが、そうではないことが判明しました。本当に奇妙なことは、スクリプトが約 1 時間前に正常に実行されたことです。
<?php
// sub/cron.php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include '../config.php';
include '../facebook.php';
include '../ez_sql_core.php';
include '../ez_sql_mysql.php';
die();
含めるファイルは httpdocs にあります。cron.php は httpdocs/sub にあります。
- php.ini の open_basedir は間違いなく正しく設定されています
(/srv/www/vhosts/xxxxx/httpdocs:/tmp)
die();
他のphpの問題を排除するために、挿入した以下の他のすべてのphpコードを削除しました- ファイルのアクセス許可はすべて正しく設定されています
- 絶対パスも試しました
- 他のスレッドをたくさん読みました!
エラーは次のとおりです。
Warning: include(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/vhosts/xxxxx/httpdocs:/tmp) in /srv/www/vhosts/xxxxx/httpdocs/iblink/mobile/cron.php on line 9
Warning: include(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/vhosts/j04/api.appworkx.de/httpdocs:/tmp) in /srv/www/vhosts/j04/api.appworkx.de/httpdocs/iblink/mobile/cron.php on line 10
Warning: include(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/vhosts/j04/api.appworkx.de/httpdocs:/tmp) in /srv/www/vhosts/xxxxx/httpdocs/iblink/mobile/cron.php on line 11
Warning: include(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/vhosts/xxxxx/httpdocs:/tmp) in /srv/www/vhosts/j04/api.appworkx.de/httpdocs/iblink/mobile/cron.php on line 12
File()
また、それが空であることも奇妙です。サーバー管理者は困惑しています。
何が理由なのか、さらに考えている人はいますか?
よろしくお願いします!