作業環境
cakephp3.6
centos6.9
apache2.4
mysql5.6?
php7.1
概要
cakephp3.6のログインシステム使ってログインしようとしたらなかなかログインできず、cakephpのログを見たところこういうエラーに遭遇する
Error: [Cake\Database\Exception\MissingExtensionException] Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP extension or unmet dependency Exception Attributes: array ( 'driver' => 'Cake\\Database\\Driver\\Mysql', ) Request URL: ■不具合起きたパス■ Referer URL: ■不具合起きたURL■
どうやらmysqlを利用するためのエクステンションがないらしい
やったこと
こういうスレッドを見つけたのでどうやらmysqlndを入れる必要があるらしい。
前と同じコマンド使ってるはずなのになぜはいっていないんだろう?(なにか設定間違えたんだろうな…)
インストールできるパッケージがあるか確認する
# yum list | grep mysqlnd php71-php-mysqlnd.x86_64 7.1.20-1.el6.remi remi-safe
まず、普通にyumでインストールしてみたけど自動で有効にならなかった
# yum install php71-php-mysqlnd
なんかリポジトリ指定してインストールする必要があるらしい?
# yum install --enablerepo=remi,remi-php71 php-mysqlnd
これでも有効にならなかったので自動で有効になったりはしないんだろうか…
念の為、エクステンション探してみる。
なんか3つくらいはいってたので既にはいってたのに更にインストールとかしてそう…
# find / -name 'mysqlnd.so' /usr/lib64/php-zts/modules/mysqlnd.so /usr/lib64/php/modules/mysqlnd.so /opt/remi/php71/root/usr/lib64/php/modules/mysqlnd.so
php.iniに書いておく
# vi /etc/php.ini
末尾に追加
extension = mysqlnd.so
再起動
# service httpd24-httpd restart
これで無事エラーなくMYSQLが使えるようになった。