从零开始,手把手教你如何搭建个人博客。超详细~

0. 前言

本篇文章会从零开始,手把手教你如何在 Debian 10 系统上,基于 LEMP 套件和 wordpress 平台搭建属于你自己的个人博客。

 
本文凝聚了作者的心血,把踩过的无数坑一字一句地汇聚于此。这将会是你能找到的最详细的中文搭建博客教程,看这一篇就够了~

 
请把它分享出去吧 😉

 

Tips
  • 红色的文字一般用来强调
     
  • 橙色的文字用来代替你需要自己修改的部分
     
  • 蓝色的文字用来表示 linux 命令
     

1. 获取一个自己的服务器和域名

搭建个人博客的第一步,是要有一个属于自己的服务器,或者虚拟服务器,以及一个域名。

 
如果你已经有了服务器,请确保其系统是 Debian 10,以适配接下来的教程。

 
如果你还没有自己的服务器或域名,可以参照这篇文档购买,并顺便完成一些基本设置。

2. 安装 LEMP 套件

LEMP 套件用来服务动态网页以及网络应用。LEMP 是一个缩写:Linux 操作系统,用 ENginx 作为网页服务器。后端数据储存在 MariaDB 数据库中,并用 PHP 负责动态处理。

 
虽然这个套件中一般使用 MySQL 作为数据库管理系统,但在一些 Linux 发行版(包括 Debian)中,会使用 MariaDB 作为它的替代版。

 
在本节中,我们会在 Debian 10 系统中安装 LEMP 套件,并用 MariaDB 作为数据库管理系统。

 
经过第一节,我们已经有了一个自己的服务器,并完成了一些基础设置。 现在,请使用 ssh 命令,用你自己创建的带有 sudo 权限的用户远程登录进服务器,并继续我们的教程。

1. 安装 Nginx 网页服务器

首先我们使用 apt 命令更新服务器依赖,然后安装 nginx:

sudo apt update
sudo apt upgrade
sudo apt install nginx

 
在 Debian 10 系统中,Nginx 在安装后会自动运行。

 
因为在上个章节中我们配置了 ufw 防火墙,现在我们要允许 Nginx 的连接。目前我们还没有配置 SSL 证书,因此当前只需要允许端口 80 的 HTTP 通信即可:

sudo ufw allow 'Nginx HTTP'

 
我们可以使用如下的命令来验证配置的改变:

sudo ufw status

 
输出如下所示,可见 HTTP 通信已被允许:

# Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

 
现在,我们在浏览器的地址栏里键入 http://your_domain_or_IP,若出现如下 Nginx 默认页面,则说明安装成功。(请注意,上文中的 your_domain_or_IP 需要替换成你自己服务器的 ip 地址或域名)

2. 安装 MariaDB

现在我们已经安装了网页服务器并成功运行,现在我们需要安装一个数据库系统,来储存和管理网站的数据。

 
安装 MariaDB,可运行如下命令:

sudo apt install mariadb-server

 
当安装结束后,推荐运行一个跟随 MariaDB 一起安装的安全脚本。这个脚本会去除一些不安全的默认设置,并且锁定对数据库系统的读取。用以下命令来运行可交互脚本:

sudo mysql_secure_installation

 
这个脚本会弹出一系列的问题,引导你修改一些 MariaDB 的配置。

  • database root 密码。请不要将这个密码和系统的 root 密码混淆。database root 用户是一个对数据库系统拥有完全管理员权限的用户。因为我们刚刚安装数据库,还没有进行任何修改,所以密码是空白。因此只需要按下 ENTER 即可。

 

  • 下一个弹出的问题是询问时候需要设置一个 database root 密码。因为 MariaDB 会对 root 用户使用一种特殊的鉴权方法,此方法比设置一个密码要更加安全,所以我们在这里不需要设置密码。按下 N 然后按下 ENTER

 

  • 接下来的所有问题都可以按下 Y 然后按下 ENTER 来接受默认设置。这将去除匿名用户,去除测试数据库,禁止远程 root 登录,以及立即载入新的配置。

 
当完成上述配置后,使用如下命令来登录 MariaDB:

sudo mariadb

 
这将使我们作为 root 用户连接进 MariaDB。我们会看到如下的输出:

# Output
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 74
Server version: 10.3.15-MariaDB-1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

 
注意,上方我们用 root 用户连接进入的时候并没有提供密码,这就是因为特殊的鉴权方式导致的,具体原理不做赘述。

 
但出于安全所需,我们还是要单独创建一个账户。如下我们会创建一个名为 example_database 的数据库,和一个名为 example_user 的用户。你可以自己自由定义这两个名字,但请务必记住此处你做的改动。

 
在 MariaDB 的控制行里输入如下命令:

MariaDB [(none)]>  CREATE DATABASE example_database;

 
接着,创建一个新用户,并给它赋予刚刚创建数据库的完全权限。如下命令定义了这个用户的密码 password,你可以自己定义密码,但同样请务必记住

MariaDB [(none)]>  GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

 
注意,上述命令中的 localhost 不要做改动。

 
现在刷新一下权限来保证它们在当前的控制台界面已被保存

MariaDB [(none)]>  FLUSH PRIVILEGES;

 
接着,退出 MariaDB 控制台:

MariaDB [(none)]>  exit

 
我们可以再次用刚刚创建的用户登录 MariaDB,来测试新用户是否有正确的权限:

mariadb -u example_user -p

 
注意使用 -p 参数会弹出输入密码的要求,在此处键入上方自己设置的密码。登录完成后,可以使用如下的命令来确认我们拥有正确的 example_database 权限:

MariaDB [(none)]>  SHOW DATABASES;

 
如果出现了如下的输出,则说明设置正确:

# Output
+--------------------+
| Database           |
+--------------------+
| example_database   |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)

 
接着,退出 MariaDB 控制台,可以使用如下命令:

MariaDB [(none)]>  exit

 
现在,我们的数据库系统已经设置完毕,可以继续安装 PHP 了。

3. 安装 PHP

现在我们已经安装了 Nginx 服务于内容,安装了 MariaDB 来储存和管理数据。现在我们要安装 PHP 来处理代码,以及为网页服务器生成动态内容。

 
Apache 为每一次请求都嵌入了一个 PHP 解释器,Nginx 需要一个外置程序来负责 PHP 的处理,并且作为 PHP 解释器和网页服务器的桥梁。这使得绝大多数基于 PHP 的网页有一个更好的整体表现,但为了达成这个目的,需要一些额外的配置。

 
我们需要安装 php-fpm,意为 “PHP fastCGI process manager”,告诉 Nginx 将 PHP 请求发送到这个软件里来处理。另外,我们需要安装 php-mysql,一个用来允许 PHP 和 MySQL 数据库通信的 PHP 模组。PHP 核心包会被当做依赖自动安装。

 
安装上述两个包,运行如下命令:

sudo apt install php-fpm php-mysql

 
现在 PHP 组件已经安装好,接下来我们要配置 Nginx 来使用它们。

4. 配置 Nginx 来使用 PHP 处理器

使用 Nginx 网页服务器时,需要关注 server blocks,即服务器区块。在 Debian 10 系统中,Nginx 有一个默认的区块,用来处理放在路径 /var/www/html 下的文件。这对于单网站来说够用了,但如果我们要管理复数的网站就很不方便了。所以我们会单独在 /var/www 路径下创建一个路径 your_domain,注意要把命令中的 your_domain 修改为你自己的域名。

 
your_domain 创建一个网页 root 路径(root web directory),可使用如下的命令:

sudo mkdir /var/www/your_domain

 
接下来,给当前用户赋予此路径的所有者权限,注意下述命令中的 #USER 要修改为 $USER (博客后台编辑器有 bug,无法显示 $ 符号),此环境变量代表当前登录的用户:

sudo chown -R #USER:#USER /var/www/your_domain

 
接着,我们来创建一个新的 Nginx 配置文件,该文件位于路径 /etc/nginx/sites-available 下。在这里你可以用自己喜欢的命令行文本编辑器,我用的是 vim,注意要把命令中的 your_domain 修改为你自己的域名:

sudo vim /etc/nginx/sites-available/your_domain

 
这会创建一个空白文件,把下述段落粘贴到该文件中,注意要把其中的 your_domain 修改为你自己的域名:

server {
    listen 80;
    listen [::]:80;

    root /var/www/your_domain;
    index index.php index.html index.htm;

    server_name your_domain www.your_domain;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}

 
这是一个基础的配置,用来监听端口 80,且服务位于你刚刚创建的网站根目录 (web root) 下的文件。

