WSL2 + Rancher Desktop + Laravel11 sail 開発環境構築でのトラブル解決
はじめに
Laravel11 + Vue3 の講座を始めようと講座内の手順に従いタイトルの構成で開発環境を構築しようとしたのだが、環境固有のエラーが発生したためその対応内容を備忘録として残す。
記憶頼りが少なくないかつボヤっとした書き方にならざるを得ないので他人の参考になるかは知らん。
curlでのlaravelプロジェクト作成時エラー
次のようなcurlコマンドでlaravelプロジェクトを作成しようとすると、証明書関連の「~.so」が存在しないというようなエラーが発生する。
curl -s https://laravel.build/example-app | bash
その場合は「/home/USER/.docker/config.json」に次の内容のjsonファイルを作成することで認証関連らしき処理をスキップして終わらせる。(USERは自身のユーザー名で置換)
{
"credsStore": "pass"
}
sail up 後のブラウザ表示でsessionsテーブルへのDBクエリがタイムアウトするエラー
これは問題が2つあった。
1つ目はWSL2によりsailのコンテナが名前解決できず外部ネットワークやコンテナ間での通信ができていなかったこと。
これはホストのWindows側で C:\Users\USER\.wslconfig
に次の内容のファイルを作ることで対応できた。(USERは自分のユーザー名で置換)
[external]
dnsTunneling=true
ただし、比較的新しい機能であるようなので古いwslを使っている場合はコマンドラインでwsl --update
を実行してバージョンを更新する。
wsl --version
で「2.1.5.0」以上になっていれば恐らく問題ない。
2つ目は1つ目によるもの思われるsessionsテーブルの不足があった。
本来どういう処理だったかは知らんが、laravel migrateが走らなかったことによりlaravelデータベース内にsessionsテーブルを含む基本的なテーブルがそもそも存在しなかった。
それによってエラーが起こっていた。
これの対処は単純で起動中の「sail-*/app」コンテナにdocker exec -it CONTAINER_ID bash
で入ってphp artisan migrate
を実行すればいい。(CONTAINER_IDはdocker ps
で確認してその値で置換)
これで終わり。
おわりに
開発環境を建てるのが簡単に済んだ記憶はあまりないが、それでも解決に時間がかかりすぎた。
今のローカルマシンではもう同じ轍は踏まないと思うが、マシンを変えた後などでこのク○めんどくせえエラーがまた起きたら参考に見返すために書き残す。
Share