一、部署环境介绍
软件依赖 | 版本 |
---|---|
Ubuntu | 18.04 LTS |
WordPress | 5.4 |
Nginx | 1.14.0 |
PHP | 7.3 |
MariaDB | 10.1.44 |
二、准备环境
(1)安装 Nginx
-
使用 apt-get 命令 安装 Nginx
sudo apt-get update sudo apt-get install nginx
-
安装完成后,启动 Nginx
sudo systemctl start nginx
-
启动成功后,在浏览器中打开系统的 IP 地址,正常情况下,会出现如下界面,表示 Nginx 安装成功
(2) 安装 MariaDB 数据库
-
MariaDB 与 MySQL 同源,在这里我们选择 MariaDB
sudo apt-get install mariadb-client mariadb-server
-
启动 MariaDB (MariaDB 服务名为 MySQL)
sudo systemctl start mysql
-
初次运行 MariaDB ,需要创建 root 用户密码以保护数据库
sudo mysql_secure_installation
会出现一下提示信息
Enter current password for root (enter for none): # 不用输入,直接回车 Set root password? [Y/n] Y New password: # 在这里输入你的密码 Re-enter new password: # 重新输入一遍 # 输入密码时,是不回显的 # 后面的问题,按照下面回答即可 Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
(3) 安装 PHP 相关程序
-
安装软件源拓展工具
sudo apt-get install software-properties-common
-
添加 PHP 源地址,更新软件包列表,安装PHP7.3
sudo add-apt-repository -y ppa:ondrej/php sudo apt-get update sudo apt-get install php7.3
-
Nginx 使用 PHP 需要用到 php-fpm
sudo apt-get install php7.3-mysql php7.3-fpm php7.3-curl php7.3-xml php7.3-gd php7.3-mbstring php-memcached php7.3-zip
(4)安装 WordPress
-
从 WordPress 中文官网 下载 WordPress 最新版本安装包,但近期,WordPress 官网受到DDOS网络攻击,经常出现 429 无法访问的情况,可以通过 WordPress 镜像站 来完成这一步骤
注:推荐直接下载中文版
-
将下载好的程序压缩包,通过 FTP 工具(例如:X ftp)上传至 Ubuntu 服务器 的 /tmp 目录下
-
将 压缩包 解压到 /var/www/html 目录下
tar -xzvf /tmp/wordpress-5.4-zh_CN.tar.gz -C /var/www/html/
三、开始安装
(1)创建供 WordPress 使用的数据库
-
登录 MariaDB 数据库
mysql -u root -p
-
创建 WordPress 数据库
# 创建数据库,数据库名:wordpressdb CREATE DATABASE wordpressdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 创建用户,用户名为:wordpressuser,password 处为用户密码,可自主设定 CREATE USER wordpressuser@localhost IDENTIFIED BY 'password'; # 赋予用户权限 GRANT ALL ON wordpressdb.* TO 'wordpressuser'@'localhost' IDENTIFIED BY '你的密码'; # 刷新数据库权限 FLUSH PRIVILEGES; # 退出数据库 quit
-
重启 MariaDB 服务
service mariadb restart
(2)修改 WordPress 配置
-
创建 wp-config.php 文件
# 将示例配置拷贝一份 cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php # 编辑配置文件 sudo vim /var/www/html/wordpress/wp-config.php
-
更改配置文件中的数据库配置,将刚才设定好的数据库名、用户名、密码,按指示进行修改
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** // /** WordPress数据库的名称 */ define( 'DB_NAME', 'database_name_here' ); /** MySQL数据库用户名 */ define( 'DB_USER', 'username_here' ); /** MySQL数据库密码 */ define( 'DB_PASSWORD', 'password_here' );
-
更改身份认证密钥与盐
根据文件中的提示,访问 WordPress.org密钥生成服务 生成独一无二的字符串,并将得到的文本,替换配置文件中对应的配置
-
保存退出
(3)配置 Nginx 服务器
如果有域名的话,强烈建议在最开始,就注册好 CA 证书(有免费的),搭建好 HTTPS 服务,否则一旦开启 WordPress 站点,再搭建 HTTPS 服务,就会异常复杂(笔者为此重做了好几次网站),CA证书的注册,本文不再赘述
-
进入 Nginx 服务器配置文件目录
cd /etc/nginx/sites-available/
-
创建 WordPress 服务器配置文件
sudo vim wordpress_nginx.conf
-
在文件中写入一下内容(请去掉所有中文注释,否则可能会出错)
如果全部安装前文所述的安装步骤进行安装,则此处配置文件,仅需要修改有中文注释位置的内容,否则请根据自己的实际情况进行修改
情况一:有 CA 证书,可以搭建 HTTPS 的配置
# port 443 server { listen 443; server_name www.example.com example.com; # 此处修改为你自己的域名,没有域名也可直接填写 IP 地址 ssl on; ssl_certificate /var/www/html/cert/www/www.example.com.pem; # 此处填写你的证书文件位置 ssl_certificate_key /var/www/html/cert/www/www.example.com.key; # 此处填写你的密钥文件位置 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; root /var/www/html/wordpress; index index.php index.html index.htm; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTP_PROXY ""; fastcgi_param PATH_INFO $fastcgi_path_info; } } # port:80 server { listen 80; listen [::]:80; server_name www.example.com example.com; # 此处修改为你自己的域名,没有域名也可直接填写 IP 地址 return 301 https://$server_name$request_uri; }
情况二:没有 CA 证书,仅搭建 HTTP 的配置
server { listen 80; server_name www.example.com example.com; # 此处修改为你自己的域名,没有域名也可直接填写 IP 地址 root /var/www/html/wordpress; index index.php index.html index.htm; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTP_PROXY ""; fastcgi_param PATH_INFO $fastcgi_path_info; } }
-
检查无误后,退出并保存配置文件
-
通过命令,检查配置文件是否有语法错误
nginx -t # 如果返回一下内容,则配置无误,否则请重新检查刚才的配置文件 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
-
使用软链接,将此配置文件链接到 /etc/nginx/sites-enabled/ 目录下,并重启 Nginx 使配置生效
# 将配置文件软链接到 /etc/nginx/sites-enabled/ 目录下 ln -s /etc/nginx/sites-available/wordpress_nginx.conf /etc/nginx/sites-enabled/wordpress_nginx.conf # 重启 Nginx 服务 service nginx restart
(4)在浏览器继续完成安装的最后一步
-
在浏览器中打开,刚才在 Nginx 的配置文件中写的 服务器地址(server_name),如若出现一下界面,那么恭喜你,之前的步骤全部成功了,如果没有出现下面的界面,则返回检查前面的步骤是否出错
-
在这里配置好站点标题、用户名、密码、电子邮件等信息 (这里的用户名和密码,将作为 Word Press 的管理员账号和密码)
强烈建议:这里不要输入任何可能暴露私人信息的内容,这里填写的信息,后续都很难修改(是的,笔者在这吃亏了,导致笔者再次重新搭建博客网站)
-
填写完成后,点击安装,然后用刚才设置的 用户名 和 密码 登录即可
-
如果看到以下 WordPress 仪表盘界面,那么再次恭喜您,您的 WordPress 正式安装完成,接下来便是按照您的喜好去美化和配置
四、美化博客
(1)安装主题
-
将下载好的主题包,解压后,上传到 /var/www/html/wordpress/wp-content/themes/ 目录下
-
在 WordPress 仪表盘 中启用主题
(2)安装插件
-
将下载好的插件压缩包,解压后,上传到 /var/www/html/wordpress/wp-content/plugins/ 目录下
-
在 WordPress 仪表盘 中启用该插件
恭喜你,你已完成所有安装工作!
四、配置 CDN
本次使用的是腾讯云CDN
(1)打开腾讯云 内容分发网络(CDN) 配置页面,并点击域名管理中的添加域名
(2)添加域名
-
域名配置
-
服务配置
不建议开启过滤参数,可能会导致网站出现问题
缓存配置(推荐按照如下设置)
注:不要在 CDN 设置内开启 “回源跟随301/302配置” 这一配置项,否则很有可能导致网站出现问题,其他设置,视情况自行决定
-
(3)配置 DNS 解析
-
将 CDN 刚设置好的域名中,将 CNAME 后面的域名地址复制下来
-
在 DNS 解析服务设置中,将 @ 和 www 这两个主机记录的记录类型改为 CNAME,并将记录值改为,刚才在 CDN 域名配置中复制下来的 CNAME 的地址
-
至此,CDN 配置完成
五、推荐插件
- Akismet Anti-Spam: 过滤垃圾评论
- File Renaming on upload: 上传文件时,自动将文件按预定格式重命名,使网站的链接更规律
- Google XML Sitemaps: 生成站点地图(Sitemap),并随页面更改而自动更新,亦可自动将站点地图向 Google 和 Bing 进行推送,提高网站在 Google 和 Bing 这两个搜索引擎的收录率
- WP Editor.md: 很好用的 WordPress Markdown 编辑器
- WP Super Cache: 使用缓存,可提高网站访问速度
- WPS Hide Login: 自定义 WordPress 后台登录网址,提高网站安全性
- 百度搜索推送管理: 自动向百度推送网站链接,提高网站在百度的收录率