1

昨年の 10 月以降、問題なく動作していた php スクリプトがあります。最後に覚えているのは 2 か月前で、今日は実行中に _SERVER['DOCUMENT_ROOT'] 変数に問題があります。

_SERVER 配列を見ると、設定されていません。一方、スクリプトで実行すると:

phpinfo();

次に、変数がそこにあり、設定されます。しかし、それを呼び出す:

$_SERVER['DOCUMENT_ROOT']

null を返します

これの理由は何ですか?スクリプトで再び使用するにはどうすればよいですか? 原因は php または apache の更新だと思いますが、どちらも過去 2 か月で数回更新されています。

また、php.ini ファイルに DOCUMENT_ROOT がありません。doc_root が表示されますが、これは異なります。

私のphp:PHPバージョン5.3.5-1ubuntu7.7 apache:PHPバージョン5.3.5-1ubuntu7.7

4

3 に答える 3

1

DOCUMENT_ROOT通常、CGI 経由でスクリプトを呼び出す前に (apache) Web サーバーによって設定される環境変数です。Web サーバーにバグがあるか、設定が間違っている場合、この環境変数が設定されていない可能性があります。

mod-rewrite、mod-cgi、mod-setenv などを使用して、デバッグおよび/またはホットフィックスを試みることができます。それでも問題が解決しない場合は、サーバー管理者に連絡して問題について話し合ってください。多くの理由が考えられます。

于 2012-04-24T20:08:51.630 に答える
1

を試しprint_r($_SERVER)て、本当に設定されているかどうかを確認してください

于 2012-04-24T11:51:12.803 に答える
0

Apache 構成の問題である可能性がある場合: Apache 構成ファイルでドキュメント ルートを定義しましたか?

それ以外の場合は、次を使用してバイパスできます。

dirname(__FILE__)

また :

substr($_SERVER['SCRIPT_FILENAME'], 0, -strlen($_SERVER['SCRIPT_NAME']));
于 2012-04-24T15:58:49.187 に答える