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