保姆级如何在VPS上搭建WordPress网站

你是否还在使用共享主机,并想尝试更高级的虚拟专用服务器(VPS)搭建WordPress网站?这篇教程正是为你准备的!

共享主机的局限与VPS的优势

共享主机确实方便,但它有三个主要弱点:

  1. 服务器资源得与他人共享,影响网站性能;
  2. 无法个性化加速网站;
  3. 安全策略不能自定义。

虽然共享主机像BlueHost、SiteGround、Kinsta这样的服务提供商会确保网站得到优化和更新,但你可能无法发挥最大潜力。

转向VPS,你不仅能完全掌控网站,还能学习如何从头到尾建设一个WordPress网站。你将了解从Linux操作系统到Nginx Web服务器,再到FTP和数据库的整个设置过程,甚至还包括HTTPS、资源优化和安全性的设置。

步骤1:选择并注册域名

首先,选择一个好记且有特色的域名至关重要。推荐使用全球最大的域名注册商GoDaddy进行注册。过程简单,但找到理想的域名可能需要些时间。

img

步骤2:准备SSH和SFTP客户端

为了高效与你的VPS通信,你需要SSH和SFTP客户端。

SSH客户端可以用来处理与VPS相关的所有工作,包括查看信息、系统升级、安装软件、安全配置、权限管理等等;SFTP客户端则主要用来上传/下载目录和文件。

1. SSH客户端

推荐使用Termius,这是一个跨平台的SSH客户端,适用于各种操作系统。注册免费账号后就可开始使用。

img

Termius提供了免费和付费两个版本。免费版功能已经很全面,但如果你追求更多高级功能,比如数据同步、SFTP、密码粘贴等,可以考虑升级到高级版。

2. SFTP客户端

为了更高效地管理文件,你需要一个SFTP客户端。我们推荐使用FileZilla,一款免费且开源的跨平台软件,兼容Windows、macOS和Linux。你还可以选择下载源代码,自行编译安装。

img

安装好TermiusFileZilla后,我们就可以进入下一步了。

步骤3:选择并购买VPS

市场上充斥着大量的VPS托管商,这里列举一些,大家可以自行选择。

在这篇文章中,以Hostwinds为例,它提供多种非管理型VPS托管套餐。

img

选择合适的套餐后,点击ORDER PACKAGE按钮开始注册流程。

img

Hostwinds提供60天退款保证和高达99.9999%的正常运行时间。完成注册后,你会看到订单确认页面:

img

在填写信息时,请注意以下几点:

  • Country: 选择你所在的国家。
  • Operating System: 选择CentOS 7作为操作系统。
  • Payment Information: 选择合适的付款方式,Hostwinds支持支付宝。
  • 取消所有默认勾选的附加服务。

确认所有信息无误后,同意服务条款并完成付款。付款成功后的页面如下:

img

点击Continue To Client Area按钮进入仪表盘,你会看到购买的VPS信息。

img

仪表盘上列出了你刚购买的VPS。点击右侧的Manage按钮查看详细信息。同时,你会收到Hostwinds发送的包含VPS详细信息的欢迎邮件,如下图所示:

img

现在,你已经有了自己的VPS IP地址(例如:23.254.164.198)。接下来,在确保VPS顺利运行之前,重要的一步是测试其网络连通性。无论你使用的是Windows还是macOS系统,都可以通过Ping命令来完成这一操作:

Windows系统中使用Ping命令

按住 Windows + R 键,输入 cmd,打开命令提示符。

img

输入 ping 23.254.164.198,并按回车。

img

如果看到“来自 23.254.164.198 的回复”信息,说明网络连接正常。

macOS系统中使用Ping命令

打开启动台(Dock),点击终端

img

输入 ping 23.254.164.198,按回车。

img

看到“64 bytes from 23.254.164.198”信息也表示网络通畅。

使用Termius代替macOS系统中的终端

如果你选择使用Termius,可以按以下步骤进行:

打开系统偏好设置,选择共享,勾选远程登录

img

img

在Termius中添加新主机,填写本地电脑的IP地址(127.0.0.1)、用户名和密码。

img

按照下图所示配置主机信息:

img

主要填写这几个字段:

  • **Label:**主机名称
  • **Address:**主机IP地址,由于我们是连接本地电脑,所以填写127.0.0.1
  • **SSH开关:**打开
  • **Username:**本地电脑的登录用户
  • **Password:**本地电脑的登录密码

确认无误之后,点击右上角的SAVE按钮进行保存,这时候主机列表中多了一条记录。右键点击新添加的主机,选择Connect via SSH

img

成功连接后,将出现如下所示的界面:

img

如果你的IP地址无法连通,可以在Hostwinds的控制面板中尝试更换IP地址。

img

步骤4:配置域名DNS

配置域名DNS是建立域名和VPS之间联系的关键步骤。请按照以下步骤操作:

在Hostwinds设置Nameserver

登录到Hostwinds仪表盘或检查欢迎邮件,找到Nameserver信息,例如:

  • mdns7.hostwindsdns.com
  • mdns8.hostwindsdns.com

在GoDaddy修改DNS

如果你的域名是通过GoDaddy注册的,请按以下步骤操作:

打开主页 → 域名

img

找到你的域名,点击旁边的**...,选择管理 DNS**。

img

将域名服务器类型更改为自定义,并根据Hostwinds的Nameserver信息配置DNS。

img

完成后点击保存

在Hostwinds管理DNS

转到Hostwinds仪表盘,选择Domains → Manage DNS

img

点击**+ Domain**按钮添加域名。

img

添加后,域名状态会显示为Pending,需要等待一段时间才能生效。一般几个小时即可,最长不会超过48小时。

如果着急,可以选择Action菜单中的Check按钮检查状态。

img

一旦DNS记录生效,域名状态将变为Active

最后,在Record菜单中进行一些设置。

img

通常只需输入两条记录即可,如下图所示:

img

完成之后,你的页面应该类似于这样:

img

完成这些步骤后,你的域名和VPS之间的联系就建立好了。请注意,这些更改可能需要一段时间才能完全生效。下一步,我们将远程连接到VPS并安装必要的软件来启动网站。

步骤5:连接你的VPS

1、获取VPS连接信息

首先,你需要找到VPS连接信息。这些信息通常可以在Hostwinds发送的邮件中找到。

img

或者在Hostwinds的仪表盘里面:

img

2、打开SSH客户端

推荐你使用Termius这个SSH客户端。打开Termius,然后选择Hosts菜单,接着点击NEW HOST按钮。

img

3、添加主机信息

在新弹出的界面中,填写以下信息:

  • 主机名称(Label): 随便填,比如说Hostwinds
  • 主机IP地址(Address): 输入你的VPS IP地址
  • SSH开关: 打开
  • SSH用户名(Username): 输入root
  • SSH密码(Password): 输入你的SSH密码

填写完毕后保存,然后双击刚刚添加的主机即可连接。第一次连接时,可能会弹出确认提示框,点击Yes即可。

img

4、连接成功

你已经成功连接到你的VPS了!用Termius连接成功后,界面会显示连接状态。

img

5、打开SFTP客户端

现在,我们需要用SFTP客户端FileZilla来管理文件。打开FileZilla,点击左上角的站点管理器图标。

img

6、添加主机到FileZilla

按照图示填写信息:

img

  • 主机: 输入你的VPS IP地址
  • 用户名: 输入root
  • 密码: 输入你的SSH密码
  • 端口: 一般是22

填写完成之后点击连接按钮,这时候FileZilla会弹出确认提示框,点击确认,然后与VPS连接成功。下图左侧是本地电脑的目录结构,右侧是VPS的目录结构:

img

现在你已经成功连接到VPS了,可以愉快地管理你的文件啦!

步骤6:安装WordPress

现在我们已经成功连接到VPS了!但在运行WordPress之前,我们需要先安装一些基础框架。

1、安装基础框架

在Termius中输入以下命令安装基础框架:

