架构图:

1、环境准备

角 色主机名ip说 明
负载均衡服务器lb01192.168.10.5、172.16.1.5安装nginx
web服务器web01192.168.10.7、172.16.1.7安装nginx+php
web服务器web02192.168.10.8、172.16.1.8安装nginx+php
数据库服务器db01192.168.10.51、172.16.1.51安装mariadb
nfs存储服务器nfs01192.168.10.31、172.16.1.31安装nfs

2、nfs存储服务器

共享目录:/uploads/wordpress/,属主属组:www(uid:1999,gid:1999,虚拟用户),设置所有用户都压缩

2.1 安装nfs

[root@nfs01 ~]#yum install -y rpcbind nfs-utils

2.2 创建www用户

[root@nfs01 ~]#groupadd -g 1999 www
[root@nfs01 ~]#useradd -g www -u 1999 -s /sbin/nologin  -M www

2.3 创建共享目录

[root@nfs01 ~]#mkdir -p /uploads/wordpress/
[root@nfs01 ~]#chown -R www.www /uploads/wordpress/

2.4 配置nfs

共享目录:/uploads/wordpress/ 设置所有用户压缩以www用户访问

[root@nfs01 ~]#vim /etc/exports
/uploads/wordpress/  172.16.1.0/24(rw,all_squash,anonuid=1999,anongid=1999)

2.5 重启rpc、nfs服务

[root@nfs01 ~]#systemctl restart rpcbind
[root@nfs01 ~]#systemctl restart nfs
[root@nfs01 ~]#systemctl enable rpcbind
[root@nfs01 ~]#systemctl enable nfs

3、数据库服务器

通过yum安装mariadb数据库

3.1 安装mariadb数据库服务

#1、安装mariadb数据库服务端
#mariadb-server:服务端
#mariadb:客户端
[root@db01 ~]#yum install -y mariadb-server
[root@db01 ~]#systemctl start mariadb
[root@db01 ~]#systemctl enable mariadb

3.2 数据库安全配置

#首次安装数据库需要执行,仅仅需要首次运行
[root@db01 ~]#mysql_secure_installation  #用于设置数据库root密码,清理用户和临时库
Enter current password for root (enter for none):  #直接回车
Set root password? [Y/n] y  #输入y,设置root密码
New password:           #输入密码,这里使用12345
Re-enter new password:    #确认密码

Remove anonymous users? [Y/n] y  #输入y,清理匿名用户
Disallow root login remotely? [Y/n] y  #输入y,禁止root远程登录
Remove test database and access to it? [Y/n] y  #输入y,删除测试数据
Reload privilege tables now? [Y/n] y  #输入y,刷新授权表

3.3 创建数据库

数据库名:wordpress,用户:wp,密码:12345,白名单网段:172.16.1.%

MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> grant all on wordpress.* to 'wp'@'localhost' identified by '12345';
MariaDB [(none)]> grant all on wordpress.* to 'wp'@'172.16.1.%' identified by '12345';
MariaDB [(none)]> flush privileges;

数据库备份与恢复:

#1、备份
[root@db01 ~]#mysqldump -uroot -p --all-databases > mariadb-all.sql
Enter password: 

#2、恢复
[root@db01 ~]#mysql -uroot -p < mariadb-all.sql 
Enter password: 

–all-databases:备份所有数据库

4、web01部署

nginx和php的用户统一为:www

4.1 创建www用户

虚拟用户:www,uid:1999,gid:1999

[root@web01 ~]#groupadd -g 1999 www
[root@web01 ~]#useradd -g www -u 1999 -s /sbin/nologin  -M www

4.2 安装php7.4

#1、删除旧版php
[root@web01 ~]#yum remove -y php*
[root@web01 ~]#yum remove -y remi-release.noarch

#2、安装php74
#配置php源
[root@web01 ~]#yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
#安装php74及相关依赖包
[root@web01 ~]#yum install -y php74 php74-php-bcmath php74-php-common php74-php-cli php74-php-devel php74-php-embedded php74-php-fpm php74-php-gd php74-php-intl php74-php-mbstring php74-php-mysqlnd php74-php-opcache php74-php-pdo php74-php-pear php74-php-pecl-igbinary php74-php-pecl-memcached php74-php-process php74-php-xml

#3、启动php
[root@web01 ~]#systemctl start php74-php-fpm
[root@web01 ~]#systemctl enable php74-php-fpm  #设置开机启动

4.3 修改php74配置文件

php74主配置文件:/etc/opt/remi/php74/php-fpm.conf

子配置文件:/etc/opt/remi/php74/php-fpm.d/www.conf

修改子配置文件,把user和group改成:www,默认是:apache

[root@web01 ~]#vim /etc/opt/remi/php74/php-fpm.d/www.conf
user = www
group = www

修改配置文件后,要重启 php74-php-fpm服务, php74-php-fpm服务端口:9000

4.4 安装nginx

#1、配置nginx的yum源
[root@web01 ~]#vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

#2、安装nginx
[root@web01 ~]#yum install -y nginx

4.5 配置站点目录

站点目录:/app/code/blog

[root@web01 ~]#mkdir -p /app/code/blog

4.6 站点配置文件

[root@web01 ~]#vim /etc/nginx/conf.d/blog.conf
server {
 listen 80;
 server_name blog.com;
 error_log /var/log/nginx/blog-error.log notice;
 access_log /var/log/nginx/blog-access.log main;
 root /app/code/blog;

 location / {
    index index.php;
  }

 location ~* \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_buffering on; #开启缓存
    fastcgi_buffers 64 64k; #设置缓存大小,64个每个64k,即64*64
 #   fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
 }
}

4.7 nginx进程用户www

修改nginx主配置文件:/etc/nginx/nginx.conf

[root@web01 ~]#vim /etc/nginx/nginx.conf
user  www;

4.8 重启nginx、php服务

[root@web01 ~]#systemctl restart nginx php74-php-fpm

4.9 部署WordPress

#1、下载wordpress
[root@web01 ~]#wget https://cn.wordpress.org/latest-zh_CN.tar.gz

#2、解压
[root@web01 ~]#tar xf latest-zh_CN.tar.gz
[root@web01 ~]#mv wordpress/* /app/code/blog/
[root@web01 ~]#chown -R www.www /app/code/blog/

4.10 挂载nfs存储

将app/code/blog/wp-content/uploads/目录挂载到nfs存储的共享目录/uploads/wordpress/

[root@web01 ~]#mount -t nfs  172.16.1.31:/uploads/wordpress/   /app/code/blog/wp-content/uploads/

4.11 安装wordpress

浏览器打开:192.168.10.7

点击开始安装:

填写相关信息,点击提交:

点击运行安装程序

填写相关信息安装即可。安装完成如下图:

注意:安装完成后,站点目录:/app/code/blog除了/wp-content/外,其他修改为root

[root@web01 ~]#chown -R root.root /app/code/blog/
[root@web01 ~]#chown -R www.www /app/code/blog/wp-content/

至此,Wordpress部署完毕。

5、web02部署

5.1 创建www用户

[root@web02 ~]#groupadd -g 1999 www
[root@web02 ~]#useradd -g www -u 1999 -s /sbin/nologin  -M www

5.2 nginx+php部署

按照web01的方法部署nginx+php环境,安装过程省略

修改nginx和php的用户为www

[root@web02 ~]#sed -ri '/^(user|group)/s#nginx#www#g' /etc/nginx/nginx.conf
[root@web02 ~]#sed -ri '/^(user|group)/s#apache#www#g' /etc/opt/remi/php74/php-fpm.d/www.conf

5.3 创建站点目录

[root@web02 ~]#mkdir -p /app/code/blog

5.4 站点配置文件

