/usr/local/lib/phpの意味とは?

このQ&Aのポイント
  • include_pathを設定して、どのディレクトリからも簡単にphpをインクルードできるようにする方法について教えてください。
  • include_pathの書き方、パスの書き方について詳しく知りたいです。
  • PHPでよく見かける / から始まるURLについても説明してください。
回答を見る
  • ベストアンサー

/usr/local/lib/phpとはどういう意味ですか?

include_pathを設定して、どのディレクトリからも用意にphpをインクルードできるようにしたいのですが、.htaccessへの書き方やパスの書き方があまりにもわからないので質問させていただきました。 PHPの勉強を始めたのは最近で、私の知っているパスはこれだけ。 1 http://~から始まる絶対URI?パス? 2 ./ とか ../ などの相対パス。 の2つだけ。 include_pathについて、検索エンジンで調べるとほとんどのサイトで次のように書いてありまして、私にはよく分かりません。 php_value include_path ".:/usr/local/lib/php" まず、include_pathの書き方はこのようで良いというのはわかりましたが、/ から始まっているので、httpなくていいの?..なのか.なのかどっちなのかもわからない、初めて目にしたもので……。 PHPの勉強をしていると、よく/から始まるURLをみるのですが、これについて説明しているところが見当たらず、当り前の知識のような感じなのでしょうか? これらについて、教えてください。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • momenlara
  • ベストアンサー率60% (6/10)
回答No.1

たくさん説明どころがあって悩ましいですね。(笑 まず、ご自分でもなんとなく気づいている感じですが、 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でも同様なのだと思います。

aiueo667
質問者

お礼

ありがとうございます。問題解決です。 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 しかし、.:を抜くことでうまくインクルードすることができました。 これはどういうことなのでしょうか……。

その他の回答 (1)

  • momenlara
  • ベストアンサー率60% (6/10)
回答No.2

>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" よくある設定に、今回、自分が設定したいディレクトリを追加しています。

aiueo667
質問者

お礼

あ、なるほど……。いろいろとごちゃごちゃとしていまい勘違いしてしまいました。良く分かりました! すごく分かりやすい解説をありがとうございます。 一週間ほどこれについて悩んでいたので、声を出して喜びました! 今回はどうもありがとうございました。

関連するQ&A

  • /usr/local

    mv でファイルを移動していた所、/usr/local/www/dataの下に、どうやら/usr/local/以下にshareというディレクトリができており、その中に/usr/local内のディレクトリやファイルが移動していました。 とりあえず、すべて/usr/localに戻して解るやつだけ移動したのですが、以下の分がどうしてもわかりません。 /usr/local --------------------------- analog apache2 autoconf bin cvsup ddclient dict doc emacs empty etc examples ezm3 gettext include info java lib libdata libexec libtool13 libtool15 locale man misc nls openssl private sbin sgml share skel swat www xml zsh --------------------------- どのディレクトリが本来どこに無いといけないのかわかりません。 わかる方いましたら、よろしくお願いします。

  • php_value include_pathを無効

    php_value include_pathを、あるディレクトリ以下では、無効にしたいのですが、 どうすればよいでしょうか? ■前提 ・サイト全体は、「.htaccess」に「php_value include_path」を書いて制御 ■やりたいこと ・ある特定ディレクトリ「hoge」以下では、「php_value include_path」ではなく、 PHPに直接書いた「require_once './★★/●●';」を利用したい ・つまり、設定ファイル「.htaccess」に記述した中のある一部分(特定ディレクトリ以下)だけは、「PHPソースに記述」したincludeパスを使いたい ■試してみてダメだってこと ・「hoge」に「.htaccess」を設置し、空の「php_value include_path=""」と書いてみたけど、うまくいきませんでした

    • ベストアンサー
    • PHP
  • PEARについて

    いつも拝見させていただいております。 <環境> Red Hat Enterprise Linux ES v.4 PHP 4.4.2(cli) この度、PHPをソースからインストールしました。 PEARを使いたいと思っておりますが、何からすればいいのか分からずに困っています 。 include_path は、「.:/usr/local/lib/php」となっており インストールディレクトリで # pear をすると Warning: main(Console/Getopt.php): Failed to open syream: No such file or directory in System.php on line 27 Fatal error: main(): Failed opening required 'Console/Getopt.php' (include_path='/usr/local/lib/php') in /usr/local/lib/php/System.php on line 27 とエラーになってしまいます。 ご教授お願いいたします。

    • 締切済み
    • PHP
  • #!/usr/local/bin/php

    XAMPPで自宅サーバー勉強中です、 レンタルサーバーの時はPHPファイルの1行目に #!/usr/local/bin/php と記入し拡張子をabc.cgiとしていました、 自宅サーバーの場合の1行目と拡張子はどのように 書くのですか、よろしくお願いします。

    • ベストアンサー
    • PHP
  • パスがうまく通らないので、パスについて教えてください。

    パスがうまく通らないので、パスについて教えてください。 ▽やりたいこと http://okwave.jp/qa/q6132108.html ▽知りたいこと  →パスを通すとは、具体的に、どこのことを指すのでしょうか? 1)php infoのinclude_path(ブラウザで確認) Configuration PHP Core include_path .:/usr/local/lib/php 2)php infoのPATH(ブラウザで確認) Environment Variable Value PATH /command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin 3)echo $PATH(SSHで確認) 出力すると、1)とも2)とも異なる結果となります…。 パスを通すとは、具体的に、どこのことを指すのでしょうか? また、上記それぞれの意味、及び内容が違う理由を、教えてください。

    • ベストアンサー
    • PHP
  • Smartyの設定について

    FedoraCore 4 MySQL 4.1.14 PHP 5.0.4    を使ってます。 Smartyを入れようと思い、Web上でいろいろ調べてやっているのですが、うまく動きません。 解凍したSmartyをフォルダごと /usr/local/lib/php/Smarty に移動し、 /etc/php.ini の中のinuclude_pathを include_path = ".:/usr/local/lib/php:/usr/local/lib/php/Smarty" としました。 そして、Demoフォルダを /var/www/html/demo/に移動してブラウザ上でdemoを見ているのですが、下記のエラーがでてしまいます。 Warning: main(/usr/local/lib/php/Smarty/Smarty.class.php) [function.main]: failed to open stream: No such file or directory in /var/www/html/demo/index.php on line 3 Fatal error: main() [function.require]: Failed opening required '/usr/local/lib/php/Smarty/Smarty.class.php' (include_path='.:/usr/local/lib/php/Smarty') in /var/www/html/demo/index.php on line 3 エラーの内容を見てみると Smarty.class.phpを呼び出すには /usr/local/lib/php/Smarty/lib/Smarty.class.phpとなっていないとおかしいと思うのですが、このあたりどう設定してよいのかわかりません。 Smartyの基本的な設定を何卒ご教授ください。

    • ベストアンサー
    • PHP
  • PHP maple導入時の設定

    1週間前までjavaしか触ったことのなかった私ですが、PHPの案件が回ってきて急遽PHP + Smarty + Maple環境下でシステム構築をすることになりました。実行環境としてjavaのときから使用していたEclipseでPHPとSamrtyを使いビジネスロジックとデザイン部を分けて簡単なアプリを作成することには成功しました。 そして、いざMaple!と意気込んでMaple wikiを見ながら設定をしていたのですが、ひとつ気になることがあったので質問させていただきます。 <設定項目 PHPのインクルードパス変更> インクルードパスについてはPHPインストール時から何度も触っていたので、php.iniをいじるのは容易に理解できたのですが、以下のように書いてありました。 ~Mapleの格納ディレクトリとSmartyをインクルードパスに加えます。~ php_value include_path /usr/local/apache2/phplib:/usr/local/apache2/phplib/smarty 一番最初の「php_value」という部分なのですが、デフォルトではそんな記述はありません。最初から存在するinclude_pathの前に「php_value」を追加すればいいのか、それともinclude_path項目以外にphp_value include_path項目を追加しなければいけないのか、はたまたそれ以外か・・・初歩的な問題ですが、なにぶん時間がないので質問させていただきました。 おわかりの方いらっしゃいましたら、ご教授くださいますようよろしくお願いします。

    • 締切済み
    • PHP
  • require_once()でファイルが読み込めません

    すいません、色々やったみたのですがよく分からなかったので教えてください。 PHPのテンプレートのSmartyを使いたいと思い、公式サイトからダウンロードして/usr/local/lib/php/Smartyにコピーしました。 その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、 failed to open stream: No such file or directoryや Failed opening required 'Smarty.class.php' というエラーが出て読み込めません。また、phpinfo()を見る限りではphp.iniはきちんと読みにいっているようでした。 ためしに/usr/にSmartyを置き、include_pathもそのように変更してみたのですが読み込めません。カレントディレクトリに配置した場合は上手く読み込めました。また、Smartyでなくてもどのファイルでも読み込めない状況です。 環境はFedora6、Apache2.0、PHP5です。何かアドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP CLIでのphp.iniのパスを設定したい

    CLIモードで読み込まれるphp.iniのデフォルト値(/usr/local/lib)を「php -c path/file」を使わず、インストール時のconfigureオプションなどで指定することは可能なのでしょうか? 環境 CentOS 6.0 PHP5.3.9 (変な場所にインストールされているのは、他の開発環境もあるので隔離するためです。) configure時オプション --prefix=/home/user/local/php --with-config-file-path=/home/user/local/php/lib/ ↑これで自動的に/home/user/local/php/lib/php.iniが読み込まれると思ったのですが $ /home/user/local/php/bin/php -v PHP 5.3.9 (cli) (built: Jan 17 2012 17:22:45) $ /home/user/local/php/bin/php -i Configuration File (php.ini) Path => /home/user/local/php/lib/ Loaded Configuration File => /usr/local/lib/php.ini  なぜかデフォルト(/usr/local/lib/php.ini)が読み込まれてしまう $ /home/user/local/php/bin/php -c /home/user/local/php/lib/php.ini -i Configuration File (php.ini) Path => /home/user/local/php/lib/ Loaded Configuration File => /home/user/local/php/lib/php.ini  cオプションで指定するともちろん問題なし ちなみにブラウザで見るとConfiguration File (php.ini) PathとLoaded Configuration Fileが等しくなっています。 apacheのhttpd.confに PHPIniDir "/home/user/local/php/lib/" を記載しているからだと思いますが。 www.sample.com/index.php Configuration File (php.ini) Path/home/user/local/php/lib/ Loaded Configuration File/home/user/local/php/lib/php.ini

    • ベストアンサー
    • PHP
  • エラーメッセージの意味と解決策をお教え下さい。

    DBにMYSQLを使用しておりますが、以下のエラーが出てしまいます。 解決出来きず、苦しんでおります。 Warning: Failed opening '/home/sites/site1/users/accounting/web/accountingDB/furikae.php' for inclusion (include_path='.:/usr/local/include/php/:/usr/local/lib/php/') in Unknown on line 0 よろしくお願いします。

    • 締切済み
    • PHP