简介

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

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

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

前提条件

准备好 Ubuntu 20.04 系统

做好系统的备份

安装 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 php7.4 php7.4-fpm php7.4-cli php7.4-mysql php7.4-json php7.4-opcache php7.4-gd php7.4-curl

创建 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;
server_name SUBDOMAIN.DOMAIN.TLD;
location / {
return 301 https://$host$request_uri;
}
}

server {
listen 443 ssl;
server_name SUBDOMAIN.DOMAIN.TLD;

ssl_certificate /etc/nginx/ssl/SUBDOMAIN.DOMAIN.TLD.crt; # 你的证书路径
ssl_certificate_key /etc/nginx/ssl/SUBDOMAIN.DOMAIN.TLD.key; # 你的私钥路径

root /www/wwwroot/blog.sevenen.cn/wordpress;
index index.php index.html;

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/php7.4-fpm.sock;
}

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;
}
}

注意:替换 SUBDOMAIN.DOMAIN.TLD 为你的域名

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

nginx -t

创建符号链接

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

重新加载 Nginx

sudo systemctl reload nginx

下载并配置 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 wordpress/*

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

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

更改文件所有权并且应用权限给 WordPress 所有文件

cd /www/wwwroot/blog.sevenen.cn
sudo chown -R www-data:www-data
sudo chmod -R 755

配置 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 设置指引完成最后的配置。

 

文章引用至友链:基于 Nginx 部署 WordPress 搭建属于自己的博客 – 7En’s Blog (sevenen.cn)

可参考我另一篇文章对wordpress性能进行优化:腾讯云edge one和redis对wordpress的优化过程。-Sereniblue