Laravel Storage のPermission denied

環境

Laravel 6.x、CentOS7.x、Apache2.4、PHP7.3

現象

基本設定と思いますが、storage/public を public/storage としてシンボリックリンクしました。storageもstorage直下にも777付与しても、group権限にapacheも含めても駄目。public/img などのファイルは普通に開ける。public/storage配下のファイルだけPermissionエラーで開けないorz

原因

シンボリックリンクの作り方による権限の問題のようでした。最初は、シンボリックリンクを絶対パスで作成していたことが原因のようです。絶対パスに含まれる上位ディレクトリの権限で注意されているように思われます。

対応

シンボリックリンクを相対パスで作り直しました。リンク先の情報が異なる以外権限部分の情報はどちらも777ですが、相対パスだと関連するディレクトリ配下のみで権限判断しているのだと思います。

Author: jester