Laravelを使ってユーザ認証をしようと思ったんです。
何度やり直してみても、「urlがありません。」って出るんです。
今回はbreezeをインストールして作成しようとしたんですが、全く…
というわけで解決方法を探しました!
Table of Contents
結論
先に結論だけいうと、mod_rewriteが有効化されていなかった。
ということになります。
もう少し詳しく説明していきますね。↓↓↓
環境
- docker
- laravel: 8.x
- mysql: 8.0.26
- PHP: 8.0.9-apache-buster
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
Code language: JavaScript (javascript)
この手順で何度やってもうまくいかない…
調査やり直し
なにがおかしいのかということで、もう一度ググレカス。
「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しなおすと….
やったーログイン画面が表示された!
ということで成功でした。
まとめ
何か当てをつけて調べるっていうのは結構難しい。
でもある程度推測してから調べてみないと時間もかかりそうだな。
ということで良い勉強になりました。