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

Laravel Forge/Envoyer权限异常:PHP7.1升级后文件删除与部署故障

解决Forge+Envoyer部署Laravel(PHP7.1)的权限问题

我之前在类似的环境下升级PHP后也碰到过一模一样的权限坑,给你一套彻底解决的方案,不用再每次手动敲chmod救急了:

首先看你的进程信息:php-fpm是以www-data用户运行的,nginx worker是forge用户,部署也是用forge用户——这就是问题根源:两个用户的权限不互通,PHP生成的文件forge操作不了,forge部署的文件PHP可能也没权限,而且新文件不会自动继承正确权限。

1. 让两个用户共享权限组

把www-data加入forge用户组,这样双方都能访问对方生成的文件:

sudo usermod -aG forge www-data

2. 修复现有目录权限+设置自动继承的ACL规则

这一步是核心,既要搞定现有文件,还要确保新生成的文件自动拥有正确权限:

先修复现有文件的所有者和基础权限

# 把项目目录的所有者设为forge用户和组
sudo chown -R forge:forge /home/forge/你的项目路径

# 目录设为775(组内用户有读写执行权限)
sudo find /home/forge/你的项目路径 -type d -exec chmod 775 {} \;

# 文件设为664(组内用户有读写权限)
sudo find /home/forge/你的项目路径 -type f -exec chmod 664 {} \;

设置ACL规则,让新文件自动继承权限

ACL能让目录下新创建的文件/目录自动继承指定的权限,完美解决新上传文件删不了的问题:

# 给bootstrap/cache设置ACL
sudo setfacl -R -d -m u:www-data:rwX -m u:forge:rwX /home/forge/你的项目路径/bootstrap/cache
sudo setfacl -R -m u:www-data:rwX -m u:forge:rwX /home/forge/你的项目路径/bootstrap/cache

# 给storage目录设置ACL
sudo setfacl -R -d -m u:www-data:rwX -m u:forge:rwX /home/forge/你的项目路径/storage
sudo setfacl -R -m u:www-data:rwX -m u:forge:rwX /home/forge/你的项目路径/storage

解释下参数:-d是默认规则(新文件/目录自动继承),rwX是读、写,以及目录的执行权限(大写X只会给目录加执行,文件不会乱加)。

3. 修改Envoyer部署钩子,避免部署后权限重置

Envoyer每次部署都会拉取新代码,可能会重置权限,所以要在部署流程里加个钩子自动修复:
在Envoyer的「Deployment Hooks」里,添加一个钩子(建议放在「Activate New Release」之后),执行以下命令:

chown -R forge:forge {{ release }}
find {{ release }} -type d -exec chmod 775 {} \;
find {{ release }} -type f -exec chmod 664 {} \;
setfacl -R -d -m u:www-data:rwX -m u:forge:rwX {{ release }}/bootstrap/cache {{ release }}/storage
setfacl -R -m u:www-data:rwX -m u:forge:rwX {{ release }}/bootstrap/cache {{ release }}/storage

这样每次部署后,新的release目录都会自动设置好正确的权限和ACL,再也不会出现部署后网站崩溃的情况。

4. 验证效果

现在上传一个新文件到storage目录,尝试删除它——应该不用再手动敲chmod 777了。再部署一次代码,看看bootstrap/cache的权限是否正常,网站也不会崩溃。

为什么之前的临时方案没用?

  • 777是给所有用户全开权限,非常不安全,而且PHP生成的文件默认是www-data所有,下次生成新文件时权限还是默认的644,forge用户没写权限,所以又删不了。
  • 775只解决了现有文件的组权限,但新文件不会自动继承这个组权限,所以治标不治本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:49:58