プロが教えるわが家の防犯対策術!

こんにちは。
サーバを一から構築していて、
Apache 2.2.3をインストールし、
PHPの5.2.9をインストールしたのですが、
PHPのコマンドラインからチェックしたバージョンと、
ブラウザで「phpinfo()」したときのバージョンが違い、そういうことがあるのかを確認したく、ご質問させていただきます。
コマンドラインで、「php -v」したときに、
-------
PHP 5.1.6 (cli) (built: Apr 7 2009 08:00:04)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
-------
となるのですが、ブラウザで「phpinfo()」を記述したPHPファイルを確認すると、
-------
PHP Version 5.2.9
-------
となってしまいます。

これは、PHPのインストールが、重複して行われてしまい、
複数のバージョンが存在してしまっているのでしょうか?
コマンドラインでの「php.ini」の場所は、
/etc/php.ini
で、ブラウザから確認した「php.ini」の場所は、
/usr/local/php/lib/php.ini
になっています。

なにか、気づく点や、不足している情報などありましたら指摘いただけると助かります。
宜しくお願い致します。

A 回答 (1件)

ご使用のOSが何なのかわからないので推測になりますが、


おそらく、
・元から /usr/bin あたりに 5.1.6 が入っていた
・新規に入れた 5.2.9 は /usr/local/bin あたりにインストールされた
・そのため、5.1.6 と 5.2.9 と両方が入っている状態になっている
・PATH で /usr/bin が /usr/local/bin より先に来ているため、単に php を実行した場合には、5.1.6 の方が実行される
・Apache では、組み込めるphpモジュールは一つだけなので、最後にインストールした5.2.9が実行される
といった状況ではないかと思います。

コマンドラインでの確認では、どれだけphpがインストールされてどれが実行されているのか、
% which php
% where php
などで確認してみてください。

上記の通りの状況だとしたら、対策は、
・/usr/bin にインストールされた方の php をアンインストールする
・PATH で、/usr/local/bin の方を先に持ってくる
のどちらかになるかと思います。

この回答への補足

ご連絡おそくなり、失礼しました。
ご返答ありがとうございます!
すみません、OS情報ですが、
CentOS5.2です。
確認したのですが、

whichコマンドでは、
/usr/bin/
がきました。

whereisで、
php: /usr/bin/php /etc/php.d /usr/lib/php /usr/include/php /usr/local/php /usr/share/man/man1/php.1.gz

とたくさん出てきました。
あと、
echo $PATH
をしてみたのですが、
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

と、なっていて、
「/usr/local/php」へのパスがありませんでした。
なので、追加してみます!

補足日時:2009/05/18 23:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!