前回の記事で、NginxにLaravelを設置して公開ディレクトリ直下の index.phpを表示できたはいいが、コントローラーを追加してルーティングを設定したページは404エラーになったので、それの解決方法をメモ。
該当箇所の環境
- Nginx
- Laravel5.7.26
問題の箇所
Route::get('top', 'TopController');
Laravelのルーティングで設定したのにも関わらず、ドメイン/top にアクセスしても404エラー。nginxのログを見るとそんなファイルやディレクトリはないとのこと。
解決方法
どうやら、Nginxのdefault.confでLaravel用の設定を追加で記述していないと、TopControllerではなくtopディレクトリやtopファイルを見ようとしてしまうのが原因だった。
そこで、下記のサイトを参考に、特定のURL以下になるとLaravelのルーティングを優先するようにして、かつサブディレクトリで運用するような設定をNginxのdefault.confに記述した。
5.0 インストール Laravel
Laravel5.7をサブディレクトリで動かす - Qiita
概要ローカルで作成したLaravelアプリを公開サーバーのサブディレクトリに設置して動かそうとしたところ、うまくいかずはまってしまいました。ひとまず、動作するようになったため、設定内容を共有いた…
つーかLaravel 公式ドキュメントにNginxで運用するときの設定方法思いっきり書いてあんじゃん…ということで、公式ドキュメントもちゃんと読もうってオチでした。
コメント