WordPress建站从入门到弃坑#2

发布于 2021-10-16  88 次阅读


上篇文章主要记录了一些建站前的事前准备。该买的买好了,备案备好了(如果需要的话),域名解析也做好了,那就可以开始动手部署WordPress环境啦。

SSH工具启动,拿主机提供商给出的VPS登录凭据连接到服务器,开整!

首次连接到新入手的VPS时,建议先对VPS的部分系统环境进行了解,并根据实际需求进行适当的调整。

如果只求能用的话,其实这一篇文章是可以跳过的。但我个人还是推荐在有兴趣的情况下做一做,略微增加一点VPS的安全性与运行效果。

1.演示环境

由于手头暂时没有闲置的VPS,暂时也没打算再收一个玩玩,因此本文中的演示环境就用1个已经做好内网DNS解析的vSphere虚拟机代替。虚拟机的硬件配置和上篇文章中提到的最低建议配置一样。

演示环境的部分信息如下:

  • 处理器:1核
  • 内存:1GB
  • 硬盘:20GB
  • 操作系统:Debian 11
  • 演示用域名:blog.demo.local
  • 演示用IP:10.2.3.3

2.系统更新

在开始使用之前,先敲这个命令把系统升级到最新。

apt update && apt upgrade

3.修改主机名与FQDN

除非在购买VPS时手动指定(需要主机提供商支持这种方式),VPS的主机名默认是随机生成的名字。

建议将主机名和FQDN(完全限定域名,可以理解为主机名+域名)修改成实际使用的名称,方便正反向解析。

首先复习一下主机名与域名的关系。就拿本次用来演示的blog.demo.local来说,blog是主机名,demo.local是域名,两者加起来的blog.demo.local即为FQDN。

简单来说,上面提到的“域名”就是先前通过域名注册商进行注册的域名,能够代表归你所有的1组服务器(或其他网络设备);而主机名则是加在域名前面,用一个句点隔开的名称,代表的是归你管的单个服务器(或其他网络设备)。

3.1.修改主机名

主机名可以通过hostnamectl set-hostname <your_hostname>命令来修改。如果要把主机名改成blog,那么可以用这个命令:

hostnamectl set-hostname blog

3.2.修改FQDN

FQDN可以通过编辑hosts文件进行修改。Debian默认使用的编辑器是nano,因此本文中的文本编辑操作将使用nano进行演示。首先使用nano编辑器打开hosts文件:

nano /etc/hosts

Nano的操作方法比较简单,方向键移动光标,鼠标拖动选择特定文本,快捷键实现文件操作。常用快捷键及功能会显示在终端底部。

以演示用IP 10.2.3.3 为例,在hosts文件中把 10.2.3.3 那一行的记录修改成这样。

(IP)            (FQDN)                  (Hostname)
10.2.3.3    blog.demo.local    blog

修改完成后按Ctrl+O并回车保存,然后按Ctrl+X退出编辑器。

3.3.效果测试

操作完成后可以分别通过hostnamehostname -f命令查看验证修改后的主机名和FQDN。

4.创建管理员账号

在Linux中,root账号的权限是非常大的,所以最好不要直接用root账号对操作系统进行管理。

不过嘛毕竟这个只是自己玩玩的博客用VPS,偷懒起见直接用root也不是不可以(笑)。

总之,个人推荐还是创建一个带管理员权限的账号来管理VPS。

4.1.安装sudo

Debian默认没有安装sudo,需要自行通过apt来安装。

apt install sudo -y

4.2.创建账号

sudo安装完成后,通过adduser <your_username>命令创建1个账号。以创建叫master的账号为例,可以用这个命令创建:

adduser master

命令敲完首先需要设置账号的密码并进行确认,接下来的用户信息设置可以一路回车留空。

4.3.赋予管理员权限

账号创建完成后,将其加入sudo组中,即可赋予该账号管理员权限。命令格式是usermod -aG sudo <target_user>还是以给master账号设置管理员权限为例:

usermod -aG sudo master

操作完成后,管理员账号就成功创建了。

4.4.效果测试

可以通过切换账号试一下效果。切换账号的命令是su - <target_user>。以切换到master账号为例,命令如下:

su - master

用管理员账号执行一下sudo apt update命令,如果在输入该账号的密码后命令能正常执行,那么就没问题了。

这篇文章接下来的内容都将以管理员账号进行操作,区别也就在于执行部分需要root权限的命令时得加个sudo。

5.设置SSH密钥登录

除非在购买VPS时上传了自己的SSH密钥(需要主机提供商支持这种方式),VPS默认的登录方式仅有密码登录。

从安全性的角度来考虑,自然还是SSH密钥登录更为安全。不妨自行生成一个SSH密钥并开启密钥登录。

5.1.生成SSH密钥

生成SSH密钥的命令格式是ssh-keygen -t <encryption_type> -P '[your_passphrase]'-t选项的参数是密钥的加密类型,-P选项的参数是密钥的口令(注意口令头尾要有个单引号)。口令可以留空,如果有指定口令的话,那么每次通过密钥登录时还需要输入口令进行验证。

