文件权限与存储
正确的文件权限对安全性和功能性都至关重要。
所需权限
| 路径 | 权限 | 所有者 | 用途 |
|---|---|---|---|
项目根目录(/var/www/feedbackpulse-saas/) | 755 | www-data | 应用文件 |
storage/ | 775 | www-data | 日志、缓存、Session、上传文件 |
storage/app/public/ | 775 | www-data | 公开上传文件(Logo、照片) |
storage/framework/cache/ | 775 | www-data | 应用缓存 |
storage/framework/sessions/ | 775 | www-data | 用户 Session |
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替换为您 Web 服务器的用户:
- 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/ | 租户公司 Logo |
storage/app/public/products/ | 产品图片 |
storage/app/public/submissions/ | 反馈中上传的照片 |
storage/app/public/avatars/ | 用户头像 |
storage/app/public/landing/ | 落地页素材 |
磁盘空间管理
监控磁盘使用
# 检查整体磁盘使用情况
df -h
# 检查 FeedbackPulse 存储使用情况
du -sh storage/app/public/
du -sh storage/logs/
du -sh storage/framework/cache/
日志轮转
Laravel 日志可能会变得很大,请配置日志轮转:
sudo nano /etc/logrotate.d/feedbackpulse
/var/www/feedbackpulse-saas/storage/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
copytruncate
}
清除缓存
cd /var/www/feedbackpulse-saas
# 清除应用缓存
php artisan cache:clear
# 清除编译后的视图
php artisan view:clear
# 清除路由缓存
php artisan route:clear
# 清除配置缓存
php artisan config:clear
# 一次性清除所有
php artisan optimize:clear