当你使用 root 用户运行 composer 命令时,会出现以下提示。
既然 root 用户不让执行,那我们就切换到 www 用户:
sudo su - www -s /bin/bash
进入项目根目录,即 composer.json 所在的目录:
cd /your/project/path/
为提高效率,通常在使用 composer 前更换阿里镜像源:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
更换完后,查看 composer 配置:
composer config -l -g
如果配置中有下面的这行信息,则表示更换成功:
[repositories.packagist.org.url] https://mirrors.aliyun.com/composer/
最后执行:
composer install
或
composer update
补充:www 用户的权限较低,在进行换源和 install / update 时可能会报 Permission denied,这时要把没有访问权限的目录的所有者给到 www,下面是两个我遇到的问题及对应的解决方案:
1、换源时报错
换源时要向 /home/www/.config/composer/config.json 进行写入,所以我们把 /home/www/ 目录递归给 www 用户:
chown www:www /home/www/ -R
2、composer install / update 时报错
除了 composer.lock,有些时候 www 可能对 vendor 文件夹也没有权限,所以我们把项目的所有者给到 www 用户:
chown www:www /your/project/path/ -R