温馨提示×

linux laravel如何权限设置

小樊
43
2026-10-12 23:43:42
栏目: 智能运维

在 Linux + Laravel 项目中,权限设置主要涉及 目录/文件权限、拥有者(owner)、以及 storage / bootstrap-cache 可写 等几个方面。下面给你一个实用、安全、常见的权限配置方案。


一、Laravel 需要可写的目录

Laravel 以下目录必须 Web 服务用户可写:

storage/
bootstrap/cache/

常见需写操作:

  • 日志:storage/logs
  • 缓存:storage/framework/cache
  • 会话:storage/framework/sessions
  • 视图缓存:storage/framework/views

二、确定 Web 服务用户

不同环境用户不同:

环境 用户
Apache www-data
Nginx + PHP-FPM www-data 或 php-fpm
本地开发 当前用户

查看 PHP 运行用户:

ps aux | grep php-fpm

三、推荐权限设置(最常用 ✅)

1️⃣ 设置目录拥有者

假设 Web 用户是 www-data,你的用户名是 ubuntu:

sudo chown -R ubuntu:www-data /var/www/laravel

含义:

  • 文件归你(方便开发)
  • 组是 web 服务(可写)

2️⃣ 设置目录权限

sudo find /var/www/laravel -type d -exec chmod 2755 {} \;
sudo find /var/www/laravel -type f -exec chmod 644 {} \;

说明:

  • 2755:目录,组可写
  • 644:文件,安全

3️⃣ 单独设置可写目录

sudo chmod -R 775 storage bootstrap/cache
sudo chown -R ubuntu:www-data storage bootstrap/cache

四、最简单粗暴(不推荐生产)

sudo chmod -R 777 storage

❌ 安全风险大,仅本地测试可用


五、SELinux 情况(CentOS / Rocky)

如果是 CentOS 并启用 SELinux:

sudo setsebool -P httpd_read_user_content 1
sudo chcon -R -t httpd_sys_rw_content_t storage

六、部署后常见错误

❌ The stream or file could not be opened

原因:日志目录无写权限

解决:

sudo chmod -R 775 storage/logs

七、推荐生产安全方案 ✅

  • 不使用 777
  • Web 用户只拥有必要目录
  • 使用 php artisan cache:clear 等命令时用 sudo -u www-data

如果你愿意,可以告诉我:

  • 系统(Ubuntu / CentOS)
  • Web 服务(Nginx / Apache)
  • 是否生产环境

我可以给你精确命令。

0 踩