隔壁群天天吹 Redis,我索性也装一个。本博客宿主机为 Docker 环境,用到的容器包括 PHP 容器、Nginx 容器以及 MySQL 容器,以及新增的 Redis 容器。

网络环境

本博客运行所需容器均位于同一个 Docker 桥接网络下,各个容器间可以通过容器名访问其他容器。

这样的好处是网络交互均在内部进行,除 Nginx 外,不需要映射其他端口至外部端口。

前期准备

既然是 Docker 环境,首先拉取一个 Redis 容器下来:

$docker pull redis

检查 PHP 容器所处的网络组,记住其网络名:

所有准备工作完成。

配置并启动Redis容器

  1. 创建配置文件及目录
    创建 Redis 所需目录:

    mkdir ~/conf
    mkdir -p ~/data/redis_data
    

    克隆默认配置文件redis.conf:

    # www.azimiao.com 梓喵出没博客
    cd ~/conf
    wget https://raw.githubusercontent.com/redis/redis/unstable/redis.conf
    

    按需配置redis.conf。举个例子,加入连接密码:

    requirepass mypassword //取消前面的#号并修改密码文本
    
  2. 启动容器
    启动 Redis 容器,并映射配置文件与数据目录:

    # 梓miao出没博客 www.azimiao.com 
    docker run -itd \
    --name redis_server1 \
    -v /home/yetu/conf/redis.conf:/etc/redis.conf \
    -v /home/yetu/data/redisdata:/data \
    --network blog_default \
    --restart=always redis redis-server /etc/redis.conf
    

    命令解析:

    • -v /home/yetu/conf/redis.conf:/etc/redis.conf:映射配置文件
    • -v /home/yetu/data/redis_data:/data:映射数据文件
    • --network blog_default:加入 blog_default 网络
    • redis-server /etc/redis.conf:使用配置文件启动容器内的 redis-server

    之后在 php 容器中,可以 ping 通 redis_server1:

    #ping redis_server1
    PING redis_server1 (172.18.0.4): 56 data bytes
    64 bytes from 172.18.0.4: seq=0 ttl=64 time=0.177 ms
    64 bytes from 172.18.0.4: seq=1 ttl=64 time=0.181 ms
    64 bytes from 172.18.0.4: seq=2 ttl=64 time=0.162 ms
    

配置PHP

检查 php 是否安装了 Redis 扩展:

<?php echo phpinfo(); ?>

如果安装过 redis 扩展,则有如下显示:

如果没有安装,则进入 PHP 容器快速安装 redis 扩展:

# docker exec -it php /bin/sh
# install-php-extensions redis
# 按 ctrl+p+q退出

配置WordPress

编辑wp-config.php,加入插件连接所需的参数定义:

define("WP_REDIS_HOST","redis_server1");//主机名(docker容器名)
define("WP_REDIS_PORT",6379);//端口(配置文件默认6379)
define("WP_REDIS_PASSWORD","yourpassword");//密码(如有)
# 其他参数参考:https://github.com/rhubarbgroup/redis-cache/wiki/Connection-Parameters

之后在后台插件商店搜索插件Redis Object Cache并安装:

最后,在后台设置->Redis处点击Enable Object Cache,如果得法,即可将 WordPress 连接至 Redis。

其他

上面安装的 Redis 只能被同一 Docker 桥接网络下的内部容器访问,且没有映射任何宿主机端口,相对来说还是比较安全的。

梓喵出没博客(azimiao.com)版权所有,转载请注明链接:https://www.azimiao.com/7035.html
欢迎加入梓喵出没博客交流群:313732000

我来吐槽

*

*