之前使用了WordPress博客系统,相对扁平美观方便,现在有更适合我的博客系统,当然WordPress非常优秀,记录相关部署过程,留给需要的朋友借鉴

  • 整体架构:Centos 7 64位、Nginx、 PHP 7.3、 MySql 5.7+
  • 延展:cloudflare DNS托管

预备条件:准备一个VPS虚拟主机 + 域名(非必要条件)

这里我使用的搬瓦工的虚拟主机,域名是从老干爹购买的,使用国外的服务提供商,好处是不用备案,等其他中国特色的要求

老干爹:GoDaddy CN https://sg.godaddy.com/zh

搬瓦工:Mass VPS hosting on Enterprise equipment - BandwagonHost VPS https://bandwagonhost.com/

连接虚拟主机,执行环境准备:

  • ​ 使用SSH链接主机

    购买主机后运营商会发邮件里面附有主机	IP + SSH端口,和登录密码,推荐使用 Xshell 链接主机
    

20200626_195209.png

  • ​ 执行系统更新
yum -y update 

20200626_195514.png

看到一些讨论 update 和 upgarde,首先请勿在重要环境部署博客

其次,yum update和yum upgrade的功能都是一样的,都是将需要更新的package更新到源中的最新版。唯一不同的是,yum upgrade会删除旧版本的package,而yum update则会保留(obsoletes=0)。

生产环境中建议使用yum update,防止因为替换,导致旧的软件包依赖出现问题。

参考文章:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-yum#s1-yum-upgrade-system

https://unix.stackexchange.com/questions/55777/in-centos-what-is-the-difference-between-yum-update-and-yum-upgrade

https://www.jianshu.com/p/1f5c2fa8a65f

  • ​ 安装 wget
    yum install wget -y
    

    方便下载的工具,windows端也有,之前使用过此工具,下载了超多 音频资源

20200626_200111.png

安装Nginx

执行以下命令,在 /etc/yum.repos.d/ 下创建 nginx.repo 文件。

vi /etc/yum.repos.d/nginx.repo

按 “i” 切换至编辑模式,写入以下内容。

[nginx] 
name = nginx repo 
baseurl = https://nginx.org/packages/mainline/centos/7/$basearch/ 
gpgcheck = 0 
enabled = 1

按 “Esc”,输入 “:wq”,保存文件并返回。
执行以下命令,安装 nginx。

yum install -y nginx

执行以下命令,打开 nginx.conf 文件。

vi /etc/nginx/nginx.conf

按 “i” 切换至编辑模式,编辑 nginx.conf 文件。
找到 server
,并将 server 大括号中相应的配置信息替换为如下内容。用于取消对 IPv6 地址的监听,同时配置 Nginx,实现与 PHP 的联动。
说明:可使用 Ctrl+F 向下翻页、Ctrl+B向上翻页查看文件

server {
 listen       80;
 root   /usr/share/nginx/html;
 server_name  localhost;
 #charset koi8-r;
 #access_log  /var/log/nginx/log/host.access.log  main;
 #
 location / {
       index index.php index.html index.htm;
 }
 #error_page  404              /404.html;
 #redirect server error pages to the static page /50x.html
 #
 error_page   500 502 503 504  /50x.html;
 location = /50x.html {
   root   /usr/share/nginx/html;
 }
 #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 #
 location ~ .php$ {
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include        fastcgi_params;
 }
}

