./configure \
--enable-fastcgi \
--disable-cli \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \ =ア
--with-config-file-scan-dir=/usr/local/php/etc/php.d \ =イ
以下省略
ア=php.iniが入っているディレクトリへの指定
イ=ディレクトリの中に含まれる*.iniのファイルをphp.iniにインクルード
1)この解釈で間違いないでしょうか。
2)下記ファイルを読みにいかない理由や、解決策を御願い致します。
/usr/local/php/etc/php.ini
/usr/local/php/etc/php.d/xdebug.ini
phpinfo()の結果
Loaded Configuration File (none)
Scan this dir for additional .ini files (none)
1)この解釈で間違いないでしょうか。
間違いありません。
2)下記ファイルを読みにいかない理由や、解決策を御願い致します。
CLIを作成していないので、Webサーバ経由で phpinfo を実行しているのですよね。
Webサーバの方の PHP 設定に間違いはありませんか?
たとえば Apache ですと、httpd.conf の PHPIniDir に設定されたパスの中に php.ini を探しに行きます。
1)この解釈で間違いないでしょうか。
間違いありません。
2)下記ファイルを読みにいかない理由や、解決策を御願い致します。
CLIを作成していないので、Webサーバ経由で phpinfo を実行しているのですよね。
Webサーバの方の PHP 設定に間違いはありませんか?
たとえば Apache ですと、httpd.conf の PHPIniDir に設定されたパスの中に php.ini を探しに行きます。
ご回答ありがとうございます。よびだし元の設定でphp.iniファイルを指定する様な動作がある、というご指摘から、解決策を模索できました。
この質問をご覧に成った方、同じ御悩みのかたがいらっしゃるかもしれませんので解決を一応記載致します。
今回の場合はApacheー>suphpー>php-cgiというながれで、phpを呼び出しています。suphpはデフォルトで/usr/local/lib/を見に行ってしまう作りになっているようです(suphpのドキュメントにはそのような記述はなく、phpのデフォルトの位置を検索しにいく、という記述しか見当たりませんでしたが、phpのコンフィギュアで指定しない場合のデフォルトは確かに/usr/local/lib/なので、その事を意味しているのでしょう。)
そこでApacheの設定ファイル(httpd.conf)で、suPHPが見に行くphp.iniファイルのディレクトリ指定ができるコマンドがありましたので(suPHP_ConfigPath)、こちらで設定したところ、その設定が優先され反映されました。
suPHPを使っていらっしゃらない方ならご回答いただいた様にPHPIniDirを設定することで解決するでしょう。
原因の根本解決ではありませんでしたが、--with-config-file-pathの設定は、php-cgi(CGI版PHP)の場合、あるいはsuphp経由の場合は、なんらかの処理が割り込んで、php自体のコンフィギュアの設定は無視される作りに成っているようです。また--with-config-file-scan-dirにいたってはどのような方法でも無理ですので、php.iniでインクルードを指定しないと無理なようです。
文字数の関係で細かい状況までかけませんでしたが、的確なアドバイスありがとうございました。
(ア)解釈
OKです。
(イ)読みに行かない
apache実行ユーザ からは
・見えない(アクセス権が無い)
・存在しない
のいずれかではないかと思われますので、
apache実行ユーザでログインして php.ini の存在確認を行ってください。
--> 存在する場合はパーミッションを確認してみてください。
--> 存在しない場合は作ってみてください。
※ディストリビューション や バージョンの違いで
ディレクトリ配置などが細かく異なったりもしますので
質問の際には明記しておくほうが互いに手間が減りますし
より解決に近づきやすくなりますので、以後ご記憶ください。
ご回答ありがとうございます。パーミッションの設定、オーナーの設定など色々試してみましたがこれが根本的な問題ではなかったようです。
こまかい状況を記載できなくて申し訳ありませんでした。
ご回答ありがとうございます。よびだし元の設定でphp.iniファイルを指定する様な動作がある、というご指摘から、解決策を模索できました。
この質問をご覧に成った方、同じ御悩みのかたがいらっしゃるかもしれませんので解決を一応記載致します。
今回の場合はApacheー>suphpー>php-cgiというながれで、phpを呼び出しています。suphpはデフォルトで/usr/local/lib/を見に行ってしまう作りになっているようです(suphpのドキュメントにはそのような記述はなく、phpのデフォルトの位置を検索しにいく、という記述しか見当たりませんでしたが、phpのコンフィギュアで指定しない場合のデフォルトは確かに/usr/local/lib/なので、その事を意味しているのでしょう。)
そこでApacheの設定ファイル(httpd.conf)で、suPHPが見に行くphp.iniファイルのディレクトリ指定ができるコマンドがありましたので(suPHP_ConfigPath)、こちらで設定したところ、その設定が優先され反映されました。
suPHPを使っていらっしゃらない方ならご回答いただいた様にPHPIniDirを設定することで解決するでしょう。
原因の根本解決ではありませんでしたが、--with-config-file-pathの設定は、php-cgi(CGI版PHP)の場合、あるいはsuphp経由の場合は、なんらかの処理が割り込んで、php自体のコンフィギュアの設定は無視される作りに成っているようです。また--with-config-file-scan-dirにいたってはどのような方法でも無理ですので、php.iniでインクルードを指定しないと無理なようです。
文字数の関係で細かい状況までかけませんでしたが、的確なアドバイスありがとうございました。