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を追加して再起動させました。これでちゃんと動いてます。
トラックバック 1
なぜ、さっきの記事でPHPをアップグレードしようとしたかというと、よくわからない動作をするコードがあったので、確認するためだったのでした。 というのは、PHP5(さっき書いた記事の環境)で for($i=0 ; $i というコードを書くと、結果は「0 0.1 0.2 0.3 0.4 …[続く]







コメント 0