若 nginx.conf 文件中未找到 server,请在 include >/etc/nginx/conf.d/*conf;上方添加以上的 server 配置内容。如下图>所示:

20200626_195210.png

20200626_195211.png

按 “Esc”,输入 “:wq”,保存文件并返回。
执行以下命令启动 Nginx。

systemctl start nginx

执行以下命令,设置 Nginx 为开机自启动。

systemctl enable nginx 

在本地浏览器中访问以下地址,查看 Nginx 服务是否正常运行。
http://云服务器实例的公网 IP
显示如下,则说明 Nginx 安装配置成功

QQ截图20200627233316.png

安装PHP环境, PHP 直接安装最新版本,这是最新版本WordPress的要求

安装必要组件

yum -y install gcc gcc-c++

1在CentOS 7系统上安装和启用EPEL和Remi存储库。

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 

2安装yum-utils,这是一组用于管理yum存储库和包的有用程序。它有基本上扩>展yum默认功能的工具。
它可用于管理(启用或禁用)yum存储库以及包,无需任何手动配置等等。

yum -y install yum-utils

3.yum-utils提供的程序之一是yum-config-manager,可以使用它来启用Remi存储库作为安装不同PHP版本的默认存储库,选7.3的

yum-config-manager --enable remi-php71 [ 安装PHP 7.1 ]
yum-config-manager --enable remi-php72 [ 安装PHP 7.2 ]
yum-config-manager --enable remi-php73 [ 安装PHP 7.3 ]

4.现在使用以下命令安装PHP 7以及所有必需的模块。

yum -y install php php-mcrypt php-devel php-cli php-gd php-pear php-curl php-fpm php-mysql php-ldap php-zip php-fileinfo 

5.查看php版本

php -v

6.启动php-fpm

systemctl start php-fpm

开启启动

systemctl enable php-fpm.service

验证环境配置
执行以下命令,创建测试文件。

echo "<?php phpinfo(); ?>" >> /usr/share/nginx/html/index.php

执行以下命令,重启 Nginx 服务。

systemctl restart nginx

在本地浏览器中访问如下地址,查看环境配置是否成功。
http://云服务器实例的公网 IP
显示结果如下, 则说明环境配置成功

QQ截图20200627235334.png

安装MySql

安装 mysql 源

下载msql 源

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安装 mysql 源

yum localinstall -y mysql57-community-release-el7-11.noarch.rpm

安装 MySQL

yum install -y mysql-community-server

启动 MySQL 服务,在 CentOS 7 下,新的启动/关闭服务的命令是

systemctl start mysqld

查看 MySQL 状态

systemctl status mysqld

设置开机启动

systemctl enable mysqld

重载所有修改过的配置文件

systemctl daemon-reload

修改 root 本地账户密码
mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log 文件中。使
用grep 命令找到日志中的密码。

 grep 'temporary password' /var/log/mysqld.log

首次通过初始密码登录后,使用以下命令修改密码


shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Gotkx2020!'; 
或者

mysql> set password for 'root'@'localhost'=password('Gotkx2020!'); 

以后通过 update set 语句修改密码

mysql> use mysql;
mysql> update user set password=PASSWORD('MyNewPass5!') where user='root';
mysql> flush privileges;

注意:mysql 5.7 默认安装了密码安全检查插件(validate_password),
默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度
不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not >satisfy the current policy requirements 错误。查看 MySQL官网密码详>细策略
参考:mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password >does not satisfy the current policy requirements_kuluzs-CSDN博客>_error 1819 (hy000) at line 5: your password does n
https://blog.csdn.net/kuluzs/article/details/51924374

添加远程登录用户

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须添加一
个允许远程连接的帐户。或者修改 root 为允许远程连接(不推荐)

添加一个允许远程连接的帐户

mysql> GRANT ALL PRIVILEGES ON *.* TO 'gotkx'@'%' IDENTIFIED BY 'Gotkx2020!' WITH GRANT OPTION;

修改 root 为允许远程连接(不推荐)

mysql> use mysql;
mysql> UPDATE user SET Host='%' WHERE User='root';

刷新Mysql 配置

mysql> flush privileges;
设置默认编码为 utf8

mysql 安装后默认不支持中文,需要修改编码。
修改 /etc/my.cnf 配置文件,在相关节点(没有则自行添加)下添加编码配
置,如下:

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

<重启mysql服务,查询编码。可以看到已经改过来了

shell> systemctl restart mysqld
shell> mysql -uroot -p
mysql> show variables like 'character%';

QQ截图20200628003024.png

安装WordPress包

前往官网下载安装包 Download | WordPress.org https://wordpress.org/download/
使用xftp直接将文件内容解压到 /usr/share/nginx/html 这个目录下就行,切记是将下载下来的WordPress 安装包 Or 文件夹里面的内容,提取内容,解压到当前目录

QQ截图20200628004230.png

之后依然是,在本地浏览器中访问如下地址,查看环境配置是否成功。
http://云服务器实例的公网 IP
显示结果如下, 这是著名的“wordPress 五分钟安装界面”,按照引导输入即可

QQ截图20200628004413.png

这里还有两个小问题,

  • 使用之前创建的新远程用户,需要再创建一个 wordpress为名称的数据库

QQ截图20200628004423.png

  • 手动替换下 /html目录下的, wp-config文件内容,内容在提示框内

QQ截图20200628005418.png

##完成配置,大功告成

DNS托管
  • 众所周知的原因,我们需要更快的域名解析和访问,以及逃过长城防火墙监视,选择cloudflare进行DNS托管

此处需要在域名提供商和 cloudflare 两地进行配置,需要注册 cloudflare 账号,免费托管
Cloudflare - The Web Performance & Security Company | Cloudflare
https://www.cloudflare.com/

配置项如下,注册后会有新手帮助的,非必选操作
QQ截图20200628005907.png

cloudflare会一定程度上解决海外IP被墙的问题,并且在其他一些服务也有辅助效果,撒花,全部完结