Composer报错“Permission denied”是因当前用户对vendor/或项目目录无写权限,常见于sudo创建项目、文件复制保留root权限、误用chown或umask过严;应确认用户组后执行sudo chown -R $USER:$GROUPS .修复。
Composer 报错 failed to open stream: Permission denied,基本就是当前用户对目标目录(通常是 vendor/ 或 composer.json 所在目录)没有写权限,不是 Composer 本身坏了。
为什么 composer install 或 composer update 突然报权限错误?
常见于以下几种情况:
- 项目目录是用
sudo composer create-project创建的,导致vendor/所有者变成root,后续普通用户执行命令时无法覆盖 - 项目从其他机器或 Docker 容器复制过来,文件保留了原始 UID/GID,与当前系统用户不匹配
- 使用了
chown -R root:root .之类的误操作,把整个项目设成了只读 - 某些 Linux 发行版(如 Ubuntu)默认启用
umask 022,但若环境里被改成027或更严格,新建目录可能不带组/其他用户写权限
快速检查并修复目录权限
先确认出问题的路径 —— 错误信息里一般会带具体文件,比如:failed to open stream: Permission denied in /path/to/project/vendor/autoload.php。重点看 vendor/ 和项目根目录。