こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

php.iniのinclude_pathのデフォル

php.iniのinclude_pathのデフォルト値にたいして質問です。

現在PHP 5.6.6 をremi-56のリポジトリから、centos6にインストールしました。
そして、phpinfoを確認すると、

「include_path」の欄に「.:/usr/share/pear:/usr/share/php」とありました。
しかし、「php.ini」の中を検索しても、include_pathは、「;include_path = ".:/php/includes"」などのようにすべてコメントアウトされていました。

phpインフォをみたとき、include_pathに「「.:/usr/share/pear:/usr/share/php」が設定されているのは、デフォルトで決まった値なのでしょうか?
どこか、設定ファイルにその値がかかれたりしているのでしょうか?

httpd.confを検索しても、phpのパスを設定している様子もなく、.htaccessなども設置してないので、一体このデフォルト値はどこから来てるのか不思議です。
分かる方いましたら教えてもらえないでしょうか?

投稿日時 - 2015-03-16 11:10:42

QNo.8936797

困ってます

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

見落としていたのですが、remi-56とはrpmのリポジトリなんですね。
rpmでデフォルト値が変更されている可能性が高い気がします。
rpmを解凍してその中身を精査することもおすすめします。

投稿日時 - 2015-03-16 17:24:20

お礼

回答いただきありがとうございます。
>rpmを解凍してその中身を精査

上記でヒントを得たので、なんとか、remiのrpmパッケージのSRPMS.rpmをさがしだし、
「rpm2cpio php56-php-5.6.5-0.1.RC1.remi.src.rpm | cpio -id」でファイル展開して、
「php.spec」をのぞいてみました。
すると下記のような、変更ログの記述がありました。

* Tue Jan 30 2007 Joe Orton <jorton@redhat.com> 5.2.0-9
- add php(api), php(zend-abi) provides (#221302)
- package /usr/share/php and append to default include_path

* Sun Dec 4 2005 Joe Orton <jorton@redhat.com> 5.1.1-4
- add /usr/share/pear back to hard-coded include_path

なので、include_pathをrpmパッケージで追加してることがわかりました。
本当は、「php.spec」を詳しくよんで、どこで設定しているのかまで
つきとめたかったのですが、難しくてそこまで及びませんでした。

ありがとうございました!

投稿日時 - 2015-03-17 16:07:27

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

http://php.net/manual/ja/ini.core.php#ini.include-path

公式のドキュメントによるとinclude-pathのデフォルト値は".;/path/to/php/pear"となっていますので、コメントアウトしてあるphp.iniの違う行で設定されているか、そもそも違う位置にある別のphp.iniが読み込まれている可能性も考えられます。

あと、開発者としてのアドバイスですが、こういった類いの問題にぶち当たったときは、まず公式のドキュメントをお読みになると開発者のレベルが向上すると思いますよ。

投稿日時 - 2015-03-16 12:11:18

補足

いろいろ検索してみて、公式ドキュメントもみてみたのですが、おっしゃる通り「include_path」のデフォルト値は、「".;/path/to/php/pear"」とありました。しかし、コマンドラインから「php -r 'phpinfo();' > phpinfo.txt」を実行して、phpinfoの内容を確認すると、「include_path => .:/usr/share/pear:/usr/share/php」とあります。
また、実際そのパスにphpやpearがインストールされています。

php.iniを「include_path」で検索しましたが、ヒットしたものはすべて「;」でコメントアウトされていてます。Loaded Configuration File => /etc/php.iniなので、読みこんでいるphp.iniが間違ってないことも確認しました。

cent6の標準レポジトリだとphp5.3だったので、そのため、remi56でphp5.6をインストールしました。その際、include_pathのデフォルト値は、レポジトリでインストールされたパスに自動で設定されたりするのでしょうか?

投稿日時 - 2015-03-16 12:54:24

お礼

お忙しい中、ご回答頂きありがとうございます。
捕捉にさらに詳しく状況をのせました。

投稿日時 - 2015-03-16 12:54:30

あなたにオススメの質問