composer install 报错“failed to open stream: permission denied”是因目录写入权限不足,常见于linux/macos下sudo误用导致vendor属主为root,或windows中onedrive等同步软件锁定文件,应避免sudo、检查目录归属与父目录权限、调整umask、修复~/.composer归属,并在docker中指定uid运行。
Composer install 报错 failed to open stream: Permission denied
这是典型的目录写入权限不足,不是 Composer 本身坏了,而是它想往 vendor/ 或 composer.json 同级目录写文件时被系统拦下了。Linux/macOS 常见于用 sudo composer install 初始化过项目后,普通用户再执行就卡住;Windows 则多因杀毒软件或 OneDrive 同步锁住了文件。
- 别用
sudo composer install(除非你明确知道后果)——这会让vendor/下所有文件属主变成 root,后续普通用户无法修改或更新 - 检查当前目录归属:
ls -ld . vendor/,如果vendor/显示属主是root,直接删掉重来更省事 - Windows 用户重点看
composer.json所在路径是否在 OneDrive、腾讯微云、360保险箱等实时同步/保护目录里,临时退出同步再试
vendor 目录权限修复命令不生效?检查 umask 和父目录权限
单纯 chmod -R u+rw vendor/ 经常无效,因为新生成的文件受系统 umask 控制,且父目录(如项目根目录)若无写权限,子目录 chmod 也白搭。