CentOS 7安装Laravel执行composer install出现权限报错怎么解决
这个报错本质是执行composer install命令的用户,对当前Laravel项目目录没有写入权限,无法生成或更新composer.lock文件,可按以下方案排查解决:
解决方案
- 方案1:修改项目目录归属(生产环境首选,安全性最高)
CentOS 7中默认Apache运行用户为apache,Nginx常用运行用户为nginx或www,执行如下命令修改项目目录的所有者,将<web运行用户>、<你的项目目录路径>替换为实际值:
chown -R <web运行用户>:<web运行用户> <你的项目目录路径>
修改完成后切换到对应web用户执行composer命令即可,示例(以apache用户为例):
su - apache -s /bin/bash -c "cd <你的项目目录路径> && composer install"
- 方案2:临时开放目录写入权限(仅适合本地开发测试环境)
如果是个人开发环境不需要严格权限管控,可以直接给当前目录授予读写权限:
chmod -R 755 <你的项目目录路径> # 若仍报错可临时开放777权限,执行完命令后建议立刻改回755,生产环境禁止使用777权限 chmod -R 777 <你的项目目录路径>
- 方案3:清理旧的锁文件
如果之前曾用root用户执行过composer相关命令,会生成root所有者的composer.lock文件,普通用户无修改权限,可先删除旧锁文件再重新执行安装:
cd <你的项目目录路径> rm -f composer.lock composer install
注意事项
生产环境禁止直接使用root用户执行composer命令,也禁止给项目目录设置777全局可写权限,会引发严重的网站安全风险。
内容的提问来源于stack exchange,提问作者Nawraa Ali
相关产品推荐
相关产品推荐

