Post Banner

WordPress 建站小记

Author

Skyler Shu

本文使用 LNMP 环境搭建 Wordpress 站点。

一. 了解 LNMP

LNMP 一键安装包是什么?

LNMP 一键安装包是一个用 Linux Shell 编写的可以为 CentOS / RHEL / Fedora / Aliyun / Amazon、Debian / Ubuntu / Raspbian / Deepin / Mint Linux VPS 或独立主机安装 LNMP (Nginx / MySQL / PHP)、LNMPA (Nginx / MySQL / PHP / Apache)、LAMP (Apache / MySQL / PHP) 生产环境的 Shell 程序。

我们为什么采用 LNMP 这种架构?

采用 Linux、PHP、MySQL 的优点我们不必多说。Nginx 是一个小巧而高效的 Linux 下的 Web 服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,已经在一些俄罗斯的大型网站上运行多年,目前很多国内外的门户网站、行业网站也都在是使用 Nginx,相当的稳定。

Nginx 相当的稳定、功能丰富、安装配置简单、低系统资源…

二. LNMP 环境搭建

1. 使用 SSH 工具登陆 VPS

Linux 基础知识,不再说明。

2. 安装并运行 screen 命令

创建 screen 会话

shell

1
screen -S lnmp

如果提示 screen: command not found 命令不存在可以执行:

  • centOS:yum install screen
  • Debian/Ubuntu: apt-get install screen
  • 3. 安装 LNMP 稳定版

    shell

    1
    wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp

    ⚠️ 注意事项

  • 如下载速度慢或无法下载请更换其他下载节点,请查看 LNMP 下载节点具体替换方法
  • 如果遇到 Read error (Connection reset by peer) in headers. ,请参考 LNMP 一键安装包如何更换下载镜像
  • 本步骤完整代码:

    shell

    1
    2
    3
    4
    5
    6
    +------------------------------------------------------------------------+
    | LNMP V1.7 for CentOS Linux Server, Written by Licess |
    +------------------------------------------------------------------------+
    | A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux |
    +------------------------------------------------------------------------+
    | For more information please visit https:

    这一步需要耗费不少时间,最后显示 Install lnmp V1.7 completed! enjoy it. 表明 lnmp 安装完成。

    三. 域名解析

    配置域名解析并 ping 查看是否解析成功。

    四. 配置虚拟主机

    ⚠️

    进入这一步之前务必将域名解析到 ip

    本步骤完整代码:

    这里我以我的个人网站 skylershu.com 作为示例,虽然它现在已经不再是一个 WordPress 网站了。

    shell

    1
    [root@guest ~]# 

    提示 Press any key to start create virtul host... 后,回车确认便会开始创建虚拟主机。这一步一般无需多久,添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP 等相关信息。

    shell

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ================================================
    Virtualhost infomation:
    Your domain: www.skyershu.com
    Home Directory: /home/wwwroot/www.skyershu.com
    Rewrite: wordpress
    Enable log: no
    Database username: wordpress_db
    Database userpassword: 密码
    Database Name: wordpress_db
    Create ftp account: no
    Enable SSL: yes
    =>Let's Encrypt
    ================================================

    这里我们最好将数据库等信息留下记录。现在,我们已经搭建好了 LNMP 环境并为网站配置了虚拟主机,下面可以安装 WordPress 了。

    五. 安装 WordPress

    前往 WordPress 官网 下载并解压到 /home/wwwroot/www.skylershu.com 文件夹。

    1. 前往文件夹目录

    shell

    1
    cd /home/wwwroot/www.skylershu.com

    2. 下载 WordPress 安装包

    shell

    1
    wget https://cn.wordpress.org/wordpress-5.6-zh_CN.tar.g

    3. 解压压缩包

    shell

    1
    tar -zxvf 

    4. 将解压后文件放入网站目录

    shell

    1
    cp -r wordpress/* /home/wwwroot/www.skylershu.com

    5. 修改目录层次结构中所有文件的所有者和组用户

    shell

    1
    chown -R www:www /home/wwwroot/*/*

    6. 删除安装包

    shell

    1
    rm -rf wordpress wordpress-5.6-zh_CN.tar.gz

    7. 重启 LNMP

    shell

    1
    lnmp restart

    重启后显示:

    shell

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +-------------------------------------------+
    | Manager for LNMP, Written by Licess |
    +-------------------------------------------+
    | https://lnmp.org |
    +-------------------------------------------+
    Stoping LNMP...
    Stoping nginx... done
    Shutting down MySQL.. SUCCESS!
    Gracefully shutting down php-fpm . done
    Starting LNMP...
    Starting nginx... done
    Starting MySQL. SUCCESS!
    Starting php-fpm done

    这时访问网站就可以开始 WordPress 著名的五分钟安装了。

    填入之前的数据库名等信息,点击提交。

    设置好下图的各项内容(请不要完全参考图中的选项),点击安装即可。

    六. 修改 Nginx 配置文件

    1. 打开 Nginx 配置文件

    shell

    1
    vi /usr/local/nginx/conf/vhost/www.skylershu.com.conf

    使用命令编辑器 vinano 编辑对应的虚拟主机文件。

    进入 vi 之后,是处于命令行模式(command mode)的,这时要按 i 进入 Insert mode,然后就可以输入了。在命令行模式(command mode)下,按一下 : 进入 Last line mode。

  • w filename (输入 w filename 将文章以指定的文件名 filename 保存)
  • :wq (输入 wq,存盘并退出 vi)
  • :q! (输入 q!, 不存盘强制退出 vi)
  • 这里我们可以使用 MoZilla SSL Configuration Generator 快速生成配置文件。

    shell

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        location / {
            return 301 https://skylershu.com$request_uri;
        }
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        ssl_certificate /path/to/signed_cert_plus_intermediates;
        ssl_certificate_key /path/to/private_key;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
        ssl_session_tickets off;
    
        # modern configuration
        ssl_protocols TLSv1.3;
        ssl_prefer_server_ciphers off;
    
        # HSTS (ngx_http_headers_module is required) (63072000 seconds)
        add_header Strict-Transport-Security "max-age=63072000" always;
    
        # OCSP stapling
        ssl_stapling on;
        ssl_stapling_verify on;
    
        # verify chain of trust of OCSP response using Root CA and Intermediate certs
        ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
    
        # replace with the IP address of your resolver
        resolver 127.0.0.1;
    }

    查看是否正确:

    shell

    1
    nginx -t

    重启 LNMP:

    shell

    1
    nginx -s reload

    2. 检测证书配置情况

    我们可以通过 SSL LABSMySSL 检测网站的安全性。本站在两个检测中均获得了 A+ 的评级:

    参考

    1⃣️ WordPress 官网

    2⃣️ LNMP 一键安装包

    3⃣️ 安装 - LNMP 一键安装包

    4⃣️ LNMP 添加、删除虚拟主机及伪静态使用教程

    5⃣️ LNMP 环境下搭建 WordPress 站点 - Newlearnerの小站

    6⃣️ MySSL

    7⃣️ LNMP 下 Nginx 如何设置域名 301 重定向 - LNMP.org