🤍
migrate時に could not find driver ...って言われた。 Amazon Linux 2023 Laravel
環境大体整えてphp artisan migrate
したいって思ったのだけど、詰まってしまったので、メモします。
MySQLのドライバーであるphp-mysqlndをインストールしたかったのだけど、現状ある記事だとうまくいかなかった。
デプロイはこのサイトを参考にしています。
注意点
私自身初めてのAWS EC2でのデプロイなので、至らないところばかりかもしれません。間違っているところあればご指摘いただけますと幸いです。
Amazon Linux 2023について
既存の記事だとEPELやamazon-linux-extrasを使ってドライバをインストールしていたが、そのやり方だとうまくいかなかった。
RHEL向けの追加パッケージを提供するEPELレポジトリをAL2023ではサポートしていないらしい。Fedoraを中心として開発されているらしく、RHELやCentOS等とは少し使い勝手が変わっているみたい。
Fedora だとyum
で書いているところをdnf
に変えると大体のコマンドは動きそう。
開発環境
Amazon Linux 2023
Nginx 1.22.1
MySQL 8.0
Laravel 9
php 8.1
前提
laravel環境、php、mysqlがインストールされていること
エラー内容
Illuminate\Database\QueryException
could not find driver (Connection: mysql, SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:793
789▕ // If an exception occurs when attempting to run a query, we'll format the error
790▕ // message to include the bindings with SQL, which will make this exception a
791▕ // lot more helpful to the developer instead of just the database's errors.
792▕ catch (Exception $e) {
➜ 793▕ throw new QueryException(
794▕ $this->getName(), $query, $this->prepareBindings($bindings), $e
795▕ );
796▕ }
797▕ }
解決策
sudo dnf --disablerepo=\* --enablerepo='mysql*-community*' list available
からの
sudo dnf install php-mysqlnd
↓こんな感じになったら成功
Dependencies resolved.
==========================================================================================================================================================================================================
Package Architecture Version Repository Size
==========================================================================================================================================================================================================
Installing:
php8.1-mysqlnd x86_64 8.1.16-1.amzn2023.0.1 amazonlinux 151 k
Transaction Summary
==========================================================================================================================================================================================================
Install 1 Package
Total download size: 151 k
Installed size: 437 k
Is this ok [y/N]: y
Downloading Packages:
php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64.rpm 1.5 MB/s | 151 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 880 kB/s | 151 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64 1/1
Running scriptlet: php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64 1/1
Verifying : php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64 1/1
Installed:
php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64
Complete!
php artisan migrate
でマイグレートできるはず。
インフラ周りもっと勉強しないとです。。
メモ
マイグレーション成功したものの、デプロイ後500エラーが出てサイトが見れなくなってしまったけど、Nginxのログを見るとすぐ解決できたので、エラー見る方法を記載しておきます!
sudo nano /var/log/nginx/error.log
※ ctrl + x
で抜けれます。
参考URL
Discussion