「必要なファイルを開けません。PHP で致命的なエラーが発生しました。」
P粉345302753
2023-08-20 17:22:12
<p>Apache から次のエラーが表示されます: </p>
<p><strong>[Sat Mar 19 23:10:50 2011] [warn] mod_fcgid: stderr: PHP 致命的エラー: require_once() [function.require]: '/common/configs/config_templates.inc を開きます。 php' が /home/viapics1/public_html/common/configs/config.inc.php の 158 行目で失敗しました (include_path='.:/usr/share/pear:/usr/share/php') </strong> < ;/p>
<p>私は Apache の専門家ではありませんが、config.inc.php ファイルと config_templates.inc.php ファイルは両方とも存在します。また、common/configs/ ディレクトリの下に配置した test.html ページへの移動も試してみたので、アクセス許可の問題はないと思います。また、config_templates.inc.php ファイルにアクセス許可を設定して、全員に読み取り、書き込み、および実行のアクセス許可を与えます。どうすればよいか分からず、/usr/share/php ディレクトリがあるかどうかを確認したところ、ディレクトリは存在しませんでしたが、yum を使用して php をインストールすると、すでに最新バージョンであると表示されました。助言がありますか? </p>
SELinux を実行している場合は、/home ディレクトリを読み取るための httpd 権限を付与する必要がある場合があります。次のコマンドを使用します。
リーリーこれは実際には Apache 関連の質問ではなく、PHP 関連の質問でもありません。このエラーを理解するには、仮想サーバー 上のパスと ファイルシステム 内のパスを区別する必要があります。
リーリーrequire
演算子はファイルに使用されます。しかし、このような道仮想 HTTP サーバー上にのみ存在し、ファイル システムにはそのようなパスはありません。正しいファイル システム パスは
である必要があります。 リーリー ###で### リーリーセクションは
ドキュメント ルートと呼ばれ、仮想世界と現実世界を接続します。幸いなことに、Web サーバーは通常、PHP と共有される構成変数にドキュメント ルートを持っています。コードを次のように変更すると リーリー
どのディレクトリのどのファイルでも機能します。更新: 最後に、ファイル システムと Web サーバーの相対パスと絶対パスの違い
を説明する記事を書きました。この記事では、問題を詳細に説明し、いくつかの実用的な解決策を含みます。たとえば、コマンドラインからスクリプトを実行する場合、そのような便利な変数は存在しません。この場合は「シングルエントリー」と呼ばれる手法を使うことで解決できます。詳細については、上記の記事も参照してください。