WindowsXPで「Apache + PHP + MySQL」の環境を構築しようとしてちょっとはまったのでメモ。
Apache2.2とMySQL4.1.6が既にインストールされていたので、後はPHPをインストールすれば楽勝と思ってたんですが、甘かったです。
http://2php.jp/php/install_php_windows.html
http://php.morva.net/manual/ja/install.windows.php
↑このページを参考にしながらインストールしたんですが、エラーが出てApacheが起動しなくなりました。httpd.confに追記した部分をコメントアウトしながら原因を調べると、どうやらLoadModuleでエラーが出ている模様。
LoadModule php4_module "c:/php/php4apache2.dll"
で、結局原因は、Apacheのバージョン。PHP4の連携にはapache2.2は対応していないようです。
ってことで、Apache2.0をインストールしました。
これでPHPとapacheの連携はOK。
ところがPHPからMySQLへ接続してみると、以下のようなエラーが出ました。
Client does not support authentication protocol requested by server; consider upgrading MySQL client
調べてみると、MySQLは4.1になってから認証方式が変わったらしく、通常のPHPからは接続できなくなっているとか。
対処方法は、PHPフォルダのlibmySQL.dllをMySQLフォルダに入っているlibmySQL.dllに置き換え、さらに、MySQLにログインして以下の手順でold_passwordを設定します。
mysql -u root -p
Enter password:
mysql> set password=old_password('rootのパスワード');
これで無事に接続することができました。