LinuxにソースからコンパイルしたPHP5.2.9を導入したいと思っています。


./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人5回まで
  • 登録:
  • 終了:2009/06/21 12:06:55
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント100pt

1)この解釈で間違いないでしょうか。

間違いありません。


2)下記ファイルを読みにいかない理由や、解決策を御願い致します。

CLIを作成していないので、Webサーバ経由で phpinfo を実行しているのですよね。

Webサーバの方の PHP 設定に間違いはありませんか?

たとえば Apache ですと、httpd.conf の PHPIniDir に設定されたパスの中に php.ini を探しに行きます。

id:happy1980

ご回答ありがとうございます。よびだし元の設定で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でインクルードを指定しないと無理なようです。


文字数の関係で細かい状況までかけませんでしたが、的確なアドバイスありがとうございました。

2009/06/21 12:06:04

その他の回答1件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633ここでベストアンサー

ポイント100pt

1)この解釈で間違いないでしょうか。

間違いありません。


2)下記ファイルを読みにいかない理由や、解決策を御願い致します。

CLIを作成していないので、Webサーバ経由で phpinfo を実行しているのですよね。

Webサーバの方の PHP 設定に間違いはありませんか?

たとえば Apache ですと、httpd.conf の PHPIniDir に設定されたパスの中に php.ini を探しに行きます。

id:happy1980

ご回答ありがとうございます。よびだし元の設定で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でインクルードを指定しないと無理なようです。


文字数の関係で細かい状況までかけませんでしたが、的確なアドバイスありがとうございました。

2009/06/21 12:06:04
id:kn1967 No.2

回答回数2915ベストアンサー獲得回数301

ポイント50pt

(ア)解釈

OKです。


(イ)読みに行かない

apache実行ユーザ からは

・見えない(アクセス権が無い)

・存在しない

のいずれかではないかと思われますので、

apache実行ユーザでログインして php.ini の存在確認を行ってください。

--> 存在する場合はパーミッションを確認してみてください。

--> 存在しない場合は作ってみてください。


※ディストリビューション や バージョンの違いで

 ディレクトリ配置などが細かく異なったりもしますので

 質問の際には明記しておくほうが互いに手間が減りますし

 より解決に近づきやすくなりますので、以後ご記憶ください。

id:happy1980

ご回答ありがとうございます。パーミッションの設定、オーナーの設定など色々試してみましたがこれが根本的な問題ではなかったようです。

こまかい状況を記載できなくて申し訳ありませんでした。

2009/06/21 12:02:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません