纯干货!本教程使用 VPS + LNMP 教你在 1~2h 内快速搭建 WordPress 网站。

以前我看到其他人搭建的网站,觉得非常高大上,自己也就逐渐萌生了建站的冲动。但在网上搜寻许久,也没有找到完全合适的建站教程。遇上各种问题,再去逐一解决,服务器都重装了好几遍。最后在不懈努力之下,终于成功了。

本教程详细记录了整个建站过程,希望能帮到大家!

1 购买 VPS 服务器

1.1 服务器的选择

搭建网站的第一步即是自己搭建一台 VPS 服务器,那么到底应该选择哪一个 VPS 平台呢?我推荐的是 Vultr。就目前而言我认为只有这一家最适合准备入坑的小白。为什么这么说?它有几大优势:

便宜。 再好的服务器,若是价格太高,对刚入门的小白来说都会觉得有些难以接受,而 Vultr 最低售价仅 $2.5 / 月(仅支持 ipv6 ),不过我建议选择 $3.5 / 月及以上套餐,除非你的设备支持 ipv6 网络访问。不论怎么说这个价格其实还是很不错的,并且支持支付宝和微信付款,可以说对国人很友好了。

方便地添加、删除服务器。 Vultr 每添加一个服务器,最低仅收取 $0.01,而且可以随时删除、重建,十分简便。而且它的数据中心多达 16 个,其中包括最受欢迎的日本和美国节点。

优惠活动多。 Vultr 经常会发布一些免费获得金额抵用券的活动,如最近的关注推广活动(须先注册账号)可直接获得 $3 抵用券。

1.2 服务器的搭建

Vultr 注册账号(避免开启任何翻墙工具,否则有账号被禁的风险),由于需要先充值才可以创建 VPS,先前往 Billing 支付。

回到 Servers 页面,点击右侧的 + 添加一个服务器,选好之后直接点击 Deploy Now 即可。

注意:本教程搭建网站的操作全部基于 Ubuntu 操作系统。

1.3 服务器的检测

在 Windows 中运行 cmd

> ping {ip_address}  # 先测试服务器是否可以连上,如果不行请更换服务器

Pinging {ip_address} with 32 bytes of data:
Reply from {ip_address}: bytes=32 time=208ms TTL=49
Reply from {ip_address}: bytes=32 time=207ms TTL=49
Reply from {ip_address}: bytes=32 time=208ms TTL=49
Reply from {ip_address}: bytes=32 time=206ms TTL=49

Ping statistics for {ip_address}:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 206ms, Maximum = 208ms, Average = 207ms
> ssh [email protected]{ip_address}  # 连接 VPS
The authenticity of host '{ip_address} (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is SHA256:{SHA256_key}.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '{ip_address}' (ECDSA) to the list of known hosts.
[email protected]{ip_address}'s password:

注意:输入密码时不会显示!

登入 VPS 后第一件事是赶紧修改密码:

$ passwd  # 修改密码
New password: 
Retype new password: 
passwd: password updated successfully

至此,服务器已配置完毕!

2 域名的注册与解析

有了搭建网站的平台,下一步就是注册属于自己的域名了。所谓的域名,也就是网址,比如我的网站 cyh.me 就是一个域名,其中 me 是一级域名,不同的一级域名价格不一;cyh 是二级域名,是我们自主选择的对象;www 是常用的三级域名,可根据自己的需求随意调整,甚至可以选择不使用。具体选择怎样的搭配完全是个人的喜好。

2.1 注册域名网站的选择

在国内注册的域名,都需要实名备案。为了省去这一麻烦,我建议选择国外的域名商。

注意:各种一级域名价格不一,可以前往 TLD List 查询,建议主要关注续费价格和是否支持免费隐私保护。

2.2 解析域名

何为解析域名?简单来说就是把我们注册的域名指向我们的服务器 ip 地址,当用户访问网站时,实际上是用户电脑与网站对应的服务器建立连接传递数据的。因此我们现在需要做的工作就是把刚刚注册的域名解析到之前搭建的服务器上,而这个解析工作需要依靠专门的域名解析服务器(DNS 服务器)来完成。

CDN 加速又是什么?在用户访问网站时,需要与服务器建立连接,如果服务器就在身边,那么访问速度自然能大大加快,CDN 加速便是为了实现这一点。使用后,我们的服务器就可以把网站内容缓存在 CDN 节点中,由此便能加快访问速度,此外由于使用了 CDN 节点,我们的服务器 ip 地址也会被隐藏,让网站更加安全。

我推荐使用 Cloudflare 的解析服务。它提供付费版的服务,但我们实际上使用免费的就已经足够了。另外 Cloudflare 还提供免费的 CDN 加速。还有一点,Cloudflare 提供免费的 SSL 证书,省去自己操作的困难,同时也可以进一步加强网站的安全性。

打开 Cloudflare 注册后进入控制面板,添加域名,选择 FREE 套餐就可以了。之后会自动扫描你的域名的 DNS 地址,并提供 Cloudflare 自己的 Nameservers,如果没有看到提供的地址,可以回到控制面板,发现刚刚添加的域名已经出现了,点击进入,在最上方选择 DNS,然后向下寻找 Cloudflare Nameservers,记住两个 Value 值。

接下来进入自己的域名管理界面,把域名的 Nameservers 修改成上面给出的两个。官方称等待修改完全生效可能需要长达 48h,但根据测试一般而言 10min 以内就已经生效了。

