cakephp3.6でMysql cannot be used due to a missing PHP extension or unmet dependencyエラー

作業環境

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が使えるようになった。

タイトルとURLをコピーしました