Laravelのファイル、フォルダのパーミッション設定
2019年02月18日
Laravelのファイルとフォルダのパーミッション設定についてです。
下記の記事が参考になりました。
ディレクトリに対して権限を変更
sudo find laravel-root-directory -type d -exec chmod 750 {} \;
ディレクトリは750なので、所有者は全部可能、グループは読み実行可能、その他はできない設定
ファイルに対して権限を変更
sudo find laravel-root-directory -type f -exec chmod 640 {} \;
ファイルは640なので、所有者は読み、上書き可能、グループは読みのみ可能、その他はできない設定
最後にストレージとキャッシュの権限を変更
sudo chmod -R 770 laravel-root-directory/storage/ laravel-root-directory/bootstrap/cache/
ストレージ、キャッシュフォルダは所有者、グループは全部可能。その他はできない設定。
webサーバーのApacheをインストールすると作成されるwww-dataをグループに追加する
sudo chown -R myusername:www-data laravel-root-directory
これは、上記はwww-dataグループになっていますが、自分の環境(CentOS、nginx)では、httpdのグループがwwwだったので、以下の設定で上手くいきました。
sudo chown -R myusername:www laravel-root-directory
グループ「www」がphpを自分の環境の場合実行しているので、phpファイルは読み出しのみの設定で問題ありませんでした。
phpファイルの実行権限は、所有者、グループとも読みのみで問題ないんですね。
実行権限が必要なのかなとイメージ的には思っていたのですが。
例えばPerlなんかはCGIで755にするのが一般的でしたが、755ってのは所有者は全部できて、グループユーザが読み、実行権限があるということですもんね・・・。
使っているPHPはPHP-fpmなので、モジュール版ではなくてCGI版なのですが、同じCGIでもPerlとPHP-FPMではパーミッションが違うと、これはややこしい話です・・・。