Ubuntu18.04安装带有Nginx,MariaDB10和PHP7的WordPress且使用Cloudflare的CDN/SSL

Posted by D on February 14, 2020

1.IP获取(购买VPS)

VPS 购买:搬瓦工,也可以选择其他厂商.

2.域名申请

2.1 注册freenom帐号

2.2 注册域名(freenom注册的域名可免费试用一年),步骤:

  • 登录freenom
  • Services
  • Register a New Domain
  • 在输入框(显示Find your new Domain)中输入域名
  • 点击Check Availability
  • 如果域名可用它会出现,选一个喜欢的 点击Get it now
  • 跳转到另一页面, Period 下面,点下拉框 选 12 Months@FREE(12个月免费)
  • 点击 Continue
  • Review & Checkout 输入一个有效的邮箱用来接收信息
  • Your Details 页面,填写信息随便填,只要能通过,邮箱有效就行,点Complete Order
  • 完成后注意查收邮件,登录freenom,点击 Services
  • My Domains
  • 看到刚注册的域名 Status是 ACTIVE 说明注册成功

注意:下面所有的步骤中涉及到域名 example.com 请均改为你自己申请的域名.

3.注册Cloudflare且配置

3.1 在这里:
注册CLoudflare
sign-up Cloudflare

3.2 Add a Site
注册完成后点击Add a Site
add-a-site

3.3 输入你已注册的域名
add-your-site

3.4 Cloudflare 查询 DNS
cloudflare-query-your-dns

3.5 选择Cloudflare一款套餐
select-a-plan-of-cloudflare
完成和你应该看到Cloudflare给你分配的两个nameservers.
change-your-nameservers

3.6 替换为Cloudflare的nameservers.
use-custom-name-servers
保存自定义名称服务器更改后,请返回您的Cloudflare帐户并等待Cloudflare看到更改.
根据您的域提供商的不同,最多需要一个小时才能看到Cloudflare.
成功后你将会看到Active.
active
完成上面的所有东西你再查看你的Cloudflare帐户里的DNS标签如下:
done

3.7 SSL/TLS
如果要额外加V2ray建议使用Ubuntu18.04安装v2ray(用CDN避免被墙)的获取证书的方法.

3.7.1 SSL/TLS标签下的Overview页选择Full(strict)
full-strict

3.7.2 使用Cloudflare签署的免费TLS证书.
create-certificate
点击Create certificate,出来下面页面:
选择Let Cloudflare generate a private key and a CSR,然后点击Next.
Origin Certificate Installation
然后将它们复制粘贴到服务器上的文本文件中.

3.7.3 在Ubuntu上,运行下面的命令来创建密钥、证书和源文件,并保存.
对于key file运行下面命令并复制粘贴:

sudo vi /etc/ssl/private/cloudflare_example.com.pem

对于certificate file运行下面命令并复制粘贴:

sudo vi /etc/ssl/certs/cloudflare_example.com.pem

你还需要下载Cloudflare Origin Pull certificate,可以从下面的链接下载:
Origin Pull Certificate
或者使用下面命令下载:

cd /etc/ssl/certs/
sudo wget https://support.cloudflare.com/hc/en-us/article_attachments/360044928032/origin-pull-ca.pem

3.7.4 总是启用HTTPS
always-use-https
往下拉还有一个 HTTP Strict Transport Security (HSTS) 可以启用也可以不启用.
往下拉启用 Opportunistic EncryptionAutomatic HTTPS Rewrites
切换到 Origin Server 这页启用 Authenticated Origin Pulls

3.8 Speed标签设置(速度优化)
Speed标签下面的Optimization页的 Auto Minify 这栏的3个复选框全勾选.

  • JavaScript
  • CSS
  • HTML

3.9 Page Rules 标签
来到Page Rules标签,点击Create Page Rule选择Always Use HTTPS.
page-rules-always-use-https

4.安装nginx

4.1 更新apt-get

sudo apt-get update && sudo apt-get upgrade

4.2 安装编译依赖包
4.2.1 安装build-essential包

sudo apt-get install build-essential

该命令安装了一组新的包,包括gcc,g++,make.
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境.

4.2.2 安装libtool

sudo apt-get install libtool

GNU libtool是通用库支持脚本.它将共享库的使用隐藏在一个一致的可移植的接口后面.

4.3 安装pcre依赖库

sudo apt-get install libpcre3 libpcre3-dev

pcre是一个Perl库,包括perl兼容的正则表达式库.nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库.

4.4 安装zlib依赖库