yum -y install pcre-devel zlib-devel flex bison ncurses libncurses-dev ncurses-devel mysql-devel gdb wget gcc unzip patch libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel curl-devel libxslt-devel openssl openssl-devel

你可以直接复制粘贴,在Termius中是这样的:

img

按下回车键,VPS将自动下载/更新这些基础框架。这可能需要几分钟时间,完成之后的界面是这样的:

img

2、创建WordPress目录

在根目录创建一个名为 /wordpress 的文件夹,可以使用以下命令:

mkdir /wordpress

或者,你也可以使用FileZilla在根目录右键点击创建。

img

创建完成之后,我们可以通过FileZilla看到新增的目录,如果你没有看到,请右键点击刷新:

img

回到Termius,我们执行命令进入目录**/wordpress**中:

cd /wordpress

3、下载WordPress

使用Termius下载WordPress。首先,打开官方网站,复制 .tar.gz 文件的下载链接,例如:https://cn.wordpress.org/latest.tar.gz

img

在Termius中执行以下命令:

wget https://cn.wordpress.org/latest.tar.gz

现在你的Termius应该类似于这样:

img

按下回车键,稍等片刻,下载完成后执行以下命令解压文件:

tar zxvf latest.tar.gz

现在你的Termius应该类似于这样:

img

解压很快就可以完成,我们现在得到了一个wordpress文件夹。

4、重命名WordPress目录

将解压得到的 wordpress 文件夹重命名为你的域名(比如 bestyvps.com):

mv wordpress bestyvps.com

5、设置目录权限

设置目录权限以确保系统用户都能访问:

chown -R nobody:nobody /wordpress/bestyvps.com

现在,WordPress已经安装并准备就绪!但要让它正常运行,我们需要安装PHP环境。

步骤7:安装PHP

1、下载PHP

打开PHP官方网站,在Termius中输入以下命令下载并安装PHP(示例中选择版本为7.2.15):

img

cd /wordpress
wget http://php.net/distributions/php-7.2.15.tar.gz
tar zxvf php-7.2.15.tar.gz
cd php-7.2.15

2、编译PHP

在Termius中执行以下命令,编译安装PHP。确保将以下所有内容复制并粘贴到Termius上执行:

./configure --prefix=/usr/local/php \
 --with-curl \
 --with-freetype-dir \
 --with-gd \
 --with-gettext \
 --with-iconv-dir \
 --with-kerberos \
 --with-libdir=lib64 \
 --with-libxml-dir \
 --with-mysqli \
 --with-openssl \
 --with-pcre-regex \
 --with-pdo-mysql \
 --with-pdo-sqlite \
 --with-pear \
 --with-png-dir \
 --with-xmlrpc \
 --with-xsl \
 --with-zlib \
 --enable-fpm \
 --enable-bcmath \
 --enable-libxml \
 --enable-inline-optimization \
 --enable-gd-native-ttf \
 --enable-mbregex \
 --enable-mbstring \
 --enable-opcache \
 --enable-pcntl \
 --enable-shmop \
 --enable-soap \
 --enable-sockets \
 --enable-sysvsem \
 --enable-xml \
 --enable-zip

请注意:PHP 7.4+版本请执行这项命令

大约一分钟之后,./configure命令执行完毕,成功之后的界面应该是这样的,会打印出License信息:

img

现在我们开始安装PHP,这个过程需要很长时间,可能会超过10分钟,请耐心等待。执行以下命令安装:

make && make install

3、增加虚拟内存

在安装的过程中,你很可能会遇到下面的错误:

img

执行以下命令增加虚拟内存:

fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

4、检查内存

检查虚拟内存是否增加成功:

free -m

可以看到,我们已经成功创建了1GB的虚拟内存(Swap):

img

5、完成PHP安装

接下来,我们继续安装PHP,首先进入目录**/wordpress/php-7.2.15**,然后执行安装操作。现在,你可以放心地休息一下,或者去喝杯茶了,因为安装过程通常会超过10分钟...

cd /wordpress/php-7.2.15

make && make install

经过漫长的等待之后,PHP终于安装好了,安装成功的界面应该是这样的:

img

执行下面几条命令,将PHP的配置文件拷贝到系统目录中:

cp php.ini-development /usr/local/php/lib/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

现在,我们要将PHP添加到全局环境变量中,执行下面的命令修改**/etc/profile**文件:

vi /etc/profile

注意将输入法切换为英文,然后按住键盘上的(或Shift+G)键滚动到文件底部,然后按i键进入编辑状态,在文件最后面追加以下内容:

export PATH="/usr/local/php/bin:$PATH"

这时候你的SSH界面看起来应该是这样的:

img

再按键盘上的Esc键退出编辑模式,然后输入以下命令保存文件:

:wq

SSH界面示例:

img

保存文件并使配置生效:

source /etc/profile

现在PHP已经安装成功,并且配置完毕,执行下面的命令就可以将其启动:

sudo /usr/local/php/sbin/php-fpm

6、设置开机自启动

现在,PHP已经顺利启动,但我们还差一个步骤,那就是让它开机自动运行。

编辑 /etc/rc.local 文件:

vi /etc/rc.local

在文件末尾添加PHP的启动命令:

sudo /usr/local/php/sbin/php-fpm

SSH界面示例:

img

保存文件:wq并为 /etc/rc.local 添加执行权限:

chmod +x /etc/rc.local

现在,PHP已经安装并配置好了,可以开机自启动了!

步骤8:安装MySQL

1、下载和安装MySQL

首先,你需要获取MySQL的最新版本,可以从MySQL官方网站获取。然后,在Termius中执行以下命令:

img

# 进入 /wordpress 目录

cd /wordpress

# 下载mysql源安装包

wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

# 安装mysql源

yum -y localinstall mysql80-community-release-el7-2.noarch.rpm

# 安装MySQL

yum -y install mysql-community-server

大概几分钟之后,MySQL就安装好了,SSH界面应该类似于这样:

img

2、配置MySQL

完成安装后,设置MySQL开机启动并立即启动服务:

# 开机启动
systemctl enable mysqld
systemctl daemon-reload

# 启动MySQL服务
systemctl start mysqld

MySQL启动后会生成超级用户root的临时密码。通过以下命令查看临时密码:

tail -n 50 /var/log/mysqld.log

SSH界面示例:

img

