質問: windwsxp環境下でapache2.2、php5.2、mysql5.1 windwsxp環境下でapache2.2、php5.2、mysql5.1 phpmyadminでdbを操作したいと思ってます。 ブラウザからアクセスし、ログインを行おうとするのですが、 認証時にapacheが落ちてしまいます。 問題の個所は、mysql_connect発動時で、 この関数を実行するとどうやら落ちているようです。 cmdからはmyqlへのアクセスが成功しますし、 phpinfoではmysqlの項目があるのでモジュールは有効になっているようです。 iniファイルもきちんと読み込まれています。 extension_dirの指定も正しく、そこにはphp_mysql.dllが存在します。 phpもmysqlも通常にインストールしたつもりですが、何か設定が間違っているもしくは足りないものがあるでしょうか。 どなたか対処法についてご存知の方がいらっしゃればアドバイスをお願いいたします。
回答: libmysql.dllのバージョンが異なっているということはありませんか? phpのサイトで配布されているphp5.2のバイナリは mysql5.0(多分5.0.51a)のライブラリでコンパイルされているため、 同梱されているlibmysql.dllも5.0用です。 一方mysqlは5.1を使っているとのことなので libmysql.dllも5.1用が同梱されています。 phpでmysql用の関数を使用する場合、 apacheがphp同梱のlibmysql.dllにアクセスする必要がありますが、 このとき5.1用のlibmysql.dllを読み込んでしまうと色々と不具合が発生します。 (1)libmysql.dllを\windows\system32下にコピーした場合 \php下にあるlibmysql.dllで上書きして下さい (2)\program files\mysql\mysql server 5.1\binを環境変数pathに追加した場合 上記のmysqlのパスより前にphpを配置したフォルダ(例:c:\php等)を 環境変数pathに追加してみて下さい。 環境構築を重視しないのならxamppを使った方が確実だと思います。