かなりはまりました。phpとApacheのインストールはWindows Serverで何十回も行っているのですが、バージョンアップは初でした。で、はまりました。

以前のバージョンはPHP5.2.3なんですが今回バージョンアップを試み最新バージョン(PHP5.2.9)のインストーラーをダウンロードしてきました。バージョンアップする必要なし!というつっこみはおいといて・・・

で、以前のバージョンのはインストーラではなくてバイナリをダウンロードしてきたものでしたので、そのままゴミ箱へ。そして最新バージョンのをインストーラーでインストール。でApache再起動でOK!と思っていました。

でも、phpinfo()でみると以前のバージョンのまま・・・なぜ??

PHP何度も削除してインストールしてを繰り返しましたが結局だめでした。最終的にはバイナリ版を持ってきて丸ごとフォルダにコピーしてもやっぱりバージョンは変わらない・・・

コマンドラインから php -v

とやると、PHP5.2.9と出るんです。でもphpinfo()だとPHP5.2.3と出るんです・・・。

でもって

echo phpversion();

でも PHP5.2.3と出るんです。

echo PHP_VERSION

でも PHP5.2.3と出るんですよ。

でも、解決しました。原因はバイナリ版を以前コピペでインストールしたとき、php.iniとphp5ts.dllがC:\WINDOWSにコピーしてあったんです。それがPHP5.2.3を表示させている原因でした。php.iniはこの現象の原因とは関係ないですが。

C:\WINDOWSにあるphp5ts.dllを削除
ついでにC:\WINDOWS\php.iniも紛らわしいので削除(インストーラではphp.iniはphpをインストールしたディレクトリに置かれ、Apacheのhttpd.confに勝手にINI_PATHを書き込んでくれるため)

解決!4時間くらい悩みました。