deployer服务器端的配置

虽然说是无侵入的部署工具,但是还是需要我们来做一些微小的配置的,因为出于安全考虑,我们一般不会开发 root 用户的 SSH 登录,而是使用其它用户,比如 Ubuntu 默认的 ubuntu 用户。
我们 Deployer 是用来部署 web 应用的,所以我们也专门创建一个用户来做这件事情比较好:

$ sudo adduser deployer
# 密码什么的,按提示操作即可

我们的 web 项目通常需要一些上传,或者缓存写入这样的操作,所以 deployer 还需要有权限对目录进行修改,比如 Laravel 的 storage 目录需要可写权限,这里以 nginx 默认的用户组 www-data 举例,如果你修改过用户或者组名请对应修改下面的命令里的 www 用户组:

$ sudo usermod -aG www-data deployer

我们通常需要将deployer 用户权限分别设置为创建文件 644 与目录 755,这样一来,deployer 用户可以读写,但是组与其它用户只能读:

$ su deployer # 切换到 deployer 用户
$ echo "umask 022" >> ~/.bashrc
$ exit # 退出

我们需要将 depoloyer 用户加到 sudoers 中:

$ vim /etc/sudoers
# 在最后加入
deployer ALL=(ALL) NOPASSWD: ALL
# 保存并退出

接下来要对我们的 web 根目录授权,假设我们的 web 服务的根目录在 /var/www/ 下,那么需要将这个目录的用户设置为 deployer ,组设置为 www 用户 www-data:

$ sudo chown deployer:www-data /var/www/html # 最后这里不要加斜线哦

为了让 deployer 用户在 /var/www/html 下创建的文件与目录集成根目录的权限设定(用户:deployer,组:www-data),我们还需要一步操作:

$ sudo chmod g+s /var/www/html

OK,Deployer 的用户操作就结束了,接着你需要检查以下配置:

  1. 确认 php 的可执行文件在全局 PATH 中,或者你手动添加到 deployer 用户目录的 .bash_profile PATH 中也可,使用命令确认(登录用户 deployer 后执行):php -v,如果报错的话,一般建议是将 php 的 bin 文件软链接到 /usr/local/bin/(推荐) 或者/usr/bin/ 下。
  2. 同样检查你的 Deployer 任务清单所需要用到的其它命令,比如 npm,nginx,composer 都在 deployer 用户下可以使用,否则在部署的时候会出错。
posted @ 2018-12-13 10:29  王东波  阅读(62)  评论(0编辑  收藏  举报