php artisan migrateができない

環境:windows10
           WSL2 上 Ubuntu-20.04
           Docker
目的:Dockerでlamp or lemp環境を作りたい

dockerhub (https://hub.docker.com/r/bitnami/laravel/) からとってきた
docker-compose.ymlでコンテナを立ち上げるも、laravelの初心者用学習手順のマイグレーションでエラーが出て、かなりハマってしまった。

また、上記ファイルではmariadbとlaravelのみしか記述されておらず、色んなhow toサイトの内容を盛り込んでいく際、設定の記述の関連性や依存性など不明のまま手探りで記述していた。
そこの学習なしでエラーログに正面衝突していたのが問題であった。

以下、試したこと。

①mysqlのドライバがない?
wslにmysqlをインストール

# mysql インストール(WSL上)
sudo apt install mysql-server

php artisan migrate

Illuminate\Database\QueryException
could not find driver (SQL: select * from information_schema.tables where table_schema = todoapp and table_name = migrations and table_type = 'BASE TABLE')

②エラーログで検索した記事の解決アンサーを脳死で叩く

sudo apt install php8.1-mysql

Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = todoapp and table_name = migrations and table_type = 'BASE TABLE')

③sourcetree(windows)とWSLのパーミッション
powershellとwslの両方で実行


git config --global --add safe.directory '%(prefix)///wsl$/Ubuntu20.04/home/kosuke/LEMP_DOCKER'


④php.iniのpdo_mysqlを有効+パーミッションの問題
.envなど保存出来ない際、権限を変更

php --ini

;extension=pdo_mysql を extension=pdo_mysql に変更
→保存できない

cd  /etc/php/8.1/cli
sudo chmod -R 777 ./

⑤その他

myslqのpdoドライバをダウンロードしたり、composerをダウンロードしたりと色々やったが、有効な感じがせずログはとっていなかった。

最終的に

https://www.membersedge.co.jp/blog/laravel-development-environment-with-docker-compose/

上記サイトを参考にDockerfileやdocker-comopose.ymlがなにをしているかをひとつづつ咀嚼しながらプロジェクトを作成

→ php artisan migrateでエラー

.envのDB_HOSTを、
127.0.0.1 から docker-compose.ymlの mysql : に変更し、解決

とんでもなくハマったが、変更箇所の見逃しという凡ミスであった。。

Dockerfileやnginxのdefault.confなど、コンテナ立ち上げ段階での設定の記述の関係性を把握するためにも、プロジェクトのフォルダ構成から地道にやるべし!!



この記事が気に入ったらサポートをしてみませんか?