Ubuntu - Do not run Composer as root/super user 解决方法

当你使用 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 install / update 时报错
除了 composer.lock,有些时候 www 可能对 vendor 文件夹也没有权限,所以我们把项目的所有者给到 www 用户:

chown www:www /your/project/path/ -R
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个安装 Hyperf 框架的 `yaml` 文件示例: ```yaml stages: - install - start install: stage: install image: docker:latest services: - docker:dind script: - docker run -d --name hyperf -v /mnt/hgfs/www/hyperf/:/hyperf-skeleton -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.11-swoole - docker exec -it hyperf sh -c "cd /hyperf-skeleton && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer && composer create-project hyperf/hyperf-skeleton" artifacts: paths: - /mnt/hgfs/www/hyperf/hyperf-skeleton start: stage: start image: docker:latest services: - docker:dind script: - docker start hyperf - docker exec -it hyperf sh -c "cd /hyperf-skeleton && php /hyperf-skeleton/bin/hyperf.php start" ``` 这个 YAML 文件定义了两个阶段,第一个阶段为 `install`,用于在 Docker 容器中安装 Hyperf 框架及其相关依赖;第二个阶段为 `start`,用于在 Docker 容器中启动 Hyperf 框架。在 `install` 阶段中,我们使用了 `docker` 镜像,在 Docker 容器中执行了 `docker run` 命令来创建 Hyperf 容器,并执行了 `docker exec` 命令来执行安装 Hyperf 框架及其相关依赖的命令。在 `start` 阶段中,我们同样使用了 `docker` 镜像,在 Docker 容器中执行了 `docker start` 命令来启动 Hyperf 容器,并执行了 `docker exec` 命令来启动 Hyperf 框架。在 `install` 阶段中,我们还使用了 `artifacts` 关键字来指定将 Hyperf 框架所在的目录 `/mnt/hgfs/www/hyperf/hyperf-skeleton` 作为构建产物,以便在后续的阶段中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值