购买并初始化 VPS
Last updated
Last updated
部署 Rails app 前,需要购买并初始化 VPS。
到阿里云或者其他 VPS 服务器提供商(例如 Vultr.com)注册账号(使用我的推广链接注册我可以获得一些优惠券和返利),并购买 VPS。
配置至少 1 CPU 2 GB 内存,不然部署的时候编译静态资源可能不够内存而导致部署失败。操作系统选 Ubuntu 18.04 64位。
创建好 VPS 后,服务器提供商的网页界面会提供初始的服务器 IP、登录用户名和密码。
假设我们用于部署 rails app 的新用户名是 deploy
。后续会把这个 deploy
用户写到 Capistrano 的部署脚本里。
根据提示输入密码等信息。然后在命令行输入 sudo visudo
为 deploy 用户设置 sudo 权限。visudo
命令会打开 /etc/sudoers
文件,找到下方那一行内容。
在其后新增一行配置,先按 CTRL+O
,然后按 CRTL+X
保存文件并退出编辑。
这里编辑 /etc/sudoers
文件一定得通过 sudo visudo
命令来进行。因为文件的开头有一个温馨提示:
如果你通过其他编辑器来修改 /etc/sudoers
文件并且出错了,那就没办法修正错误了,因为你再也没权限编辑这个文件。
然后新开一个 terminal 窗口,执行下面的命令确保新用户可以登录。
首先确保本地电脑有 ssh public key ~/.ssh/id_rsa.pub
,没有的话参考 Generating a new SSH key and adding it to the ssh-agent 创建一个。在本地生成 ssh public key 后执行下面命令将其添加到服务器的 /home/deploy/.ssh/authorized_keys
文件。
此时会要求输入步骤 2 创建 deploy 用户时设置的密码。成功后再次 ssh deploy@your-server-ip
登录服务器就不用再输入密码了。
登录服务器,编辑 /etc/ssh/sshd_config
文件,禁止 root 用户登录和用密码方式登录,增加 ssh 登录的安全性。查看文件,对照着修改以下配置项。
最后在文件末尾增加以下内容,允许 deploy 用户登录。
保存后执行以下命令修改 authorized_keys
文件权限。
重启 sshd。
注意:这时候先不要在当前 terminal 退出服务器的登录,需要新开一个 terminal 窗口再次登录服务器,能成功登录则表示修改没问题。不能登录的话就是配置有误,需要在上一个已登录的 terminal 将配置修改正确后,才能退出服务器登录。不然就没办法再次登录服务器了。
执行 locale
命令检查服务器区域设置。如果不是 en_US.UTF-8
,就执行下面命令修改。
最后更新 OS 的软件。
虽然经过上述步骤后,ssh deploy@your-server-ip
可以登录服务器了,但是 IP 地址确实是不好记忆。可以编辑本地的 ~/.ssh/config
文件,加入以下内容,就可以用 ssh deploy-demo
来登录服务器了。