至于要不要设置口令,就见仁见智啦。这次就以使用rsa加密,不设置口令的生成方式为例。命令如下:

ssh-keygen -t rsa -P ''

回车之后会提示设置id_rsa密钥文件的保存位置。默认位置是当前账号家目录(/home/<your_username>/)的.ssh目录下。一般情况下直接回车使用默认位置即可。

密钥创建完成后,使用ls ~/.ssh/命令即可看到生成的id_rsa私钥文件与id_rsa_pub公钥文件。

可以通过SFTP工具把id_rsa私钥文件下载到自己的电脑上。以我用的MobaXterm为例,窗口左侧就是SFTP文件传输栏。

5.2.创建authorized_keys文件

接下来需要在~/.ssh/目录下新建一个authorized_keys文件,存放用于SSH登录的公钥。使用以下命令创建authorized_keys文件并将id_rsa_pub公钥文件的内容直接复制进去。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

5.3.修改文件权限

authorized_keys文件的权限必须为600,不然可能无法正常工作。同时为了安全起见,可以把~/.ssh/目录的权限改成700,防止其他账号读写。

使用以下命令对权限进行修改。

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/

5.4.修改sshd_config文件

需要对SSH服务端的配置文件进行修改,才能启用SSH密钥登录。

/etc/ssh/sshd_config配置文件需要root权限才能编辑,由于这里用的是带管理员权限的账号,所以可以加上sudo来编辑它。

sudo /etc/ssh/sshd_config

要修改的是以下几行。如果行首被井号(#)注释了,那么就把井号给删掉。

# SSH协议默认端口是22,可以考虑换个端口防止脚本小子爆破
Port 22

# 禁止root账号通过SSH登录
PermitRootLogin no

# 允许使用SSH密钥登录
PubkeyAuthentication yes

# 指定SSH密钥位置
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

# 禁用SSH密码登录
PasswordAuthentication no

修改完毕后按Ctrl+O并回车进行保存,然后按Ctrl+X退出。

5.5.重启SSH服务

重启SSH服务使得修改后的配置文件生效。

sudo systemctl restart sshd.service

5.6.效果测试

刚才已经打开的SSH会话不会被强制断开,但是在SSH服务重启后新建的会话就必须使用SSH密钥登录了。

值得注意的是,先前的演示中我只在master账号的家目录生成了~/.ssh/authorized_keys文件,因此能够通过SSH登录的只有这个master账号。即使有第二个带管理员权限的账号,也无法通过相同的id_rsa私钥文件进行SSH登录,原因在于那个账号的家目录不存在~/.ssh/authorized_keys文件。

要测试效果的话,可以尝试各种SSH登录,最后尝试下来应该只有生成了~/.ssh/authorized_keys文件的非root账号才能进行SSH登录。

6.开启BBR

BBR是Google开发的一种拥塞控制算法,可以对服务器的网络进行优化,一定程度上提升网络的性能。

6.1.查看内核版本

BBR功能已经集成在了4.9版本以上的Linux内核中,如果当前内核不低于4.9,就能直接开启BBR功能。

可以通过这个命令查看内核版本。

uname -r

据我所知,Debian 9和Ubuntu 18.04及以上的版本默认内核都不低于4.9,可以直接开BBR,但是CentOS 7的3.x版本内核是肯定要升级的。

6.2.内核版本满足要求的情况

在内核版本大于等于4.9的情况下,可以通过以下命令修改系统变量并保存,直接开启BBR。

sudo bash -c "echo net.core.default_qdisc=fq >> /etc/sysctl.conf"
sudo bash -c "echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf"
sudo sysctl -p

6.3.需要升级内核的情况下

如果内核版本比较低的话就需要升级内核了。升级内核的操作比较复杂,不妨直接用秋水逸冰大佬的脚本一键到位。

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
sudo bash bbr.sh

脚本跑完会提示重启操作系统,输入y回车重启即可。

6.4.效果测试

通过以下命令检测BBR是否正常开启:

sysctl net.ipv4.tcp_congestion_control

如果返回值为net.ipv4.tcp_congestion_control = bbr,则表示BBR已启动。

7.重启VPS

虽说玩Linux最忌没事重启,但是在上述操作搞定后最好还是重启一下。一是让修改后的主机名与FQDN确实生效,二是验证下重启操作系统后配置是否依旧生效。

如果在开启BBR的过程中没有重启过,可以通过以下命令重启操作系统。

sudo reboot

8.个人吐槽

这篇文章大概记录了一些VPS首次启用时的优化(?)操作。

其中部分内容我在搭建电波万事屋的时候根本没有想到过,也是在后面网上冲浪的时候学到的。

本来我的计划是把LEMP的部署以及WordPress的安装也放在这篇文章的,然而光上面这些内容就写了这么多字。

因此决定下篇文章见。(如果还有下篇文章的话……)