- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのコマンドラインでのバージョンとブラウザからみたバージョンが違う)
PHPのコマンドラインとブラウザのバージョンが違う理由とは?
このQ&Aのポイント
- サーバを構築中に、PHPのコマンドラインとブラウザ上のバージョンが異なることに気づきました。PHPのインストールが重複しているのか、複数のバージョンが存在しているのでしょうか?ここではその理由について追求します。
- Apache 2.2.3をインストールし、PHPの5.2.9をインストールした状況で、PHPのコマンドラインでのバージョン表示とブラウザ上での「phpinfo()」結果が異なっているという問題が発生しました。なぜこのような違いが生じるのか、原因を解明します。
- PHPのコマンドラインで「php -v」を実行するとバージョン5.1.6が表示されますが、ブラウザ上で「phpinfo()」を実行するとバージョン5.2.9が表示されます。この状況は、PHPのインストールが重複して行われ、複数のバージョンが存在していることが原因です。ここでは、解決策を見つけるために必要な情報を共有しています。
- みんなの回答 (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」へのパスがありませんでした。 なので、追加してみます!