[root@web02 ~]#vim /etc/nginx/conf.d/blog.conf
server {
 listen 80;
 server_name blog.com;
 error_log /var/log/nginx/blog-error.log notice;
 access_log /var/log/nginx/blog-access.log main;
 root /app/code/blog;

 location / {
    index index.php;
  }

 location ~* \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_buffering on;
    fastcgi_buffers 64 64k;
 #   fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
 }
}

5.5 wordpress安装部署

由于在web01中已经部署好了wordpress,因此把web01的wordpress的代码发送到web02的站点目录/app/code/blog即可

在web01上操作:

[root@web01 ~]#cd /app/code/blog/
[root@web01 /app/code/blog]#scp -rp ./* root@192.168.10.8:`pwd`

-p:保持原有的属性不变

5.5 挂载nfs存储

[root@web02 ~]#mount -t nfs  172.16.1.31:/uploads/wordpress/   /app/code/blog/wp-content/uploads/

5.6 重启nginx、php服务

[root@web02 ~]#systemctl restart nginx php74-php-fpm
[root@web02 ~]#systemctl enable nginx php74-php-fpm

浏览器打开:192.168.10.8

OK,web02也部署成功。

6、负载均衡

负载均衡服务器:lb01

6.1 安装nginx

#1、配置nginx的yum源
[root@l01 ~]#vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

#2、安装nginx
[root@lb01 ~]#yum install -y nginx

6.2 配置负载均衡

[root@lb01 ~]#vim /etc/nginx/conf.d/lb.conf
#负载均衡配置
#创建负债均衡分组
upstream lb_pools {
  server 192.168.10.7:80;
  server 192.168.10.8:80;
}

server {
 listen 80;
 server_name lb.com;
 error_log /var/log/nginx/lb-error.log notice;
 access_log /var/log/nginx/lb-access.log main;
 
 location / {
    #把请求转发到后端的web节点
    proxy_pass http://lb_pools;
    proxy_set_header Host $http_host;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header  X-Real-Ip $remote_addr;
 }
}

6.3 重启nginx

[root@lb01 ~]#systemctl restart nginx
[root@lb01 ~]#systemctl enable  nginx

6.4 测试

浏览器打开负载均衡服务器的ip:192.168.10.5

OK,成功

抓包效果:

前面演示的是使用ip访问,建议做本地域名解析,使用域名部署。

因为使用ip部署后,访问Wordpress后台会跳转到安装wordpress的所在服务器的ip

7、会话保持

7.1 概述

用户的请求、登录的请求,进过负载均衡后落到后面的web服务器上,登录的状态/信息也会记录在web服务器上,就会导致不同的web服务器上,登录状态不统一,造成用户频繁需要登录。

会话:用户的登录状态、购物车状态。。。。

7.2 cookie vs session

技术点共同点区别其他
cookie存放用户的信息、登录信息存放在客户端浏览器服务器给客户端响应,进行设置set-cookie,未来再次访问携带这cookie访问服务端
session存放用户的信息、登录信息存放在服务端(文件、数据库…)浏览器cookie与服务端的session对应

set-cookie例如:

