【php】PHP项目部署,Composer install Do not run Composer as root/super user!

到线上部署PHP项目的时候,代码copy后,安装依赖Composer install的时候提示,Do not run Composer as root/super user!

好吧,看了官方给的说明文档https://getcomposer.org/root,主要说,防止一些第三方代码,拥有超级管理员的权限来执行一些脚本,神马的。我知道不安全,但我只想先部署上去测试...

安装官方给的说明,添加--no-plugins --no-scripts参数,但是依旧报那个错误。

composer install --no-plugins --no-scripts --no-dev

后面我就添加了一个部署用的账户,为了好分配权限,就分配到了用户组www-data.

useradd www-deploy -g www-data

然后在执行Composer install的时候,切换用户为www-deploy执行.

#执行完成没任何反应(在项目目录,当前目录也有composer.json)

su www-deploy -c "composer install"

#执行下面语句,报错如下

su www-deploy:www-data -c "composer install"

#报错信息

No passwd entry for user 'www-deploy:www-data'

好吧,我就没辙了,我在考虑要不要专门整个www-deploy的用户,用来登录部署项目。

求助下大家,谢谢。

看了些自动化运维工具,例如ANSIBLE,感觉有些功能还是需要Root权限的,比如执行Docker的一些命令(初始化环境,或者添加新的Docker容器,如果不使用sudo会产生安全问题,参考文章),安装一些必备软件。

感觉目前的思路:

代码部署:使用单独的用户:www-deploy
环境搭建:使用root,或者能获得root权限的sudoer

但是说实在感觉不出,比纯root安全性提高在哪里(我能想到的就是部署脚本,只能操作自己home目录里面东西,不用担心,不小心rm -rf /...)。

========== 11-3 16:60 ==========

知道错误在哪了...

composer我写了个shell脚本,忘了把参数带上了

#/bin/composer

php composer.phar $*(忘了加参数了...)

然后新建了一个www-deploy用户:用户组用来部署

添加www-deploy用户:用户组

groupadd www-deploy

useradd www-deploy -g www-deploy -m

#设置www-data到www-deploy用户组

groupdel www-data

usermode -g www-deploy www-data

#文件夹没有x权限,无法cd进去.

chmod 770 `find /home/www-deploy type -d`

chmod 660 `find /home/www-deploy type -f`

设置代码目录所有者有www-data:www-deploy

chown www-data:www-deploy /home/www-deploy/www

回答

你的方向就错了嘛= =你是一只在用root操作服务器?

楼主,不用在意这个提示,稍微等一下,其实是会进行下载和安装的.【php】PHP项目部署,Composer install Do not run Composer as root/super user!

楼主你的问题解决了吗?我也是你这种情况。
新人求帮助
[email protected]

sudo -u www-data composer install

标黄只是警示,其实不影响操作

以上是 【php】PHP项目部署,Composer install Do not run Composer as root/super user! 的全部内容, 来源链接: utcz.com/a/105166.html

回到顶部