鶏口牛後な日々

心の赴くまま、やりたいことを仕事に。

php artisan migrateができず、[PDOException]: Could not Find Driverが出てしまう

エラー[PDOException]: Could not Find Driver

表題のエラーが出てしまいました。

config/database.phpdefault は、ちゃんと mysql になっている。 .env には、データベースの接続情報を記載している。なんで〜・・・

php-mysql などの、データベースとPHPを接続してくれるモジュール系がないっぽい?? ここまで気づいて、yum で入れて見るも、またしても依存性のあるライブラリがないとのお達し

phpinfoで確認

ここで、phpinfoで確認してみると、 PDOsqlite だけになっているようだった。 phpinfoでの、ターミナルから/ブラウザからの確認方法は、こちらの記事を参照のこと。

結論

PDOなどの、PHPからmysqlを動かすために必要なライブラリたちをyumで入れた。 この時、少し引っかかって時間を食ってしまった原因は、複数の違うyumレポジトリから色々インストールしてしまったらしく、依存性がきっちり解決できていなかったのが問題だった。 具体的には、 repo-php71 というレポジトリでPHPを入れたので、他の php-pdophp-mysql といったデータベースと接続するのに必要なライブラリも、同じレポジトリからインストールするべきだったようだ。 amzn2-core など別のレポジトリからインストールしてしまうと、バージョンが違うため、互換性がないということで、エラーが再発してしまった。 互換があるバージョンを入れる、ということが、以下に重要かということを実感したエラーだった。

phpinfoで確認

無事、MysqlのPDOが読み込まれているかどうか、phpinfoで確認した。

f:id:TACOSVilledge:20181026184539p:plain ピンクの枠線で囲んだところが、最初の確認時はなかったが、インストールしたことにより、表示されるようになった。

最終的に入れたphp関連のライブラリたち一覧

(もしかしたら、現段階で不要なものもあるかもしれません。色々調べた最大公約数を入れました)

php.x86_64                            7.1.23-1.el7.remi              @remi-php71
php-cli.x86_64                        7.1.23-1.el7.remi              @remi-php71
php-common.x86_64                     7.1.23-1.el7.remi              @remi-php71
php-fpm.x86_64                        7.1.23-1.el7.remi              @remi-php71
php-json.x86_64                       7.1.23-1.el7.remi              @remi-php71
php-mbstring.x86_64                   7.1.23-1.el7.remi              @remi-php71
php-mcrypt.x86_64                     7.1.23-1.el7.remi              @remi-php71
php-mysqlnd.x86_64                    7.1.23-1.el7.remi              @remi-php71
php-pdo.x86_64                        7.1.23-1.el7.remi              @remi-php71
php-pecl-mysql.x86_64                 1.0.0-0.15.20160812git230a828.el7.remi.7.1
                                                                     @remi-php71
php-pecl-zip.x86_64                   1.15.3-1.el7.remi.7.1          @remi-php71
php-xml.x86_64                        7.1.23-1.el7.remi              @remi-php71

おまけ

php-gd (グラフィックを扱うために必要なモジュール?)も入れるべき、という記述も見たので、今後必要になるかもしれないことをメモしておく。