注意
请确保你使用的 PHP 版本是 7.3,否则你仍需要调整其余的配置。检查 PHP 的版本可用命令 php -version

 
当粘贴完如上内容后,如果你用的编辑器是 vim,你可以通过命令 :wq 来保存并退出。

 
创建一个该文件的软连接,来激活此配置,可通过如下命令,同样注意要把其中的 your_domain 修改为你自己的域名:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

 
这些配置会在下次重新载入 Nginx 时生效。现在让我们通过一个命令来检查一下配置是否存在错误:

sudo nginx -t

 
如果出现任何错误,你需要回到编辑配置文件的步骤,检查粘贴的内容是否出现问题。如果没有错误,则可以重新载入 Nginx 来使配置生效:

sudo systemctl reload nginx

5. 创建一个 php 文件,测试配置是否正确

完成了以上步骤后,我们的 LEMP 套件应该已经搭建成功。现在让我们来新建一个 php 文件来测试一下是否配置成功吧。

/var/www/your_domain 下新建一个 info.php 文件,这里我仍然使用 vim 作为编辑器:

sudo vim /var/www/your_domain/info.php

 
在新建的文件中输入如下的文本:

<?php
phpinfo();
?>

 
保存文件后,我们通过浏览器来尝试访问这个页面。如果 Nginx 配置正确,则访问此页面的方式是在你的域名后面增加 /info.php,如下所示:

http://your_domain/info.php

 
若配置成功,你会看到一个如下的页面,此页面包含了你服务器的详细信息

 
此 info.php 界面在之后还会另有它用,敬请留意。

6. 测试 PHP 和数据库的连接 (选做)

如果我们想测试 PHP 是否可以连接到 MariaDB并正确执行数据库的请求,我们可以创建一个包含测试数据的测试数据表,并用 PHP 脚本来请求它。

 
首先,让我们连接到在步骤 2.2 安装 MariaDB中创建的数据库中,注意将下述 example_user 替换成你自己创建的数据库用户名:

mariadb -u example_user -p

 
然后,让我们来创建一个名为 about_me 的表。在 MariaDB 控制台内,运行如下命令,注意要将 example_database 替换成你自己创建的数据库名:

CREATE TABLE example_database.about_me (
    item_id INT AUTO_INCREMENT,
    content VARCHAR(255),
    PRIMARY KEY(item_id)
);

 
接着,我们往这个测试表里插入几行内容。你可能需要多次运行下述命令,来插入不同的数据,注意要将 example_database 替换成你自己创建的数据库名:

MariaDB [(none)]> INSERT INTO example_database.about_me (content) VALUES ("caring");

 
让我们用这个命令来确认一下数据是否成功存入表中:

MariaDB [(none)]> SELECT * FROM example_database.about_me;

 
你会看到类似如下的输出:

# Output
+---------+-----------+
| item_id | content   |
+---------+-----------+
|       1 | caring    |
|       2 | patient   |
|       3 | fun       |
|       4 | but poor  |
+---------+-----------+
4 rows in set (0.000 sec)

 
确认完毕后,退出 MariaDB 的控制台:

MariaDB [(none)]> exit

 
现在我们来创建一个 PHP 脚本,用以连接 MariaDB并查询表内内容。在你的网站根目录里创建一个新的 PHP 文件,我仍用 vim 作为示例:

sudo vim /var/www/your_domain/about_me.php

 
在创建的文件中加入如下文本,注意要将里面的 example_userpasswordexample_database 都替换成你自己创建的参数内容:

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "about_me";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>TODO</h2><ol>";
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

 
编辑完成后,保存并关闭文件。

 
现在,我们从浏览器里访问这个页面,在你的域名后面增加 /about_me.php,如下所示:

http://your_domain/about_me.php

如果你能看到如下的画面,则证明 PHP 环境已经配置成功,且成功地和 MariaDB 服务进行了互动。

3. 安装 SSL 安全证书

我们通过 Let’s Encrypt 来获取并安装免费的 TLS/SSL 证书,使网站允许加密的 HTTPS 连接。

 
在阅读本节教程前,请再次确认你拥有一个指向服务器 ip 地址的域名,并完成了 DNS 解析 (参照步骤 1 中的文章连接)。

1. 安装 Certbot

第一步是在服务器上安装 Cerbot。我们可以通过安装 python3-certbot-nginx 来安装并使用 Cerbot 的 nginx 插件。在安装之前,请先更新一下服务依赖:

sudo apt update
sudo apt upgrade

 
然后就可以安装 python3-certbot-nginx 的一系列依赖包:

sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

 
最后就可以安装 python3-certbot-nginx 本体了:

sudo apt install python3-certbot-nginx

 
现在 Cerbot 安装好可以使用了,但在此之前我们需要更改 Nginx 的一些配置来使其生效。

2. 确认 Nginx 的配置

为了使 Cerbot 正确配置 SSL,它需要能正确找到 Nginx 配置的服务器的区块。如果你一步一步遵循了本文的教程,那么你应该在 /etc/nginx/sites-available/your_domain 拥有一个服务器区块。

 
在这里我们使用 vim 命令来检查确认:

sudo vim /etc/nginx/sites-available/your_domain

 
找到文件中已存在的 server_name 一行,应该长这样:

...
server_name your_domain www.your_domain;
...

 
如果有这一行,则退出编辑器继续接下来的教程;若没有,则回到步骤 2.4 中重新配置。

3. 配置防火墙使其允许 HTTPS 请求

如果你是照着我的另一篇文章进行的服务器基础设置,那么你的服务器就开启了 ufw 防火墙,所以你就需要调整其设置使其允许 HTTPS 通信。

 
查看现在的防火墙状态,你可以使用命令

sudo ufw status

 
输出的结果大致如下,意为目前网站服务器仅允许 HTTP 通信

# Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

 
允许 HTTPS 通信,我们要使 ufw 允许 Nginx Full 档案,并删除多余的 Nginx HTTP 档案:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

 
再次检查 ufw 的状态:

sudo ufw status

 

# Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

 
接下来,让我们运行 Cerbot,并获取我们的证书

4. 获取 SSL 证书

Cerbot 通过一个 Nginx 插件来提供一系列获取 SSL 证书的方式。你可以用如下的命令来使用这个插件:

sudo certbot --nginx -d your_domain -d www.your_domain

 
这条命令使用了 –nginx 插件来运行 cerbot,并使用 -d 命令来指定了证书有效的域名。

 
如果这是你第一次运行 cerbot,你会收到一系列弹出的问题,让你输入邮箱地址,并同意一些服务条款。回答完问题后, cerbot 会和 Let’s Encrypt 服务器进行通讯,并弹出如下的问题来询问你想如何配置你的 HTTPS:

# Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

 
因为我们是刚刚建站,所以我们选择 2,并按下 ENTER。配置会被更新,Nginx 也会重新载入来加载这些配置。你会看到如下的提示信息:

# Output
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your_domain/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your_domain/privkey.pem
   Your cert will expire on 2019-10-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 
离完成 SSL 配置只差最后一步了,现在让我们来测试一下自动更新的过程

5. 确认 Cerbot 的自动更新

Let’s Encrypt 的证书的有效期是 90 天,Cerbot 会替我们自动更新这个证书。我们来尝试手动更新一下:

sudo certbot renew --dry-run

 
如果你没有看见任何错误,就证明全部设置好啦。

4. 安装 WordPress

恭喜你!你已经完整了十分繁琐的配置步骤,终于走到了最后一步,Wordpress 本体的安装。相较于上方冗杂的步骤,wordpress 的安装和基础配置会显得十分简单。
 
让我们开始最后的征程吧!

1. 为 wordpress 创建一个数据库和数据库用户

如果你是按照我上方的教程一步一步走到这里,那么你应该已经有了一个创建好的数据库及用户。你可以直接复用这个数据库,也可以按照步骤 2.2 中的方法再创建一个新的。我比较懒,就直接复用了之前的数据库啦。

2. 安装其他的 PHP 插件

当安装好 LEMP 套件后,我们只需要很少的插件就可以实现 PHP 和 MariaDB 的通信。Wordpress 和它的一些插件倾向于使用更多的 PHP 扩展包。

 
我们可以使用如下的命令来安装这些扩展包:

sudo apt update
sudo apt upgrade
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

 
当安装结束后,我们需要重启一下 php-fpm 服务:

sudo systemctl restart php7.3-fpm.service

 
如果你安装的不是 7.3 版本,则可能需要修改一下上述的命令。查看确切服务名称可以使用下述命令:

sudo systemctl status php* | grep fpm.service

 
输出如下所示,其开头就是 PHP-FPM 服务的确切名称,请将其更换入上上条命令中,以便重启服务

# Output
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   CGroup: /system.slice/php7.3-fpm.service

 
PHP 扩展包安装好了,下一步需要再次配置 Nginx 来使用 PHP-FPM 来处理 PHP 页面。