sudo apt-get install zlib1g-dev

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库.

4.5 安装SSL依赖库

sudo apt-get install libssl-dev

openssl是一个强大的安全套接字层密码库,囊括主要的密码算法,常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用.nginx不仅支持http协议,还支持https(即在SSL协议上传输http),所以需要在linux安装openssl库.

4.6 安装

sudo apt-get install nginx

4.7 设置开机启动nginx且启动nginx

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

4.8 检测nginx是否安装成功
在浏览器输入你的服务器的IP地址,比如:192.168.1.100,出现如下信息说明成功:
Welcome to nginx!

如果想源码编译安装nginx请查看:ubuntu18.04安装nginx1.16.1(源码编译安装)
注意:如果nginx是源码编译安装,那么下面的步骤的内容会不一样.

5.安装MariaDB

我们将使用MariaDB作为我们的WordPress数据库,要安装MariaDB,请运行以下命令:

sudo apt-get install mariadb-server mariadb-client

安装完成后,我们将启动它并将其配置为在系统引导时自动启动:

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

数据库安全配置

sudo mysql_secure_installation

当提示时,按如下指南回答问题:

  • Enter current password for root (enter for none): 按Enter键
  • 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

检查是否安装成功:

sudo mysql -u root -p

输入密码后看到如下字符串,说明登录成功.

MariaDB[(none)]>

6.安装PHP7.2-FPM及相关模块

由于WordPress是用PHP编写的应用程序,
我们将安装PHP和运行WordPress所需的PHP包,使用以下命令:

sudo apt-get install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl

安装PHP7.2完成后,打开nginx的PHP默认配置文件,进行如下配置:

sudo vi /etc/php/7.2/fpm/php.ini

下面的配置对大多数基于PHP的CMS来说都是好的配置,当然如果自己的需求可自行配置.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

重启nginx

sudo systemctl restart nginx.service

安装完成后,启动php-fpm服务器:

sudo systemctl start php7.2-fpm
sudo systemctl enable php7.2-fpm

7.创建wordpress数据库

登录mariadb

sudo mysql -u root -p

创建wordpress数据库

CREATE DATABASE wordpress

创建wordpress数据库用户(secure_password换成自己安全系数高的密码)

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'secure_password';

给用户授权

GRANT ALL ON wordpress.* TO 'wp_user'@'localhost';

保存你的更改然后退出.

FLUSH PRIVILEGES
EXIT;

8.下载wordpress最新的版本

使用以下wget命令下载最新的WordPress包:

cd /tmp && wget http://wordpress.org/latest.tar.gz

然后用以下内容提取存档:

sudo tar -xvzf latest.tar.gz
sudo mv wordpress /var/www/html/example.com

设置wordpress根目录的正确权限并给予nginx控制权.

sudo chown -R www-data:www-data  /var/www/html/example.com/ 
sudo chmod -R 755 /var/www/html/example.com/

9.配置nginx

创建新的配置文件example.com

sudo vi /etc/nginx/sites-available/example.com

example.com 替换为自己的域名.

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name  example.com www.example.com;
    root   /var/www/html/example.com;
    index  index.php;

    ssl_certificate /etc/ssl/certs/cloudflare_example.com.pem;
    ssl_certificate_key /etc/ssl/private/cloudflare_example.com.pem;
    ssl_client_certificate /etc/ssl/certs/origin-pull-ca.pem;
    ssl_verify_client on;

    client_max_body_size 100M;
  
    autoindex off;

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

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

10.使能wordpress

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx.service

浏览器输入 https://example.com/ 会出现下图: Select-WordPress-Install-Language

选择WordPress安装语言

在下一页上输入我们之前设置的数据库凭据:

WordPress-Database-Settings

WordPress数据库设置

提交表单,然后在下一个屏幕上配置您的网站标题,管理员用户和电子邮件:

WordPress-Website-Setup

WordPress网站设置

您的安装现已完成,您可以开始管理您的WordPress网站。 您可以先安装一些全新的主题或通过插件扩展网站功能。

结论: 就是这样。 在Ubuntu 18.04上设置自己的WordPress安装的过程。 我希望这个过程简单明了。

参考:How To Setup WordPress With Nginx And Cloudflare CDN / SSL On Ubuntu 16.04 | 18.04
参考:英文原版:Install WordPress with Nginx, MariaDB 10 and PHP 7 on Ubuntu 18.04
参考:在Ubuntu 18.04上安装带有Nginx,MariaDB 10和PHP 7的WordPress

: