You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS EC2部署Laravel应用遇存储权限问题求助

解决Laravel在AWS EC2上的存储目录访问错误

1. 确认Web服务器运行用户

AWS EC2不同系统的Web服务器用户存在差异,先核实当前运行用户:

  • Apache(Amazon Linux/CentOS):执行 ps aux | grep httpd,用户通常为apache
  • Nginx(Ubuntu):执行 ps aux | grep nginx,用户通常为www-data或nginx

2. 递归设置目录所有者与组

将storage和bootstrap/cache目录的所有者递归改为Web服务器用户(以Apache的apache用户为例,若为其他用户则替换):

sudo chown -R apache:apache /path/to/your/laravel/storage
sudo chown -R apache:apache /path/to/your/laravel/bootstrap/cache

3. 递归设置正确的文件/目录权限

Laravel要求目录具备执行权限(用于遍历),文件具备读写权限,用以下命令递归配置:

# 处理storage目录
sudo find /path/to/your/laravel/storage -type d -exec chmod 755 {} \;
sudo find /path/to/your/laravel/storage -type f -exec chmod 644 {} \;

# 处理bootstrap/cache目录
sudo find /path/to/your/laravel/bootstrap/cache -type d -exec chmod 755 {} \;
sudo find /path/to/your/laravel/bootstrap/cache -type f -exec chmod 644 {} \;

4. 修复SELinux限制(AWS EC2常见问题)

AWS EC2默认开启SELinux,即使权限配置正确也会阻止Web服务器访问目录:

  1. 检查SELinux状态:执行 sestatus,若显示Enforcing则需处理
  2. 设置目录SELinux上下文(永久生效):
sudo chcon -R -t httpd_sys_rw_content_t /path/to/your/laravel/storage
sudo chcon -R -t httpd_sys_rw_content_t /path/to/your/laravel/bootstrap/cache
  1. 若需临时测试(不推荐永久关闭):执行 sudo setenforce 0,验证正常后再设置上下文

5. 验证Laravel基础配置

确保.env文件中APP_KEY已生成(未生成则执行 php artisan key:generate),且config/filesystems.php中的磁盘配置指向正确的存储路径。


内容的提问来源于stack exchange,提问作者Bala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:52:38