php artisan migrateができず、[PDOException]: Could not Find Driverが出てしまう
エラー[PDOException]: Could not Find Driver
表題のエラーが出てしまいました。
config/database.php
の default
は、ちゃんと mysql
になっている。
.env
には、データベースの接続情報を記載している。なんで〜・・・
php-mysql
などの、データベースとPHPを接続してくれるモジュール系がないっぽい??
ここまで気づいて、yum
で入れて見るも、またしても依存性のあるライブラリがないとのお達し
phpinfoで確認
ここで、phpinfoで確認してみると、 PDO
が sqlite
だけになっているようだった。
phpinfoでの、ターミナルから/ブラウザからの確認方法は、こちらの記事を参照のこと。
結論
PDOなどの、PHPからmysqlを動かすために必要なライブラリたちをyumで入れた。
この時、少し引っかかって時間を食ってしまった原因は、複数の違うyumレポジトリから色々インストールしてしまったらしく、依存性がきっちり解決できていなかったのが問題だった。
具体的には、 repo-php71
というレポジトリでPHPを入れたので、他の php-pdo
や php-mysql
といったデータベースと接続するのに必要なライブラリも、同じレポジトリからインストールするべきだったようだ。
amzn2-core
など別のレポジトリからインストールしてしまうと、バージョンが違うため、互換性がないということで、エラーが再発してしまった。
互換があるバージョンを入れる、ということが、以下に重要かということを実感したエラーだった。
phpinfoで確認
無事、MysqlのPDOが読み込まれているかどうか、phpinfoで確認した。
ピンクの枠線で囲んだところが、最初の確認時はなかったが、インストールしたことにより、表示されるようになった。
最終的に入れた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
(グラフィックを扱うために必要なモジュール?)も入れるべき、という記述も見たので、今後必要になるかもしれないことをメモしておく。