CakePHP 2.0.5 で 「Cake is NOT able to connect to the database.」の解決方法
CakePHP 2.0.5 を試してみた。 app\Config\database.php の設定をしてみたのだが、「Cake is NOT able to connect to the database.」が表示され、うまく動作しない。
設定は次の通りで、とくにまずくはなさそうだ。
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'testuser',
'password' => 'testpassword',
'database' => 'testdatabase',
'prefix' => '',
//'encoding' => 'utf8',
);```
このアカウントでphpMyAdminでMySQLにログインしてみると、正常にログイン・DB表示できる。
また app\Config\database.php のloginをrootにしてみたが、
それでも「Cake is NOT able to connect to the database.」が表示される。
アカウントの問題ではなさそうだ。
よくよく調べてみると、
```text
CakePHP 2.0.5.
Windows 7SP1 64bit
Apache 2.2
PHP 5.3.9```
の環境でphpinfo()を見てみると、
```text
PDO
PDO support enabled
PDO drivers no value```
とPDOはドライバが何もない。
これが影響しているのかと、
c:\php\php.ini を書き換える。
```text
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll```
↓
```text
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll```
ここでApacheを再起動。
もう一度phpinfo()を見てみると、
```text
PDO
PDO support enabled
PDO drivers mysql```
すると、「Cake is NOT able to connect to the database.」はなくなり、
「Cake is able to connect to the database.」が表示された。
よくみれば、CakePHP 2.0系のドキュメント
[CakePHP Cookbook v2.x documentation Requirements][1]
にしっかりと、
「Note:The built-in drivers all require PDO. You should make sure you have the correct PDO extensions installed.」
と書いてある。。
[1]: http://book.cakephp.org/2.0/en/installation.html#requirements