3. 配置 Nginx

我们现在需要对 Nginx 的服务区块文件做一点微小的改动。基于我之前教程中的配置,你现在应该在 /etc/nginx/sites-available 路径里有了一个配置文件。我们以 /etc/nginx/sites-available/your_domain 为例,请注意把 your_domain 替换成你自己的域名。

 
另外,我们使用 /var/www/your_domain 作为 WordPress 安装的根目录。如果你不太熟悉建站流程,请严格遵循此项配置。

 
让我们打开 Nginx 配置文件,在这里我以 vim 作为示例,你们可以选用自己偏爱的文本编辑器:

sudo vim /etc/nginx/sites-available/your_domain

 
我们现在要在 server 区域里增加一些语句。请注意,在我们安装了 SSL 证书以后,这个配置文件里应该有两个 server 的代码块。如果确实有两块,请找到包含有 root /var/www/your_domain 的区块,在里面加入如下段落:

server {
    . . .

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

 
这些语句会关闭一些我们不希望的日志记录。

 
另外,同样在此区块内,我们要调整 try_files 的列表,使找不到文件的 404 错误返回到 index.php 页面中。请参照如下段落进行修改:

server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

 
编辑完成后,保存并关闭文件。

 
现在我们要检查一下刚才进行的配置有没有语法错误:

sudo nginx -t

 
如果没有错误出现,就可以重新载入 Nginx 了:

sudo systemctl reload nginx

 
下一步,让我们来下载并配置 wordpress 吧!

4. 下载 WordPress

进行到这一步,我们的软件配置已经全部完毕,可以开始下载并安装 WordPress 了。

 
请注意,下面的操作会频繁用到 Linux 系统的知识以及命令行文本编辑器的使用,如果你有任何的问题,请在评论区留言,以免造成不可知的问题。

 
如果你的服务器基础配置是你自行完成的,则我默认你有基础的 Linux 系统使用知识,请切换到一个你有写权限的路径下;如果你是按照本文步骤 1 中所链接文章的教程进行的服务器基础配置,那么你可以首先使用这个命令切换到可写路径:

cd ~

 
在切换到拥有写权限的路径下后,使用如下命令下载 WordPress。为了安全起见,我们下载最新版本的安装包:

curl -LO https://wordpress.org/latest.tar.gz

 
等待下载完成后,我们提取压缩包的内容:

tar xzvf latest.tar.gz

 
下一步,我们需要创建一个 WordPress 的配置文件。WordPress 默认有一个叫做 wp-config-sample.php 的配置文件,里面写了一些基础的配置,在这里我们直接拷贝一份此默认配置文件,并重命名,作为 WordPress 真正读取的配置文件:

cp ./wordpress/wp-config-sample.php ./wordpress/wp-config.php

 
然后,我们把整个 WordPress 文件拷贝到网站的根目录下,请注意将命令中的 your_domain 改为你自己的域名:

sudo cp -a ./wordpress/. /var/www/your_domain

 
我们的文件已经放到了正确的位置,我们要把它们的所有权赋给 www-data 用户组,这是 Nginx 运行的用户组,因此 Nginx 需要对它有读写权限:

sudo chown -R www-data:www-data /var/www/your_domain

 
现在我们的文件已经放到了服务器的根目录下,并有了正确的权限。接着我们需要完成更多的配置

5. 修改 WordPress 配置文件

首先,我们需要修改一下安装密钥。WordPress 提供了一个密钥的安全生成器,你可以通过访问下述网页来获取它们:

https://api.wordpress.org/secret-key/1.1/salt/

 
网页的内容类似如下的文本:

 

警告
请务必注意!不要直接将下文中的密钥粘贴进配置文件中,你需要生成自己的随机密钥

define('AUTH_KEY',         不要复制 'h>=_EFm!-59*%|i/+owSiMjkC.R[)){6WD,<7_Rp>hya@/>Qu/c:+vU+NfotYh-.');
define('SECURE_AUTH_KEY',  不要复制 'cpcx[n5o!J]Y!5,WDIq?%UO+6I])w{~Z:W{-4f>J8!S7t695 c,jfotV$9A+HQ<|');
define('LOGGED_IN_KEY',    不要复制 '.RVWnW#XNYVN[26R^ZMcV,Ln]7[J3AWEv{LSmEF%YxXi>jrAYe2b$s+BekD|@,hU');
define('NONCE_KEY',        不要复制 'qniyD5S(Fny.%uxDq*/=<Hf[8 eItejm#X8DR-*6;63!@i:Q4=lS=6&eUy0B;@he');
define('AUTH_SALT',        不要复制 'FERwjiIH{<_+3Y+1*G7LywB[*bAP.--cN:dnT:Lfeqfir$H_$-7-ZI=YX{g0OTLJ');
define('SECURE_AUTH_SALT', 不要复制 '#<]#!fA|J;z*`!OQ H<;YsuQ6CHLL_|^FP&+I)LwxO4nZPNi%9OWG*{2^0 -V#j>');
define('LOGGED_IN_SALT',   不要复制 'GcgVNlD3o7JKP_K8_iF+L:_-uGB#lbluO!%cR-]iur_Aez|fW]%J-T-}rJD3O.DW');
define('NONCE_SALT',       不要复制 '<yxV{%O|_%WG.7Z_HnN}GfU53q+P~PgW9-o!Q>)v9iR@a/q~6L%-:7i;A0WAJ41!');

 
打开 WordPress 的配置文件:

sudo vim /var/www/your_domain/wp-config.php

 
找到如下的段落,将你复制的密钥粘贴到相应的位置,请小心不要粘贴错位置

. . .

define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');

. . .

 
接下来我们要修改数据库连接的配置,找到如下段落的位置,并将数据库的相应参数修改正确,请注意下文最后一行 direct 所在的语句需要添加进配置文件中:

. . .

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpress_user');

/** MySQL database password */
define('DB_PASSWORD', 'password');

. . .

define('FS_METHOD', 'direct');

 
修改完成后,保存并关闭文件。

6. 从网页端完成最后的安装

现在我们的服务器配置已经完成,现在可以从网页端完成最后的安装。

 
打开网页浏览器,在地址栏键入服务器的 ip 或者你的域名:

http://server_domain_or_IP

 
选择你要用的语言,这里还是推荐使用简体中文,方便之后的配置:

 
然后就进入了主配置页面。在这里你需要选择一个 WordPress 网站名,选择一个用户名,输入一个密码(推荐直接使用自动生成的强密码,但你得记住它)。输入你的邮箱地址,选择你是否想让自己的网站被搜索引擎发现。

 
当完成配置后,点击安装。安装完毕后,你会进入一个登录界面。输入上一步操作时创建的用户名和密码,你就进入了 WordPress 的后台。

 
之后你做的所有内容,安装插件,美化博客,管理博客,撰写文章都会在这个后台中进行。换句话说:

你已经成功完成了安装!撒花!:tada:

 
剩下的就是一些 可(zhi) 有(guan) 可(zhong) 无(yao) 的博客美化操作了。我相信拥有一颗钢铁技术之心的你肯定不需要这些花里胡哨的东西对不对 [手动滑稽]。

5. 博客的美化

在这一节,我推荐一些实用的插件,修改一些网页基础配置,好看的博客主题,以及安装可爱的看板娘。各位按需食用。

修改网站上传文件的尺寸限制

网站默认将上传文件的大小限制在 2M,这会对我们往后台上传插件或媒体产生麻烦。按照如下步骤可以修改这个限制。

 
还记得在步骤 2.5 中创建的测试用例 info.php 文件吗?如果不知道的话可以回去回顾一下,或者重新创建该文件。

 
https://your_ip_or_domain/info.php 中找到 php 配置文件的所处路径,类似如下段落:

Loaded Configuration File /etc/php/7.3/fpm/php.ini

 
这是 php 读取的配置文件的路径。在此我用 vim 作为示例修改此文件

sudo vim /etc/php/7.3/fpm/php.ini

 
找到文件中的下面两行配置项,若从未做过修改,则其中的数字应该是 2M,将其修改为你想要的大小,在这里我改为了 50M

. . .
post_max_size = 50M
. . .
upload_max_filesize = 50M
. . .

 
然后我们重启一下 php 服务:

sudo systemctl restart php7.3-fpm.service

 
之后,我们还需要修改 nginx 的配置:

sudo vim /etc/nginx/nginx.conf

 
找到文件中的如下配置项。同样,若你从未做过修改,则其中的数字应该是 2M,将其修改为同上的大小:

. . .
client_max_body_size 50M
. . .

 
然后我们重启 nginx:

sudo systemctl reload nginx

 
至此,上传文件的大小限制应该已经被修改完毕。检查是否正确修改,我们可以进入网站的管理后台:

http://server_domain_or_IP/wp-admin

 
进入媒体菜单,选择添加新文件,若你看到如下的文字,则证明你已成功修改:

安装可选插件

Akismet 是一个常用的反垃圾评论的插件,推荐安装使用。

 
简易目录 插件是一个可以为你的文章自动生成目录的插件,方便易用。文本开头的目录就是这个插件自动生成的。

 
由于某些原因,WordPress 的后台访问速度很慢,而且 Gravatar 头像也无法正常显示。这里我们就需要安装 WP-china-yes 插件。由于另外一些原因,WordPress 的插件商店里已经搜索不到该插件,因此你需要访问 这个链接 去插件作者的 github 里找到安装包,并通过上传插件的方式进行安装。

 
如果你和我一样喜欢用 Markdown 编辑器来撰写文章,那么你需要一个叫做 WP-Editor.md 的插件。该插件在当前有一些更新失败的问题,你同样需要访问 这个链接 去找到最新版本的安装包,上传安装。此插件目前还有一些 bug 存在,请小心使用,并注意查看 github 上的 issue。

 
如果你想和本博客一样使用随机图片 API 来设置文章题图,那么你需要 Featured Image from URL (FIFU) 插件来完成此项操作。 另外推荐几个 实 用 的随机图片 API 地址:
https://api.haozi.xyz/api/v1/pic/acg
https://api.vvhan.com/api/acgimg
https://api.ixiaowai.cn/api/api.php

安装主题

本博客使用的主题来自 Shawn dalao 的 Giligili 主题,非常好用。大家可以去 dalao 的博客观光一番,感兴趣的也可以从 dalao 的博客里寻找到该主题的使用方法:
https://shawnzeng.com/

安装看板娘

你希望和本博客一样,拥有一个萌哒哒的看板娘吗~

 
首先,在服务器上安装一个 git 命令:

sudo apt install git

 
然后,进入到网站根目录中,并将 live2d 拷贝到路径下(如果你搭建博客参照的是本文,则可直接参照下述命令;否则你需要 cd 到自己的网站根目录下再运行 git 命令):

cd /var/www/your_domain
sudo git clone https://github.com/Adam-fei/live2d.git

 
接下来,我们要修改主题文件夹下的若干文件。由于我使用的是 Giligili 主题,因此我的路主题路径如下所示,你也可以根据自己使用的主题来进入相应的路径中:

cd /var/www/my_domain/wp-content/themes/Giligili

 
首先,我们要修改的是 header.php,用来给头部文件引入界面样式:

sudo vim ./header.php

 
在打开的头部文件中的适当地方添加如下段落:

<link rel="stylesheet" href="/live2d/css/live2d.css" />
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>

 
接着,我们要修改的是 footer.php,用来给页脚文件引入脚本:

sudo vim ./footer.php

 
注意,下面的段落需要在 body 的结束标签 \ 之前粘贴,并且段落中的 your_domain 需要修改成你自己的域名:

<div id="landlord">
    <div class="message" style="opacity:0"></div>
    <canvas id="live2d" width="280" height="250" class="live2d"></canvas>
    <div class="hide-button">隐藏</div>
    <div class="switch-button">换装</div>
</div>

<script type="text/javascript">
    var message_Path = '/live2d/'
    var home_Path = 'http://your_domain'
</script>
<script type="text/javascript" src="/live2d/js/live2d.js"></script>
<script type="text/javascript" src="/live2d/js/message.js"></script>
<script type="text/javascript">
    var index = Math.ceil(Math.random()*37)
        console.log('your_domain + ' + index)
        loadlive2d("live2d", "/live2d/model/pio/model_"+index+".json");
</script>

 
最后,你要做的就是回到网站里,点击刷新,页面右下角就会出现一直萌哒哒的看板娘啦~

 
如果你对看板娘的位置、高度,弹出信息框的大小,颜色不满意,可以修改这个文件:

sudo vim /var/www/your_domain/live2d/css/live2d.css

 
你也可以在你的博客中点击 F12,找到 页面编辑器,在其中找到 live2d.css,边修改边实时查看修改后的表现。当你满意之后,就可以将修改的内容更新到上述的文件中。

 
修改完配置文件后,重启服务器,所作的修改就会生效啦:

sudo reboot

Ref