CentOS 上 Laravel 权限设置要点
一 运行身份与一致性
systemctl restart nginx php-fpm。二 目录与文件权限基线
# 项目根目录(按需收紧,避免过度放权)
find /var/www/laravel -type d -exec chmod 755 {} \;
find /var/www/laravel -type f -exec chmod 644 {} \;
# 必须可写的目录
chgrp -R nginx storage bootstrap/cache
chmod -R ug+rwx storage bootstrap/cache
# 敏感文件
chmod 600 /var/www/laravel/.env
三 SELinux 与系统安全上下文
getenforce(常见为 Enforcing 或 Permissive)。在 Enforcing 下,需为 Web 目录设置正确的安全上下文,否则即使权限正确也会被拒绝访问。# 只读内容
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/laravel(/.*)?"
# 需要写入的路径
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/laravel/storage(/.*)?"
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/laravel/bootstrap/cache(/.*)?"
# 应用上下文
sudo restorecon -R /var/www/laravel
sudo setenforce 0(永久修改在 /etc/selinux/config)。生产环境应保留 Enforcing 并通过策略放行。四 上传与软链接的正确配置
php artisan storage:link
五 快速排查清单