回到 Cloudflare 控制面板的 DNS 界面,填写域名和 ip 地址,如果需要开启 CDN 服务则需要将右侧的云点亮。至此,DNS 配置结束!

2.3 检查解析结果

最后,建议检查一下自己的域名是否已经完成了解析并配置好了 CDN 加速。

打开 cmd,输入:

> ipconfig /flushdns  # 清除 DNS 缓存

> nslookup -qt=ns cyh.me  # 查询 NameServer 记录
Server:  localhost
Address:  ::1

Non-authoritative answer:
cyh.me  nameserver = jay.ns.cloudflare.com
cyh.me  nameserver = ada.ns.cloudflare.com

如果出现类似上面这种 xxx.cloudfare.com 的地址,就表示配置成功了。

3 使用 LNMP 环境建站

所谓 LNMP,指的是 Linux(操作系统)、Nginx(HTTP 服务器),MySQL(数据库软件) 和PHP(有时也是指 Perl 或 Python)的第一个字母,主要用来建立 web 应用平台。

3.1 搭建 LNMP 环境

本教程使用是 LNMP 一键安装包来完成安装,基本上是全自动的,省心不少。

使用 ssh 连上服务器后输入:

$ apt update
$ apt upgrade
$ tmux new -s lnmp
$ wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

进入安装界面后选择配置,需要注意内存小于 1G 的服务器 MySQL 只能选择 5.5.62 或更低版本

You have 11 options for your DataBase install.
1: Install MySQL 5.1.73
2: Install MySQL 5.5.62 (Default)
3: Install MySQL 5.6.44
4: Install MySQL 5.7.26
5: Install MySQL 8.0.13
6: Install MariaDB 5.5.63
7: Install MariaDB 10.0.38
8: Install MariaDB 10.1.40
9: Install MariaDB 10.2.24
10: Install MariaDB 10.3.15
0: DO NOT Install MySQL/MariaDB
Enter your choice (1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or 0): 2

Please setup root password of MySQL.
Please enter: {root_password}
MySQL root password: {root_password}

Do you want to enable or disable the InnoDB Storage Engine?
Default enable,Enter your choice [Y/n]: Y

You have 9 options for your PHP install.
1: Install PHP 5.2.17
2: Install PHP 5.3.29
3: Install PHP 5.4.45
4: Install PHP 5.5.38
5: Install PHP 5.6.40 (Default)
6: Install PHP 7.0.33
7: Install PHP 7.1.30
8: Install PHP 7.2.19
9: Install PHP 7.3.6
Enter your choice (1, 2, 3, 4, 5, 6, 7, 8 or 9): 9

You have 3 options for your Memory Allocator install.
1: Don't install Memory Allocator. (Default)
2: Install Jemalloc
3: Install TCMalloc
Enter your choice (1, 2 or 3): 1
You will install not install Memory Allocator.
                                                                     
Press any key to install...or Press Ctrl+c to cancel

接下去等待安装完成即可,整个过程预计持续时间 30min ~ 1h,程序的最后会检查各部分是否正常安装,正常结果如下:

============================== Check install ==============================
Checking ...
Nginx: OK
MySQL: OK
PHP: OK
PHP-FPM: OK

...

Install lnmp V1.6 completed! enjoy it.

这个时候在浏览器中输入服务器 ip 地址,可以看到 LNMP 安装成功的欢迎界面:

3.2 添加域名

接下来一步是将自己的域名添加到 LNMP 中,为网站的正式上线作铺垫。

$ lnmp vhost add

...

Please enter domain(example: www.lnmp.org): example.com
 Your domain: example.com
Enter more domain name(example: lnmp.org *.lnmp.org): 
Please enter the directory for the domain: example.com
Default directory: /home/wwwroot/example.com: 
Virtual Host Directory: /home/wwwroot/example.com
Allow Rewrite rule? (y/n) y
Please enter the rewrite of programme, 
wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2 rewrite was exist.
(Default rewrite: other): wordpress
You choose rewrite: wordpress
Enable PHP Pathinfo? (y/n) y
Enable pathinfo.
Allow access log? (y/n) y
Enter access log filename(Default:example.com.log): 
You access log filename: example.com.log
Create database and MySQL user with same name (y/n) y
Enter current root password of Database (Password will not shown): 
OK, MySQL root password correct.
Enter database name: {datebase_name}
Your will create a database and MySQL user with same name: {datebase_name}
Please enter password for mysql user {datebase_name}: {web_password}
Your password: {web_password} 

Add SSL Certificate (y/n) y
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2
It will be processed automatically.

Press any key to start create virtul host...

3.3 安装 WordPress

WordPress 是一个以 PHP 和 MySQL 为平台的自由开源的博客软件和内容管理系统。它的优势在于可定制性高,有大量已有的网页模板,更重要的是它有数量庞大的插件支持。数据统计表明,截至 2018 年 4 月,排名前 1000 万的网站超过 30.6% 使用 WordPress,超过 7000 万个站点都在使用它。

下面我们就来安装:

$ cd /home/wwwroot/example.com/
$ wget https://cn.wordpress.org/latest-zh_CN.tar.gz  # 下载最新版的中文 WordPress
$ tar -zxvf latest-zh_CN.tar.gz
$ mv wordpress/* .  # 注意不要把最后一个"."忘了
$ rm -rf wordpress latest-zh_CN.tar.gz
$ chown -R www:www /home/wwwroot/*/*  # 赋予权限

这样就安装完成了,在浏览器中输入域名,按提示进行配置即可。