[root@web01 ~]#curl -v www.baidu.com
* About to connect() to www.baidu.com port 80 (#0)
*   Trying 14.119.104.254...
* Connected to www.baidu.com (14.119.104.254) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.baidu.com
> Accept: */*
> 
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: keep-alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Thu, 29 Jun 2023 14:47:58 GMT
< Etag: "588604dc-94d"
< Last-Modified: Mon, 23 Jan 2017 13:27:56 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

7.3 会话保持方案

1、登录状态写入cookis中(如,WordPress)
2、cookie+session方式+统一存放在session服务器(会话保持服务器)
3、通过认证服务实现Oauth2.0(使用token方式)
4、ip_hash方法
5、通过redis实现phpmyadmin/kodbox会话共享

流程:

1、db服务器:phpmyadmin用户,权限大一些
2、web服务器:部署代码,传输到另外一个web上
3、准备reids环境(在db01上部署)
4、修改php配置(创建新的端口)
5、接入负载均衡:访问与测试
1)db01服务器部署
1)准备phpmyadmin的用户

在db01服务器上,用户名:phpmyadmin,密码:12345,给所有数据库所有表授权

[root@db01 ~]#mysql -uroot -p12345
MariaDB [(none)]> grant all on *.* to 'phpmyadmin'@'172.16.1.%' identified by '12345';
MariaDB [(none)]> flush privileges;
2)web01服务器部署
1)部署代码

web01、web02服务器已事先部署好nginx+php环境

web01配置:

nginx配置:

[root@web01 ~]#vim /etc/nginx/conf.d/phpmyadmin.conf
server {
  listen 81;
  server_name phpmyadmin.com;
  error_log /var/log/nginx/phpmyadmin-error.log notice;
  access_log /var/log/nginx/phpmyadmin-access.log main;
  root /app/code/phpmyadmin;
  location / {
     index index.php;
  }
  location ~* \.php$ {
     fastcgi_pass 127.0.0.1:9001;  #使用9001端口
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
  }
}

创建站点目录:

[root@web01 ~]#mkdir -p /app/code/phpmyadmin

phpmyadmin官网:https://www.phpmyadmin.net/

代码部署:

下载phpMyAdmin解压放到/app/code/phpmyadmin目录

[root@web01 ~]#curl -o phpMyAdmin-5.2.1-all-languages.zip https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
[root@web01 ~]#unzip phpMyAdmin-5.2.1-all-languages.zip
[root@web01 ~]#mv phpMyAdmin-5.2.1-all-languages/* /app/code/phpmyadmin/

php配置:

[root@web01 ~]#cd /etc/opt/remi/php74/php-fpm.d/
[root@web01 /etc/opt/remi/php74/php-fpm.d]#cp www.conf session.conf
[root@web01 /etc/opt/remi/php74/php-fpm.d]#vim session.conf
[session]   ;改为session
user = www
group = www
listen = 127.0.0.1:9001  #9001端口
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/opt/remi/php74/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/opt/remi/php74/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files ;session以文件的形式保存
php_value[session.save_path]    = /var/opt/remi/php74/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/opt/remi/php74/lib/php/wsdlcache

#修改/var/opt/remi/php74/lib/php/session目录属主属组为www
[root@web01 ~]#chown -R www.www /var/opt/remi/php74/lib/php/session

phpmyadmin配置:

配置数据库服务器的ip

[root@web01 ~]#cd /app/code/phpmyadmin/
[root@web01 /app/code/phpmyadmin]#cp config.sample.inc.php config.inc.php
[root@web01 /app/code/phpmyadmin]#vim config.inc.php
$cfg['Servers'][$i]['host'] = '172.16.1.51';  

重启nginx、php服务:

[root@web01 ~]#systemctl restart nginx php74-php-fpm
2)测试

浏览器打开:http://192.168.10.7:81/

显示如下:

用户名、密码为db01服务器中设置的phpmyadmin(12345),登录后如下:

3)web02部署

按照web01的方法在web02上部署代码

1)部署代码

nginx站点配置:

[root@web02 ~]#vim /etc/nginx/conf.d/phpmyadmin.conf
server {
  listen 81;
  server_name phpmyadmin.com;
  error_log /var/log/nginx/phpmyadmin-error.log notice;
  access_log /var/log/nginx/phpmyadmi-access.log main;
  root /app/code/phpmyadmin;

  location / {
     index index.php;
  }
  location ~* \.php$ {
     fastcgi_pass 127.0.0.1:9001;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
  }
}

部署phpmyadmin:

[root@web02 ~]#curl -o phpMyAdmin-5.2.1-all-languages.zip https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
[root@web02 ~]#unzip phpMyAdmin-5.2.1-all-languages.zip -d /app/code/
[root@web02 ~]#mv /app/code/phpMyAdmin-5.2.1-all-languages/ /app/code/phpmyadmin

修改phpmyadmin配置文件:

设置数据库的ip

[root@web02 ~]#cd /app/code/phpmyadmin/
[root@web02 /app/code/phpmyadmin]#cp config.sample.inc.php config.inc.php 
[root@web02 /app/code/phpmyadmin]#vim config.inc.php
$cfg['Servers'][$i]['host'] = '172.16.1.51';

修改php子配置文件:

[root@web02 ~]#cd /etc/opt/remi/php74/php-fpm.d/
[root@web02 /etc/opt/remi/php74/php-fpm.d]#cp www.conf session.conf
[root@web02 /etc/opt/remi/php74/php-fpm.d]#vim session.conf
[session]
listen = 127.0.0.1:9001

修改/var/opt/remi/php74/lib/php/session目录属主属组为:www

[root@web02 ~]#chown -R www.www /var/opt/remi/php74/lib/php/session
2)测试

重启nginx、php服务

[root@web02 ~]#systemctl restart nginx php74-php-fpm

浏览器打开:192.168.10.8:81

登录成功如下图:

至此,web01、web02部署phpmyadmin成功

4)接入负载均衡

将web01、web02的phpmyadmin服务(端口:81)接入负载均衡

负载均衡服务器:lb01,ip:192.168.10.5、172.16.1.5

1)负载均衡配置
[root@lb01 ~]#vim /etc/nginx/conf.d/phpmyadmin.conf
upstream phpmyadmin {
  server 192.168.10.7:81;
  server 192.168.10.8:81;
}

server {
  listen 81;
  server_name phpmyadmin.com;
  error_log /var/log/nginx/phpmyadmin-error.log notice;
  access_log /var/log/nginx/phpmyadmin-access.log main;
  location / {
    proxy_pass http://phpmyadmin;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-Ip $remote_addr;
  }
}

重启nginx

[root@lb01 ~]#systemctl restart nginx
2)测试

浏览器打开:192.168.10.5:81

登录出错:

原因:做了负载均衡,没有做会话保持,导致无法登录。

5)部署redis

在数据库服务器(db01)上部署redis

lb01:ip:192.168.10.51、172.16.1.51

1) 安装redis
[root@db01 ~]#yum install -y redis
2)配置redis

修改/etc/redis.conf配置文件,把bind 127.0.0.1改成bind 127.0.0.1 172.16.1.51

[root@db01 ~]#vim /etc/redis.conf
bind 127.0.0.1 172.16.1.51

3)启动redis

[root@db01 ~]#systemctl enable redis
[root@db01 ~]#systemctl start  redis

redis服务端口:6379

6)修改web服务器的php配置
1)修改php配置文件

在前面的部署中,web01、02服务器的/etc/opt/remi/php74/php-fpm.d/session.conf文件的session配置使用默认的方式,即文件形式,如下:

php_value[session.save_handler] = files ;session以文件的形式保存
php_value[session.save_path]    = /var/opt/remi/php74/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/opt/remi/php74/lib/php/wsdlcache

因此要修改为数据库形式,保存到redis中,修改如下:

[root@web01 ~]#vim /etc/opt/remi/php74/php-fpm.d/session.conf
php_value[session.save_handler] = redis
php_value[session.save_path]    = tcp://172.16.1.51:6379
[root@web02 ~]#vim /etc/opt/remi/php74/php-fpm.d/session.conf
php_value[session.save_handler] = redis
php_value[session.save_path]    = tcp://172.16.1.51:6379

重启两台服务器的php

[root@web01 ~]#systemctl restart php74-php-fpm
[root@web02 ~]#systemctl restart php74-php-fpm
2)测试

浏览器打开:192.168.10.5:81

显然报错。

原因,安装php的时候缺少支持redis的模块

7)安装php的redis模块

web01、02两台服务服务器安装php74-php-pecl-redis

[root@web01 ~]#yum install -y php74-php-pecl-redis
[root@web02 ~]#yum install -y php74-php-pecl-redis

安装完成后,重启php服务

[root@web01 ~]#systemctl restart php74-php-fpm
[root@web02 ~]#systemctl restart php74-php-fpm
8)最终测试

浏览器打开:192.168.10.5:81

登录成功:

至此,phpmyadmin项目接入负载均衡、会话保持部署成功

注意:

以上wordpress、phpmyadmin部署都是基于ip。如何使用域名部署,以wordpress为例:
web01、web02的wordpress站点nginx配置文件,监听80端口,域名假设为:lb.blog.com
负载均衡服务器nginx配置文件,监听端口为80,域名同样为:lb.blog.com

部署完毕后,本地Windows做好hosts解析,就可以使用lb.blog.com域名访问博客站点。如下图:

8、wordpress安装Redis插件

1、登录后台—>插件—>安装插件,搜索:Redis Object Cache

wordpress配置文件(wp-config.php)末尾添加:

/* Redis连接的IP与端口 */
define( 'WP_REDIS_HOST', '172.16.1.51' );
define( 'WP_REDIS_PORT', 6379 );
define('WP_REDIS_SCHEME','tcp');
/* Redis连接密码,如果Redis设置了密码 */
/* define( 'WP_REDIS_PASSWORD', 'secret' ); */

/* 失败前尝试初始连接到Redis服务器的时间(单位为秒)*/
define( 'WP_REDIS_TIMEOUT', 5 );

/* 失败前尝试从Redis服务器读取的时间 */
define( 'WP_REDIS_READ_TIMEOUT', 5 );

/* 更改每个站点的数据库以避免缓存冲突 */
define( 'WP_REDIS_DATABASE', 1 );

/* 支持的客户端: phpredis, credis, predis and hhvm */
define( 'WP_REDIS_CLIENT', 'phpredis' );

/* 7天后自动删除缓存密钥 */
define( 'WP_REDIS_MAXTTL', 60 * 60 * 24 * 7 );

/* 绕过对象缓存,这对调试很有用 */
define( 'WP_REDIS_DISABLED', true );

/* 设置所有缓存键的前缀,如果在同一服务器中有多个WordPress站点,可以设置不同前缀避免冲突*/
define( 'WP_REDIS_PREFIX, 'WP' );

2、安装phpredis扩展

phpredis:https://pecl.php.net/package/redis

web01、web02两服务器都要安装配置:

[root@web01 ~]#wget https://pecl.php.net/get/redis-5.3.7.tgz  --no-check-certificate

安装:

[root@web01 ~]#tar xf redis-5.3.7.tgz 
[root@web01 ~/redis-5.3.7]#/opt/remi/php74/root/usr/bin/phpize
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
[root@web01 ~/redis-5.3.7]#./configure --with-php-config=/opt/remi/php74/root/usr/bin/php-config  --enable-redis
[root@web01 ~/redis-5.3.7]#make && make install

安装完成看看redis.so是否存在:

[root@web01 ~/redis-5.3.7]#ll  /opt/remi/php74/root/usr/lib64/php/modules/redis.so

配置:

[root@web01 ~/redis-5.3.7]#vim /etc/opt/remi/php74/php.d/20-redis.ini
;redis
extension=redis

重启php服务

但是,启动wordpress的redis会报错:

2、修改object-cache.php中的redis配置

默认Redis地址是:127.0.0.1,所以要修改。

[root@web01 /app/code/blog]#vim wp-content/plugins/redis-cache/includes/object-cache.php
 protected function build_parameters() {
        $parameters = [
            'scheme' => 'tcp',
            'host' => '172.16.1.51',
            'port' => 6379,
            'database' => 1,
            'timeout' => 1,
            'read_timeout' => 1,
            'retry_interval' => null,
            'persistent' => false,
        ];

最终效果如下:

redis成功开启

登录redis数据库,查看缓存,如下: