WindowsのApacheでPHPを動かそうとしたときに、Cannot load mysql extension. といわれた
Windows 上に、Apache + PHP + MySQL の環境を構築していて、ハマった問題と解決策のメモ。
■事象
PHPからMySQLに繋ごうとすると、Cannot load mysql extension.というエラーが発生。Apache のログにも以下が出力されていた。
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/Program Files/php-5.2.6/ext/php_mysql.dll'
※PHPのインストール&設定は、Webなどに掲載されているとおりに正しく実施している
■原因&対策
Windows上でPHPから、MySQLに繋ぐには、適切なバージョンのlibmysql.dll がパスの通ったところになければならない。
普通にWindows用のPHPをインストールすると、インストールディレクトリにlibmysql.dll があるので(インストールディレクトリにパスを通していれば)問題にはならないが、この「適切なバージョンの」というところがポイント。
僕の環境では古いMySQLがインストールされていて、かつ、そのMySQLがパスの前の方に指定してあったため、別の「libmySQL.dll」が読み込まれて、上記エラーが発生していました。パスの順序を修正して解決。
いやあ、悩んだ・・・orz