お世話になります。
Laravel8を導入後、中身はデフォルトのまま触らず、route:cacheをしたのちにhome(/)にアクセスしようとするとエラーが発生します。
404にもなりません。
ローカル環境でhttp://localhost/APP_NAME/public/とアクセスした場合は問題なく動いています。
本番サーバ内ではLaravelを非公開領域に置き、wwwルートディレクトリ内にLaravelのpublicへのシンボリックリンクを貼り付ける形で運用しているんですが、この状況でのみ発生しているようです。
発生している問題・エラーメッセージ
1. composer create-project laravel/laravel APP_NAME --prefer-dist 2. cd APP_NAME の後に php artisan route:cache 3. sudo ln -s /var/hogehoge/APP_NAME/public /var/hogehoge/www/APP_LINK 1,2,3実行後に http://example/APP_LINK/ へアクセスすると405エラー (route:clearをするとアクセス可能になる)
HTTP 405 Method Not Allowed Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: The GET method is not supported for this route. Supported methods: HEAD. in file /var/hogehoge/APP_NAME/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php on line 117
試したこと
本番サーバでのトラブルなので、Linux初心者ながらパーミッション絡みかと思い、
「chmod -R 777 APP_NAME」としてみましたが解決しませんでした。
また、上記にもある通りサーバ上でのエラー発生を確認後、route:clearを行うとこの問題は解消されます。
逆にローカル環境でroute:cacheした場合には問題は再現しません。
というよりも、シンボリックリンクを使っていない環境だと再現しないようです。
その他、適当にルーティングを追加してそのURLにアクセスする場合も問題ありませんでした。
・publicへのシンボリックリンクを貼っている
・route:cacheを行う
・home(/)へのアクセス
の条件が揃った場合に発生するのだと推測しています。
LinuxもLaravelも経験が浅く、自分の力だけでは限界だと思い、質問させていただきました。
どうぞよろしくお願いします。
エラーの発生するサーバ環境
Laravel Framework 8.19.0
Composer version 2.0.8
Apache/2.4.6 (CentOS) PHP/7.4.13
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。