简介

Ubuntu 上使用 Nginx 快速部署 WordPress 的完整指南

WordPress 是一个以 PHP 和 MySQL 为平台的自由开源的博客软件和内容管理系统。WordPress 具有插件架构和模板系统。截至2018年4月,排名前1000万的网站中超过30.6%使用 WordPress。WordPress 是最受欢迎的网站内容管理系统。全球有大约43%的网站都是使用 WordPress 架设网站的。WordPress 是目前因特网上最流行的博客系统。WordPress 在最著名的网络发布阶段中脱颖而出。如今,它被使用在超过7000万个站点上。

本文旨在 Ubuntu 系统上基于 Nginx 部署 WordPress

前提条件

准备好 Ubuntu 系统

做好系统的备份

安装 Nginx

sudo apt-get install nginx -y

查看 Nginx 运行状态

sudo systemctl status nginx

启动 Nginx

sudo systemctl start nginx

配置 Nginx 开机自启

sudo systemctl enable nginx

安装 MariaDB

sudo apt-get install mariadb-server

启动 MariaDB

sudo systemctl start mariadb

配置 MariaDB 开机自启

sudo systemctl enable mariadb

运行以下命令以提高数据库安全性

sudo mysql_secure_installation

安装 PHP

sudo apt-get install php php-fpm php-cli php-mysql php-json php-opcache php-gd php-curl php-xml

使用 php -v 查看 PHP 的版本

创建 WordPress 本地数据库

sudo mysql -u root -p

创建一个名为 wordpress_db 的数据库

CREATE DATABASE wordpress_db;

创建一个名为 wordpress_user 的用户,并赋予他对 wordpress_db 数据库的所有权,并设置 wordpress_user 的密码为 password。(请填写自己的密码)

GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

退出

exit

编辑 Nginx 文件

创建 WordPress 根目录(路径任意)

sudo mkdir /www/wwwroot/blog.sevenen.cn/wordpress

创建 WordPress 的 Nginx 文件

sudo nano /etc/nginx/sites-available/wordpress

server {
    listen 80;
    root /www/wwwroot/blog.sevenen.cn/wordpress;
    index index.php index.html;
    server_name SUBDOMAIN.DOMAIN.TLD; #替换 SUBDOMAIN.DOMAIN.TLD 为你的域名

    access_log /var/log/nginx/www.access.log;
    error_log /var/log/nginx/www.error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.x-fpm.sock; #填写安装的 PHP 版本
    }

    location ~ /\.ht {
        deny all;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

检查上述配置文件的正确性

nginx -t

创建符号链接

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

重新加载 Nginx

sudo systemctl reload nginx

下载并配置 WordPress

切换到新创建的 WordPress 根目录

cd /www/wwwroot/blog.sevenen.cn/wordpress

使用 wget 工具从 WordPress 的官方网站下载最新的中文版 WordPress 安装包

sudo wget https://cn.wordpress.org/latest-zh_CN.tar.gz

解压刚刚下载的 WordPress 安装包

sudo tar -zxvf latest-zh_CN.tar.gz

将解压后的 WordPress 文件移动到当前目录

sudo mv /www/wwwroot/blog.sevenen.cn/wordpress/wordpress/* /www/wwwroot/blog.sevenen.cn/wordpress

删除解压后的空 WordPress 文件夹和原始的安装包

sudo rm -rf wordpress latest-zh_CN.tar.gz

更改文件所有权并且应用权限给 WordPress 所有文件
sudo chown -R www-data:www-data /www/wwwroot/blog.sevenen.cn
sudo chmod -R 755 /www/wwwroot/blog.sevenen.cn

配置 wp-config.php 文件

cd /www/wwwroot/blog.sevenen.cn/wordpress
sudo mv wp-config-sample.php wp-config.php
sudo nano wp-config.php

在wp-config.php文件中找出并更改以下内容

define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wordpress_user');
define('DB_PASSWORD', 'Password!');
...
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
...

注意:为了保证网站的安全,通过 https://api.wordpress.org/secret-key/1.1/salt/ 生成安全密钥,粘贴在配置中。

安装并配置 WordPress

在浏览器中输入你的域名,根据 WordPress 设置指引完成最后的配置。