虽然说是无侵入的部署工具,但是还是需要我们来做一些微小的配置的,因为出于安全考虑,我们一般不会开发 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 的用户操作就结束了,接着你需要检查以下配置: