ファイルパーミッションとストレージ
適切なファイルパーミッションはセキュリティと機能の両方において非常に重要です。
必要なパーミッション
| パス | パーミッション | オーナー | 用途 |
|---|---|---|---|
プロジェクトルート(/var/www/feedbackpulse-saas/) | 755 | www-data | アプリケーションファイル |
storage/ | 775 | www-data | ログ、キャッシュ、セッション、アップロード |
storage/app/public/ | 775 | www-data | 公開アップロード(ロゴ、写真) |
storage/framework/cache/ | 775 | www-data | アプリケーションキャッシュ |
storage/framework/sessions/ | 775 | www-data | ユーザーセッション |
storage/framework/views/ | 775 | www-data | コンパイル済み Blade ビュー |
storage/logs/ | 775 | www-data | アプリケーションログ |
bootstrap/cache/ | 775 | www-data | フレームワークブートストラップキャッシュ |
.env | 640 | www-data | 機密設定 |
パーミッションの設定(Linux)
cd /var/www/feedbackpulse-saas
# 所有権の設定
sudo chown -R www-data:www-data .
# ファイル:644、ディレクトリ:755
sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;
# 書き込み可能なディレクトリ
sudo chmod -R 775 storage bootstrap/cache
# .env ファイルの保護
sudo chmod 640 .env
www-dataを置き換えてください:
- Ubuntu の Apache:
www-data- Ubuntu の Nginx:
www-data- CentOS の Apache:
apache- CentOS の Nginx:
nginx- Windows の Laragon:パーミッション変更不要
ストレージシンリンク
Laravel はシンボリックリンクを使用して、storage/app/public/ 内のファイルを Web 経由でアクセスできるようにします:
public/storage -> storage/app/public/
作成方法
php artisan storage:link
確認方法
ls -la public/storage
# 表示例:public/storage -> /var/www/feedbackpulse-saas/storage/app/public
保存されるもの
| ディレクトリ | 内容 |
|---|---|
storage/app/public/logos/ | テナントの会社ロゴ |
storage/app/public/products/ | 製品画像 |
storage/app/public/submissions/ | フィードバックからアップロードされた写真 |
storage/app/public/avatars/ | ユーザープロフィール画像 |
storage/app/public/landing/ | ランディングページのアセット |