- ベストアンサー
/usr/local/lib/phpの意味とは?
- include_pathを設定して、どのディレクトリからも簡単にphpをインクルードできるようにする方法について教えてください。
- include_pathの書き方、パスの書き方について詳しく知りたいです。
- PHPでよく見かける / から始まるURLについても説明してください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
たくさん説明どころがあって悩ましいですね。(笑 まず、ご自分でもなんとなく気づいている感じですが、 URLとパスは別のものだと考えてしまった方がよいと思います。 URLはインターネット上の場所を示します。 パスというときは一般に、そのマシン内にあるファイルやディレクトリの場所を示します。 次に絶対と相対の違いについて。 絶対URLや絶対パスは、省略なしで場所を示すことをいいます。 相対URLや相対パスは、現在の自分の場所から相対的に場所を示すことをいいます。 URLならば、http://で始まっていると、省略なしの絶対URLになります。 パスの場合、/から始まっていると、省略なしの絶対パスになります。 相対についてはパスの場合だけ説明してみましょう。 まず、動かしたいPHPのスクリプトが/home/sample/test.phpにあるとしましょう。 このとき、/home/sample/hoge/以下にあるphpファイルをインクルードするためには、 以下のように記述すればよいはずです。 php_value include_path "hoge" これがスクリプトの位置から見た相対パス指定です。 相対パスの書き方にはいくつか特殊なものがあって、 自分がいるディレクトリを示すときには「.」もしくは「./」、 自分がいるディレクトリの親ディレクトリを示すときには「..」もしくは「../」 と書くことになっています。 上記のスクリプトの例でいうと、「..」は/homeディレクトリを指すことになります。 あと、Linux系の設定では、複数のパスを同時に指定する場合に、 「:」で区切る場合が多いので、include_pathでも同様なのだと思います。
その他の回答 (1)
- momenlara
- ベストアンサー率60% (6/10)
>php_value include_path ".:/hoge" >と書いていたのを、 >php_value include_path "hoge" >と書くことによって解決しました。 とのことなので、「.:」を抜くことでうまくいったのではなくて、 「/hoge」の「/」を抜くことでうまくいったのではないかと思います。 ためしに以下の記述でもやってみてください。 php_value include_path ".:hoge" この指定だと、「.」と「hoge」のどちらかでインクルードファイルが見つかれば、 正しく動くはずです。 これで問題なく動いたら、以下も試してみてください。 php_value include_path ".:/usr/local/lib/php:/html/_incs_:hoge" よくある設定に、今回、自分が設定したいディレクトリを追加しています。
お礼
あ、なるほど……。いろいろとごちゃごちゃとしていまい勘違いしてしまいました。良く分かりました! すごく分かりやすい解説をありがとうございます。 一週間ほどこれについて悩んでいたので、声を出して喜びました! 今回はどうもありがとうございました。
お礼
ありがとうございます。問題解決です。 php_value include_path ".:/hoge" と書いていたのを、 php_value include_path "hoge" と書くことによって解決しました。 パスに関するいろいろも完全に理解することができました。本当にありがとうございます。 最後にひとつ疑問が残ったんですが、インクルードパスの書き方について、momenlaraさんに教えてもらった通りに書いたらうまく行ったのですが、他のサイトで調べたりすると次のように書けと書いていることがほとんどです。 php_value include_path ".:/usr/local/lib/php:/html/_incs_" これはこのサイトに書いてありました。 http://www.shigeweb.jp/php/project_p/?section=setup&page=htaccess しかし、.:を抜くことでうまくインクルードすることができました。 これはどういうことなのでしょうか……。