从上图可以看到,root用户的临时密码是**/fSi(UG?J0rh**;

3、登录并设置密码

使用以下命令登录MySQL,使用临时密码:

mysql -u root -p

这时候会要求输入密码,你可以直接复制并粘贴上去,为了安全起见,密码并不会在SSH控制台显示出来。成功登录之后,SSH界面应该是这样的,MySQL服务端的版本为8.0.15:

img

输入临时密码,登录成功后,更新root用户的密码:

# 选择数据库
use mysql;
# 将root用户的密码设置为 /fSi(UG?J0rhABC

alter user 'root'@'localhost' identified by '/fSi(UG?J0rhABC' password expire never;

alter user 'root'@'localhost' identified with mysql_native_password by '/fSi(UG?J0rhABC';

创建数据库和用户:

# 修改root可以远程访问
create user 'root'@'%' identified by '/fSi(UG?J0rhABC' password expire never;
alter user 'root'@'%' identified with mysql_native_password by '/fSi(UG?J0rhABC';

# 创建一个数据库用户,名为wordpress
create user 'wordpress'@'%' identified by '/fSi(UG?J0rhABC' password expire never;
alter user 'wordpress'@'%' identified with mysql_native_password by '/fSi(UG?J0rhABC';

# 创建数据库,使用域名为数据库的名称
create database `bestyvps.com` default character set = utf8;

# 给用户授予所有操作权限
grant all privileges on *.* to 'root'@'%' with grant option;
grant all privileges on *.* to 'wordpress'@'%' with grant option;

# 刷新用户权限
flush privileges;

# 退出MySQL
quit;

4、完成MySQL安装

MySQL已成功安装并配置好!现在,你可以继续设置反向代理Nginx来启动WordPress网站。

步骤9:安装Nginx

首先,我们要安装Nginx。前往Nginx官方网站,找到最新的稳定版本(目前为1.14.2)。

img

安装Nginx很简单,只需要在SSH终端执行以下命令:

# 进入 /wordpress 目录
cd /wordpress

# 创建待用目录
mkdir /opt/nginx

# 下载nginx源代码
wget http://nginx.org/download/nginx-1.14.2.tar.gz

# 解压并进入解压后的目录
tar zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2

# 编译
./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module

# 安装
make && make install

等待1~2分钟,Nginx安装完成。在SSH终端中应该看到类似这样的界面。

img

现在Nginx已经安装好了,接下来我们需要修改默认的配置文件**/opt/nginx/conf/nginx.conf**。由于修改内容较多,建议使用FileZilla将服务器上的文件下载到本地进行修改,然后再上传到VPS。

img

修改nginx.conf文件成以下内容:

# 这一行是注释,请将文件中的bestyvps.com修改成你自己的域名
worker_processes     1;
events {
  worker_connections 1024;
}
http {
  include      mime.types;
  default_type application/octet-stream;
  
  client_header_buffer_size     128k;
  client_max_body_size          50m;
  large_client_header_buffers   4 128k;
  server_names_hash_bucket_size 128;
  sendfile          on;
  keepalive_timeout 60;
  tcp_nodelay       on;
  tcp_nopush        on;
  
  fastcgi_buffer_size          64k;
  fastcgi_buffers              4 64k;
  fastcgi_busy_buffers_size    128k;
  fastcgi_connect_timeout      300;
  fastcgi_read_timeout         300;
  fastcgi_send_timeout         300;
  fastcgi_temp_file_write_size 128k;
  fastcgi_intercept_errors     on;
    
  gzip on;
  gzip_buffers    4 16k;
  gzip_comp_level 2;
  gzip_disable    "MSIE [1-6]\.";
  gzip_min_length 1k;
  gzip_types      text/plain text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  gzip_vary       off;
  server {
    listen 80;
    server_name www.bestyvps.com bestyvps.com;
    root /wordpress/bestyvps.com/;
    index index.php;
    charset utf-8;
  
    location ~ /.well-known {
      allow all;
    }
  
    location ~* .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|json|css|ttf|woff|woff2|eot|svg|flv|swf|map|xsl|zip)$ {
      add_header Access-Control-Allow-Origin *;
      expires max;
    }
    location / {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include       fastcgi_params;
      try_files     $uri $uri/ /index.php?$args;
    }
  }
}

修改完成后,上传到VPS,并执行以下命令启动Nginx:

sudo /opt/nginx/sbin/nginx

和之前介绍的PHP一样,我们需要让Nginx开机自动启动。编辑**/etc/rc.local**文件,在末尾添加sudo /opt/nginx/sbin/nginx,确保文件内容如下:

img

Nginx的配置已经完成,但为了让其他人访问你的网站,需要打开以下两个端口:

  • 80: HTTP协议端口
  • 443: HTTPS协议端口

配置防火墙

VPS托管商对系统防火墙的处理一般分为以下三种情况:

  • 没有预装防火墙
  • 预装了防火墙,但未启动
  • 预装了防火墙,并随系统自动启动

不论哪种情况,执行以下命令进行配置:

# 安装防火墙,如果系统中已存在,那就会执行更新
yum -y install firewalld

# 开机启动防火墙
systemctl enable firewalld

# 立即启动防火墙
systemctl restart dbus
systemctl restart firewalld

# 查看防火墙的状态
systemctl status firewalld

# 打开2200(自定义端口,修改SSH默认端口用,见下文)、80HTTP)、443HTTPS)端口
firewall-cmd --zone=public --add-port=2200/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent

# 更新防火墙规则
firewall-cmd --complete-reload

# 查看所有打开的端口和服务
firewall-cmd --zone=public --list-ports
firewall-cmd --list-services

配置完成后,SSH控制台应该显示如下内容:

img

现在HTTP/HTTPS协议端口已经打开,打开浏览器,输入网址bestyvps.com/

这部分结束了,接下来的HTTPS设置我们会一步步来处理。

步骤8:安装SSL证书

要给你的网站加上SSL证书,让它更安全,我们使用的是免费的Let's Encrypt提供的SSL证书。跟着以下几个简单的步骤来操作:

首先,进入到你的 /wordpress 目录:

# 进入 /wordpress 目录
cd /wordpress

# 安装 certbot
yum -y install epel-release
yum -y install certbot

# 获取证书,请把域名和邮箱修改成你自己的
certbot certonly --webroot -w /wordpress/bestyvps.com -d bestyvps.com -d www.bestyvps.com --agree-tos -m example@bestyvps.com --agree-tos

# 在安装过程中,会询问你是否愿意公开自己的邮件地址,输入Y,然后按回车即可

一旦证书获取成功,它们会被存放在 /etc/letsencrypt/live/ 目录下。你的SSH控制台看起来会像这样:

img

如果不幸遇到下面这个错误,别担心,可能只是域名DNS还没生效,等几个小时再来获取SSL证书:

img

现在我们有了SSL证书,接下来要调整 /opt/nginx/conf/nginx.conf 配置文件。你有两个选择:

  • 将 https://bestyvps.com 作为网站首页,网站链接不带www
  • 将 https://www.bestyvps.com 作为网站首页,网站链接带www

两者的区别在于网站链接是否以www开头,nginx.conf的文件内容稍微有点不同:

https://bestyvps.com 作为网站首页

请将nginx.conf文件修改成下面这样

# 这一行是注释,请将文件中的bestyvps.com修改成你自己的域名
worker_processes     1;
events {
  worker_connections 1024;
}
http {
  include      mime.types;
  default_type application/octet-stream;
  
  client_header_buffer_size     128k;
  client_max_body_size          50m;
  large_client_header_buffers   4 128k;
  server_names_hash_bucket_size 128;
  sendfile          on;
  keepalive_timeout 60;
  tcp_nodelay       on;
  tcp_nopush        on;
  
  fastcgi_buffer_size          64k;
  fastcgi_buffers              4 64k;
  fastcgi_busy_buffers_size    128k;
  fastcgi_connect_timeout      300;
  fastcgi_read_timeout         300;
  fastcgi_send_timeout         300;
  fastcgi_temp_file_write_size 128k;
  fastcgi_intercept_errors     on;
    
  gzip on;
  gzip_buffers    4 16k;
  gzip_comp_level 2;
  gzip_disable    "MSIE [1-6]\.";
  gzip_min_length 1k;
  gzip_types      text/plain text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  gzip_vary       off;
  server {
    listen 80;
    server_name www.bestyvps.com bestyvps.com;
    rewrite ^ https://bestyvps.com$request_uri permanent;
  }
  
  server {
    listen 443 ssl;
    server_name www.bestyvps.com;
    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/bestyvps.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bestyvps.com/privkey.pem;
    ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    rewrite ^ https://bestyvps.com$request_uri permanent;
  }
  
  server {
    listen 443 ssl;
    server_name bestyvps.com;
    root /wordpress/bestyvps.com/;
    index index.php;
    charset utf-8;
    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/bestyvps.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bestyvps.com/privkey.pem;
    ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    location ~ /.well-known {
      allow all;
    }
  
    location ~* .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|json|css|ttf|woff|woff2|eot|svg|flv|swf|map|xsl|zip)$ {
      add_header Access-Control-Allow-Origin *;
      expires max;
    }
    location / {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include       fastcgi_params;
      try_files     $uri $uri/ /index.php?$args;
    }
  }
}

https://www.bestyvps.com 作为网站首页

请将nginx.conf文件修改成下面这样:

# 这一行是注释,请将文件中的bestyvps.com修改成你自己的域名
worker_processes     1;
events {
  worker_connections 1024;
}
http {
  include      mime.types;
  default_type application/octet-stream;
  
  client_header_buffer_size     128k;
  client_max_body_size          50m;
  large_client_header_buffers   4 128k;
  server_names_hash_bucket_size 128;
  sendfile          on;
  keepalive_timeout 60;
  tcp_nodelay       on;
  tcp_nopush        on;
  
  fastcgi_buffer_size          64k;
  fastcgi_buffers              4 64k;
  fastcgi_busy_buffers_size    128k;
  fastcgi_connect_timeout      300;
  fastcgi_read_timeout         300;
  fastcgi_send_timeout         300;
  fastcgi_temp_file_write_size 128k;
  fastcgi_intercept_errors     on;
    
  gzip on;
  gzip_buffers    4 16k;
  gzip_comp_level 2;
  gzip_disable    "MSIE [1-6]\.";
  gzip_min_length 1k;
  gzip_types      text/plain text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  gzip_vary       off;
  server {
    listen 80;
    server_name www.bestyvps.com bestyvps.com;
    rewrite ^ https://www.bestyvps.com$request_uri permanent;
  }
  
  server {
    listen 443 ssl;
    server_name bestyvps.com;
    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/bestyvps.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bestyvps.com/privkey.pem;
    ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    rewrite ^ https://www.bestyvps.com$request_uri permanent;
  }
  
  server {
    listen 443 ssl;
    server_name www.bestyvps.com;
    root /wordpress/bestyvps.com/;
    index index.php;
    charset utf-8;
    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/bestyvps.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bestyvps.com/privkey.pem;
    ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    location ~ /.well-known {
      allow all;
    }
  
    location ~* .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|json|css|ttf|woff|woff2|eot|svg|flv|swf|map|xsl|zip)$ {
      add_header Access-Control-Allow-Origin *;
      expires max;
    }
    location / {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include       fastcgi_params;
      try_files     $uri $uri/ /index.php?$args;
    }
  }
}

修改完成后,运行以下命令应用新的配置:

/opt/nginx/sbin/nginx -s reload

我们在这篇文章里使用了 https://bestyvps.com/ 作为网站首页。在浏览器中输入 bestyvps.com,按回车,网址会自动跳转到HTTPS协议。

前期工作已经搞定,接下来就是启动WordPress网站了。不过要注意,Let's Encrypt提供的免费SSL证书只有90天的有效期。在证书到期之前,你需要执行一条命令来更新:

certbot renew --force-renew

更新完之后,再让Nginx应用新的证书:

/opt/nginx/sbin/nginx -s reload

步骤11:启动WordPress网站

终于到了最后一步啦!在浏览器中输入你的域名,然后选择你喜欢的网站语言(我们以简体中文为例),接着点击继续按钮,进入下一步。你会看到一个提示页面,需要准备数据库连接信息:

img

如果你找不到数据库连接信息,请参考之前安装MySQL的部分,按照下面的示例输入相关信息:

img

确认信息无误后,点击提交按钮。

如果所有信息都填写正确,你会看到下面这个页面:

img

点击现在安装按钮,在下一个页面中输入网站的一些必要信息:

img

上图中是一些必要的信息,其中密码已经自动生成。

  • **站点标题:**这相当于你网站的名字。例如,我们的站点标题是“十佳评测”,之后可以随时修改;
  • **用户名和密码:**用于登录网站的管理后台。用户名无法修改,但密码之后可以修改;
  • **你的电子邮件:**用于接收网站相关信息,如核心更新、访客留言等;
  • **对搜索引擎的可见性:**如果现在不希望你的网站出现在谷歌百度搜狗的搜索结果中,请勾选此选项。别担心,之后还可以修改。

确保将密码妥善保存,然后点击安装WordPress按钮。

点击登录按钮,进入网站后台的登录页面:

img

输入刚才设定的用户名和密码,然后点击登录按钮,你将进入网站的管理后台。

在浏览器中输入你的域名,你会看到一个全新的外观。

你的网站现在正式上线啦!在管理后台,你可以撰写文章、上传图片、更新主题、设计页面等等,有很多工作等着你。

成功