- ベストアンサー
php.iniのinclude_pathのデフォルト値について
- php.iniのinclude_pathのデフォルト値について質問があります。
- 現在PHP 5.6.6をインストールしている際に、phpinfoで確認したところ、include_pathに「.:/usr/share/pear:/usr/share/php」という値が設定されていました。
- しかし、php.iniの中を検索しても、include_pathの設定はコメントアウトされているため、このデフォルト値の設定はどこから来ているのか疑問です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
見落としていたのですが、remi-56とはrpmのリポジトリなんですね。 rpmでデフォルト値が変更されている可能性が高い気がします。 rpmを解凍してその中身を精査することもおすすめします。
その他の回答 (1)
- hoge1229
- ベストアンサー率29% (58/194)
http://php.net/manual/ja/ini.core.php#ini.include-path 公式のドキュメントによるとinclude-pathのデフォルト値は".;/path/to/php/pear"となっていますので、コメントアウトしてあるphp.iniの違う行で設定されているか、そもそも違う位置にある別のphp.iniが読み込まれている可能性も考えられます。 あと、開発者としてのアドバイスですが、こういった類いの問題にぶち当たったときは、まず公式のドキュメントをお読みになると開発者のレベルが向上すると思いますよ。
お礼
お忙しい中、ご回答頂きありがとうございます。 捕捉にさらに詳しく状況をのせました。
補足
いろいろ検索してみて、公式ドキュメントもみてみたのですが、おっしゃる通り「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のデフォルト値は、レポジトリでインストールされたパスに自動で設定されたりするのでしょうか?
お礼
回答いただきありがとうございます。 >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」を詳しくよんで、どこで設定しているのかまで つきとめたかったのですが、難しくてそこまで及びませんでした。 ありがとうございました!