[解決済み] PHP Fatal Error 必要なファイルを開くことができません。
質問
Apacheで以下のエラーが発生します。
[Sat Mar 19 23:10:50 2011] [warn] mod_fcgid: stderr: PHP Fatal error: require_once() [function.require]: /home/viapics1/public_html/common/configs/config.inc.php の行158にある 必須 '/common/configs/config_templates.inc.php' (include_path='.:/usr/share/pear:/usr/share/php') でオープン失敗しました。
私はApacheの専門家ではありませんが、config.inc.php & config_templates.inc.phpは存在します。また、common/configs/に置いたtest.htmlのページに移動してみたので、権利の問題は起こっていないと思います。また、config_templates.inc.phpの権限を設定し、全員に読み取り、書き込み、実行権限を与えています。この時点でどうしたらいいのかわかりません。/usr/share/phpディレクトリがあるかどうか確認したところ、ありませんでしたが、yum install phpをしたところ、最新のものが入っているとのことでした。アイデアはありますか?
解決方法は?
実は、Apacheに関連した質問ではありません。また、PHPに関連するものでもありません。 このエラーを理解するためには、以下のパスを区別する必要があります。 仮想サーバー のパスと ファイルシステム .
require
演算子はファイルに対して機能します。しかし、このようなパスは
/common/configs/config_templates.inc.php
は仮想 HTTP サーバー上にのみ存在し、ファイルシステム上にはそのようなパスは存在しません。正しいファイルシステムのパスは
/home/viapics1/public_html/common/configs/config_templates.inc.php
ここで
/home/viapics1/public_html
という部分があります。 ドキュメントルート で、仮想世界と現実世界をつなぐものです。幸運なことに、ウェブサーバーは通常ドキュメントルートを設定変数に格納しており、PHPと共有しています。ですから、コードを次のようなものに変更すればよいのです。
require_once $_SERVER['DOCUMENT_ROOT'].'/common/configs/config_templates.inc.php';
は、どのディレクトリに置かれたどのファイルからでも動作します!
更新:結局、解説記事を書きました。 相対パスと絶対パスの違い ファイルシステムとウェブサーバーにおいて、この問題を詳細に説明し、いくつかの実用的な解決策を含んでいます。例えば、コマンドラインからスクリプトを実行した場合、このような便利な変数は存在しない。この場合、シングル・エントリー・ポイントと呼ばれるテクニックが役に立つ。詳しくは、上記の記事を参照してください。
関連
-
[解決済み】予期せぬ例外。SQLSTATE[HY000] [1045] Access denied for user ****@'localhost' (using password: YES)
-
[解決済み】 PHP 未定義関数の呼び出し
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】Xampp ローカルホスト/ダッシュボード
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み】phpのシンタックスエラー、予期しないT_IFエラーを修正する方法は?[クローズド]。
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?