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

 犹豫的海波V5_697 发布于 2022-11-29 09:29

到线上部署PHP项目的时候,代码copy后,安装依赖Composerinstall的时候提示,DonotrunComposerasroot/superuser!

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

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

composerinstall--no-plugins--no-scripts--no-dev

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

useraddwww-deploy-gwww-data

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

#执行完成没任何反应(在项目目录,当前目录也有composer.json)suwww-deploy-c"composerinstall"#执行下面语句,报错如下suwww-deploy:www-data-c"composerinstall"#报错信息Nopasswdentryforuser'www-deploy:www-data'

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

求助下大家,谢谢。

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

感觉目前的思路:

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

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

==========11-316:60==========

知道错误在哪了...

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

#/bin/composerphpcomposer.phar$*(忘了加参数了...)

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

添加www-deploy用户:用户组groupaddwww-deployuseraddwww-deploy-gwww-deploy-m#设置www-data到www-deploy用户组groupdelwww-datausermode-gwww-deploywww-data#文件夹没有x权限,无法cd进去.chmod770`find/home/www-deploytype-d`chmod660`find/home/www-deploytype-f`设置代码目录所有者有www-data:www-deploychownwww-data:www-deploy/home/www-deploy/www
1 个回答
  • 你的方向就错了嘛==你是一只在用root操作服务器?

    2022-11-29 10:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有