【Laravel8ログイン画面のURLが無い⁉】dockerで環境を何度作り直してもlogin画面が表示されない。

docker

Laravelを使ってユーザ認証をしようと思ったんです。

何度やり直してみても、「urlがありません。」って出るんです。

今回はbreezeをインストールして作成しようとしたんですが、全く...

というわけで解決方法を探しました!

結論

先に結論だけいうと、mod_rewriteが有効化されていなかった。

ということになります。

もう少し詳しく説明していきますね。↓↓↓

環境

  • docker
  • laravel: 8.x
  • mysql: 8.0.26
  • PHP: 8.0.9-apache-buster

welcome.blade.php

welcome.blade.phpは確認できる状態です。

右上のログインボタンを押したら通常ならログイン画面に移ると思うのですが、なんかurlが無いやらどうやらと...

breezeのインストールからやり直し

breezeのインストールは以下ブログを参照↓
Laravel8で新登場 Laravel Breezeでの認証機能を完全理解

何かおかしいと思ってインストールからやり直してみました。

laravel8をインストールした後にもう一度やってみます。

jsのパッケージをインストール(breeze)
composer require laravel/breeze
php artisan breeze:install

パッケージをコンパイル
npm install
npm run dev

マイグレーション
php artisan migrate

この手順で何度やってもうまくいかない...

調査やり直し

なにがおかしいのかということで、もう一度ググレカス。

「docker laravel url not found」

で調べてみる。

とっぽいブログが出てきたのでこれを参考にしよう!

(Docker-Laravel-apache) ルーティングができない原因と対処法

mod_rewriteね怪しいね...

mod_rewriteを有効化させる

現在動かしているapacheにはmod_rewriteは存在するが、有効化されていないっぽい。

というわけで、dockerfileに以下を追記して有効化させよう。

RUN cd /etc/apache2/mods-enabled \
&& ln -s ../mods-available/rewrite.load

これでmod_rewriteを有効化させることができる!

そしてもう一度dockerをbuildしなおすと....

ログイン画面

やったーログイン画面が表示された!

ということで成功でした。

まとめ

何か当てをつけて調べるっていうのは結構難しい。

でもある程度推測してから調べてみないと時間もかかりそうだな。

ということで良い勉強になりました。

コメント

タイトルとURLをコピーしました