SSブログ

PHPをアップグレードしたら、mysqliが動かなくなった(Win XP) [Web開発]

マカなBlogなはずですが、WinXPでのApache2+PHP5を動かすときのお話です。
(前はMac OS Xで動いていたんですけど、WinXPが暇そうだったので環境を移行したということでふ)


Apacheが2.0.58(Win32)でMySQLが5.0.22(ちと古いか…)でPHP5.1.4から5.1.6へバージョンアップしようとしたんですが。

PHPはマニュアルインストールで、c:¥phpにいれてあり、ApacheはインストーラでProgram Filesの適切なところへいれてあったわけです。
とりあえず、古いPHPをphp.oldにして、新しいほうを¥phpにコピーして、php.iniは一応両方を開いて確認しながら、書き直したのですが結局はそのまま同じでした。

そのあと、OSを再起動させてmysqliを使ったページを開いたところ、
"PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_mysqli.dll'"
というメッセージが出てきて動かなくなってました。phpinfo();を見てもmysqliがありません。

そうなる原因がわからなくちょっとはまり気味になったんですが、そういえば、前のPHPかMySQLををインストールするときにApacheのフォルダに何かを無理矢理コピーした記憶がよみがえってきて、とりあえず、Apacheのbinフォルダをみると「libmysql.dll」というApacheの提供でないファイルがありました。
これは、phpからコピーしてきたファイルでした。当然、前のバージョンのファイルです。

どうやら、libmysql.dllとphp_mysqli.dllのバージョンが一致しないと、上記のようなエラーをphpが出力して、mysqliが動かなくなるようです。

対処は、今後のためにPHPからApacheへコピーしたdllを全部消して、システム環境変数のpathにc:¥phpを追加して再起動させました。これでちゃんと動いてます。


タグ:PHP
nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 1

Copyright © 2005-2009, Finky All Rights Reserved.

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。