今天给大家带来一篇关于WordPress网站性能优化的实用指南,设置Redis Object Cache Pro插件,实现高流量站点在毫秒内优化速度,总之本文主要内容是在宝塔面板配置插件环境以及插件配置。涉及服务器,小白请谨慎操作。
为什么选择Object Cache Pro插件?
利用Redis作为后端缓存,可以显著提升网站的响应速度和整体性能。无论是个人博客还是企业网站,这款插件都能助你一臂之力,让你的网站更快、更稳定地运行。与非pro版的主要区别:为原始性能而重写,兼容 WordPress 对象缓存 API,完全单元测试(100%代码覆盖率)
安装与准备工作
要求:Redis v3.1.1+,PHP 版本 >= 7.2
服务器上已经成功安装和配置了Redis,要处于开启状态并设置内存限制
![图片[1]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625171224498-image.png)
PHP需要安装redis,lzf,zstd,igbinary,lz4(非必须)扩展
理论上讲,压缩比例越高,解压越困难,以下是压缩文件对于原文件大小对比,lzf可能是最快,也是最占内存的吧,各取优点则是lz4,但是PHP8安装不上lz4就是最大的问题
zstd:34.67%
lz4:47.59%
lzf:48.41%
未压缩:100%
其中zstd和igbinary可以在PHP的安装扩展中找到,redis,lzf和lz4需要编译安装,这里不着急操作,后面我们会提到怎么做,先安装zstd和igbinary
若igbinary不在列表,也不用担心,后续使用脚本安装redis扩展时会自动安装
![图片[2]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625171637272-image.png)
在WordPress后台上传并安装Object Cache Pro 插件
![图片[3]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625171916843-image.png)
环境部署(LZF,LZ4,ZSTD)
由于宝塔自动化安装缺少PHP扩展lzf及lz4安装的redis扩展也是缺少参数,所以只能手动编译安装了
环境为:Linux,PHP7.4(可以是其它版本,注意提示说明)
yum命令适用于RHEL红帽系列,如:CentOS
yum命令适用于Debian系列,如:Ubuntu
安装LZF(必须)及LZ4(非必须)与ZSTD检查是否已安装
大家主要去看安装zstd和lzf扩展的安装,lz4仅PHP8以下可使用,这是手动编译安装教程,推荐手动编译安装,如果不会或编译出现问题,可查看此章节后面,有编译好的os文件可以放在指定位置去试试
安装libzstd-devel
zstdPHP扩展时,可能没有安装该支持库,此命令运行一下就为检查与补充安装zstd压缩系统扩展库
yum -y install libzstd-devel
sudo apt-get install libzstd-dev
编译安装PHP扩展lzf
lzf是一种无损数据压缩算法,下面教大家怎么安装
创建安装目录并进入目录
mkdir -p /www/server/panel/install/lzf && cd $_
下载LZF,其它版本可以在这里找:https://pecl.php.net/package/lzf
wget https://pecl.php.net/get/LZF-1.7.0.tgz
解压
tar xf LZF-1.7.0.tgz
进入该目录
cd LZF-1.7.0
phpize构建PHP安装扩展编译环境,其中的74则代表PHP7.4,示例:PHP7.2,该地方填72
/www/server/php/74/bin/phpize
确保configure脚本使用正确的PHP配置信息来编译和安装,其中的74则代表PHP7.4,示例:PHP7.2,该地方填72
./configure --with-php-config=/www/server/php/74/bin/php-config
编译并安装
make && make install
在PHP的配置文件底部填入以下规则,引入扩展
[lzf]
extension = lzf.so
![图片[4]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625173541835-image.png)
PHP8暂时不用!因为作者未支持,LZ4扩展初始化不到redis扩展,老实用lzf即可
2025年底,当前已经测试PHP8.x版本,可安装LZ4 v1.10.0,但无法初始化到redis扩展中,目前仅PHP8以下版本可用
安装liblz4-devel
安装lz4压缩系统扩展库
针对 CentOS/RHEL 7 及更早版本
sudo yum install lz4-devel -y
针对 Fedora 或 CentOS/RHEL 8+
sudo dnf install lz4-devel -y
apt install -y liblz4-1 liblz4-dev lz4
编译安装PHP扩展lz4
lz4是一种无损数据压缩算法,下面教大家怎么安装
创建并进入目录
mkdir -p /www/server/panel/install/lz4 && cd $_
由于国内服务器可能无法访问GitHub,导致无法下载文件,或安装过程无法正常下载
配置Git对GitHub域名强制使用代理(替换为你的代理链接前缀)https://github.com/前的https://gitproxy.click/就是加速地址,若失效自己查找替换
git config --global url."https://gitproxy.click/https://github.com/".insteadOf "https://github.com/"
加速平台可在此处查找:镜像站下载:国内节点秒级同步,直接替换链接超简单
git下载lz4资源文件
git clone --recursive --depth=1 https://github.com/kjdev/php-ext-lz4.git
进入该目录
cd php-ext-lz4
phpize构建PHP安装扩展编译环境,其中的74则代表PHP7.4,示例:PHP7.2,该地方填72
/www/server/php/74/bin/phpize
确保configure脚本使用正确的PHP配置信息来编译和安装,其中的74则代表PHP7.4,示例:PHP7.2,该地方填72
./configure --with-php-config=/www/server/php/74/bin/php-config
编译并安装
make && make install
前往:https://github.com/lz4/lz4
将发行版下载,删除/www/server/panel/install/lz4/php-ext-lz4/lz4目录,上传发行版压缩包到php-ext-lz4目录,将带有版本号的lz4-xx版本文件夹改为lz4,进入php-ext-lz4目录
执行以下命令清理旧编译产物
make clean
回到phpize步骤继续后面的命令
在PHP的配置文件底部填入以下规则,引入扩展
[lz4]
extension = lz4.so
PHP Redis扩展携带其他扩展初始化编译安装
请确保已经安装了以下扩展,并且编译安装了lzf及lz4
![图片[5]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625174035504-image.png)
进入/www/server/panel/install目录,编辑redis.sh文件(如果没有这个文件,就安装一次redis扩展,然后点击取消,这个脚本文件就从宝塔下载过来了)
![图片[6]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625174254675-image.png)
搜索:ENABLE_IGBINARY
![图片[7]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20250518171454553-image.png)
修改/www/server/php/$version/bin/phpize与make && make install之间的行(302行左右),与图中一致即可,编辑后保存
PHP8.x是不支持将LZ4初始化到Redis的,常见的除外只有LZF是需要的,因此插件必须的PHP扩展得装一下,务必初始化到redis,分别是igbinary,lzf,zstd,在wp-config.php配置文件中可以将'compression'压缩算法改为lzf
./configure --with-php-config=/www/server/php/$version/bin/php-config --enable-redis-igbinary=yes --enable-redis-lzf=yes --enable-redis-zstd=yes
非必须,如果你是PHP7.4及以下可以试试,前文我也说过,PHP8需要安装高版本的redis扩展,但高版本redis扩展不兼容该LZ4扩展,就算你添加了也无法安装
./configure --with-php-config=/www/server/php/$version/bin/php-config --enable-redis-igbinary=yes --enable-redis-lzf=yes --enable-redis-zstd=yes --enable-redis-lz4=yes
这是redis及redisPHP扩展安装脚本,我已对其修改过了,增加了命令参数
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
redis_version=7.2.4
runPath=/root
public_file=/www/server/panel/install/public.sh
[ ! -f $public_file ] && wget -O $public_file https://download.bt.cn/install/public.sh -T 5;
publicFileMd5=$(md5sum ${public_file}|awk '{print $1}')
md5check="8e49712d1fd332801443f8b6fd7f9208"
[ "${publicFileMd5}" != "${md5check}" ] && wget -O $public_file https://download.bt.cn/install/public.sh -T 5;
. $public_file
download_Url=$NODE_URL
if [ -z "${cpuCore}" ]; then
cpuCore="1"
fi
Error_Msg(){
if [ "${actionType}" == "install" ];then
AC_TYPE="安装"
elif [ "${actionType}" == "update" ]; then
AC_TYPE="升级"
fi
EN_CHECK=$(cat /www/server/panel/config/config.json |grep English)
echo '========================================================'
GetSysInfo
echo -e "ERROR: redis-${redis_version} ${actionType} failed.";
if [ "${EN_CHECK}" ];then
echo -e "Please submit to https://forum.aapanel.com for help"
else
echo -e "${AC_TYPE}失败,请截图以上报错信息发帖至论坛www.bt.cn/bbs求助"
fi
exit 1;
}
System_Lib(){
if [ "${PM}" == "yum" ] || [ "${PM}" == "dnf" ] ; then
Pack="sudo"
${PM} install ${Pack} -y
elif [ "${PM}" == "apt-get" ]; then
Pack="sudo"
${PM} install ${Pack} -y
fi
}
Service_Add(){
if [ -f "/usr/bin/yum" ];then
chkconfig --add redis
chkconfig --level 2345 redis on
elif [ -f "/usr/bin/apt" ]; then
apt-get install sudo -y
update-rc.d redis defaults
fi
}
Service_Del(){
if [ -f "/usr/bin/yum" ];then
chkconfig --level 2345 redis off
elif [ -f "/usr/bin/apt" ]; then
update-rc.d redis remove
fi
}
Gcc_Version_Check(){
if [ "${PM}" == "yum" ];then
Centos7Check=$(cat /etc/redhat-release | grep ' 7.' | grep -iE 'centos|Red Hat')
gccV=$(gcc -v 2>&1|grep "gcc version"|awk '{printf("%d",$3)}')
sysType=$(uname -a|grep x86_64)
armType=$(uname -a|grep aarch64)
if [ "${Centos7Check}" ];then
yum install centos-release-scl-rh -y
yum install devtoolset-7-gcc devtoolset-7-gcc-c++ -y
if [ "${armType}" ];then
yum install devtoolset-7-libatomic-devel -y
fi
if [ -f "/opt/rh/devtoolset-7/root/usr/bin/gcc" ] && [ "${sysType}" != "${armType}" ];then
export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc
else
redis_version="5.0.8"
fi
elif [ "${gccV}" -le "5" ];then
redis_version="5.0.8"
fi
fi
}
ext_Path(){
case "${version}" in
'53')
extFile='/www/server/php/53/lib/php/extensions/no-debug-non-zts-20090626/redis.so'
;;
'54')
extFile='/www/server/php/54/lib/php/extensions/no-debug-non-zts-20100525/redis.so'
;;
'55')
extFile='/www/server/php/55/lib/php/extensions/no-debug-non-zts-20121212/redis.so'
;;
'56')
extFile='/www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/redis.so'
;;
'70')
extFile='/www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/redis.so'
;;
'71')
extFile='/www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/redis.so'
;;
'72')
extFile='/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/redis.so'
;;
'73')
extFile='/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/redis.so'
;;
'74')
extFile='/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/redis.so'
;;
'80')
extFile='/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so'
;;
'81')
extFile='/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/redis.so'
;;
'82')
extFile='/www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/redis.so'
;;
'83')
extFile='/www/server/php/83/lib/php/extensions/no-debug-non-zts-20230831/redis.so'
;;
esac
}
Install_Redis()
{
groupadd redis
useradd -g redis -s /sbin/nologin redis
if [ ! -f '/www/server/redis/src/redis-server' ];then
rm -rf /www/server/redis
cd /www/server
wget -O redis-$redis_version.tar.gz $download_Url/src/redis-$redis_version.tar.gz
tar zxvf redis-$redis_version.tar.gz
mv redis-$redis_version redis
cd redis
make BUILD_TLS=yes -j ${cpuCore}
./utils/gen-test-certs.sh
[ ! -f "/www/server/redis/src/redis-server" ] && Error_Msg
VM_OVERCOMMIT_MEMORY=$(cat /etc/sysctl.conf|grep vm.overcommit_memory)
NET_CORE_SOMAXCONN=$(cat /etc/sysctl.conf|grep net.core.somaxconn)
if [ -z "${VM_OVERCOMMIT_MEMORY}" ] && [ -z "${NET_CORE_SOMAXCONN}" ];then
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
sysctl -p
fi
ln -sf /www/server/redis/src/redis-cli /usr/bin/redis-cli
chown -R redis.redis /www/server/redis
#v=`cat /www/server/panel/class/common.py|grep "g.version = "|awk -F "'" '{print $2}'|awk -F "." '{print $1}'`
v=`cat /www/server/panel/class/common.py|grep -E ".version = [\"|\']"|awk -F '[\"\47]+' '{print $2}'|awk -F '.' '{print $1}'`
if [ "$v" -ge "6" ];then
pluginPath=/www/server/panel/plugin/redis
mkdir -p $pluginPath
grep "English" /www/server/panel/config/config.json
if [ "$?" -ne 0 ];then
wget -O $pluginPath/redis_main.py $download_Url/install/plugin/redis/redis_main.py -T 5
wget -O $pluginPath/index.html $download_Url/install/plugin/redis/index.html -T 5
wget -O $pluginPath/info.json $download_Url/install/plugin/redis/info.json -T 5
wget -O $pluginPath/icon.png $download_Url/install/plugin/redis/icon.png -T 5
else
wget -O $pluginPath/redis_main.py $download_Url/install/plugin/redis_en/redis_main.py -T 5
wget -O $pluginPath/index.html $download_Url/install/plugin/redis_en/index.html -T 5
wget -O $pluginPath/info.json $download_Url/install/plugin/redis_en/info.json -T 5
wget -O $pluginPath/icon.png $download_Url/install/plugin/redis_en/icon.png -T 5
fi
fi
sed -i 's/dir .\//dir \/www\/server\/redis\//g' /www/server/redis/redis.conf
if [ -d "/www/server/panel/BTPanel" ]; then
wget -O /etc/init.d/redis ${download_Url}/init/init7.redis
wget -O /www/server/redis/redis.conf ${download_Url}/conf/redis.conf
else
wget -O /etc/init.d/redis ${download_Url}/init/init5.redis
fi
ARM_CHECK=$(uname -a|grep aarch64)
if [ "${ARM_CHECK}" ];then
echo "ignore-warnings ARM64-COW-BUG" >> /www/server/redis/redis.conf
fi
chmod +x /etc/init.d/redis
/etc/init.d/redis start
rm -f /www/server/redis-$redis_version.tar.gz
cd $runPath
echo $redis_version > /www/server/redis/version.pl
fi
if [ ! -d /www/server/php/$version ];then
return;
fi
if [ ! -f "/www/server/php/$version/bin/php-config" ];then
echo "php-$vphp 未安装,请选择其它版本!"
echo "php-$vphp not install, Plese select other version!"
return
fi
isInstall=`cat /www/server/php/$version/etc/php.ini|grep 'redis.so'`
if [ "${isInstall}" != "" ];then
echo "php-$vphp 已安装过Redis,请选择其它版本!"
echo "php-$vphp not install, Plese select other version!"
return
fi
if [ ! -f "${extFile}" ];then
if [ "${version}" == "52" ];then
rVersion='2.2.7'
elif [ "${version}" -ge "70" ];then
rVersion='5.3.7'
wget -O igbinary.sh https://download.bt.cn/install/1/igbinary.sh
bash igbinary.sh install ${version}
IGBINARY_CHECK=$(cat /www/server/php/$version/etc/php.ini|grep 'igbinary.so')
if [ "${IGBINARY_CHECK}" ];then
ENABLE_IGBINARY="--enable-redis-igbinary"
fi
else
rVersion='4.3.0'
fi
wget $download_Url/src/redis-$rVersion.tgz -T 5
tar zxvf redis-$rVersion.tgz
rm -f redis-$rVersion.tgz
cd redis-$rVersion
/www/server/php/$version/bin/phpize
./configure --with-php-config=/www/server/php/$version/bin/php-config --enable-redis-igbinary=yes --enable-redis-lzf=yes --enable-redis-zstd=yes
make && make install
cd ../
rm -rf redis-$rVersion*
fi
if [ ! -f "${extFile}" ];then
echo 'error';
exit 0;
fi
echo -e "\n[redis]\nextension = ${extFile}\n" >> /www/server/php/$version/etc/php.ini
if [ -f "/www/server/php/$version/etc/php-cli.ini" ]; then
echo -e "\n[redis]\nextension = ${extFile}\n" >> /www/server/php/$version/etc/php-cli.ini
fi
/etc/init.d/php-fpm-$version restart
echo '==============================================='
echo 'successful!'
}
Uninstall_Redis()
{
pkill -9 redis
rm -f /var/run/redis_6379.pid
Service_Del
rm -f /usr/bin/redis-cli
rm -f /etc/init.d/redis
rm -rf /www/server/redis
rm -rf /www/server/panel/plugin/redis
if [ ! -f "/www/server/php/$version/bin/php-config" ];then
echo "php-$vphp 未安装,请选择其它版本!"
echo "php-$vphp not install, Plese select other version!"
return
fi
isInstall=`cat /www/server/php/$version/etc/php.ini|grep 'redis.so'`
if [ "${isInstall}" = "" ];then
echo "php-$vphp 未安装Redis,请选择其它版本!"
echo "php-$vphp not install Redis, Plese select other version!"
return
fi
sed -i '/redis.so/d' /www/server/php/$version/etc/php.ini
sed -i '/\[redis\]/d' /www/server/php/$version/etc/php.ini
if [ -f "/www/server/php/$version/etc/php-cli.ini" ]; then
sed -i '/redis.so/d' /www/server/php/$version/etc/php-cli.ini
sed -i '/\[redis\]/d' /www/server/php/$version/etc/php-cli.ini
fi
/etc/init.d/php-fpm-$version restart
echo '==============================================='
echo 'successful!'
}
Update_redis()
{
Centos6Check=$(cat /etc/redhat-release | grep ' 6.' | grep -iE 'centos|Red Hat')
if [ "${redis_version}" == "5.0.8" ] || [ "${Centos6Check}" ];then
echo "检测此服务器达不到redis-6.2.1升级要求"
echo "中断升级"
echo "不影响当前运行版本"
exit 0
fi
# REDIS_VER=$(redis-cli -v|awk '{print $2}'|cut -d'.' -f1)
# if [ "${REDIS_VER}" == "5" ];then
# echo "reids 5.x 无法升级至6.x"
# echo "如需使用请备份redis数据 卸载重装redis即可安装6.x版本"
# exit 1
# fi
REDIS_CONF="/www/server/redis/redis.conf"
REDIS_PORT=$(cat ${REDIS_CONF} |grep port|grep -v '#'|awk '{print $2}')
REDIS_PASS=$(cat ${REDIS_CONF} |grep requirepass|grep -v '#'|awk '{print $2}')
REDIS_HOST=$(cat ${REDIS_CONF} |grep bind|grep -v '#'|awk '{print $2}')
REDIS_DIR=$(cat ${REDIS_CONF} |grep dir|grep -v '#'|awk '{print $2}')
cd /www/server
rm -rf /www/server/redis2
wget -O redis-$redis_version.tar.gz $download_Url/src/redis-$redis_version.tar.gz
tar zxvf redis-$redis_version.tar.gz
rm -f redis-$redis_version.tar.gz
mv redis-$redis_version redis2
cd redis2
make BUILD_TLS=yes -j ${cpuCore}
[ ! -f "/www/server/redis2/src/redis-server" ] && Error_Msg
if [ -f "${REDIS_DIR}dump.rdb" ]; then
\cp -rf ${REDIS_DIR}dump.rdb ${REDIS_DIR}dumpBak.rdb
if [ -z "${REDIS_PASS}" ]; then
/www/server/redis/src/redis-cli -p ${REDIS_PORT} <<EOF
SAVE
EOF
else
/www/server/redis/src/redis-cli -p ${REDIS_PORT} -a ${REDIS_PASS} <<EOF
SAVE
EOF
fi
fi
/etc/init.d/redis stop
sleep 1
cd ..
[ -f "/www/server/redis/dump.rdb" ] && \cp -rf /www/server/redis/dump.rdb /www/server/redis2/dump.rdb
\cp -rf /www/server/redis/redis.conf /www/server/redis2/redis.conf
if [ -d "/www/server/redisBak" ]; then
tar czvf /www/backup/redisBak$(date +%Y%m%d).tar.gz /www/server/redisBak
rm -rf /www/server/redisBak
fi
mv /www/server/redis /www/server/redisBak
mv redis2 redis
chown -R redis.redis /www/server/redis
rm -f /usr/bin/redis-cli
ln -sf /www/server/redis/src/redis-cli /usr/bin/redis-cli
/etc/init.d/redis start
rm -f /www/server/redis/version_check.pl
echo $redis_version > /www/server/redis/version.pl
}
actionType=$1
version=$2
vphp=${version:0:1}.${version:1:1}
if [ "$version" == "7.2" ];then
redis_version="7.2.4"
elif [ "$version" == "7.0" ];then
redis_version="7.0.11"
elif [ "$version" == "6.2" ]; then
redis_version="6.2.7"
fi
if [ "$actionType" == 'install' ];then
System_Lib
ext_Path
Gcc_Version_Check
Install_Redis
Service_Add
elif [ "$actionType" == 'uninstall' ];then
Uninstall_Redis
elif [ "${actionType}" == "update" ]; then
Gcc_Version_Check
Update_redis
fi
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
redis_version=7.4.2
runPath=/root
public_file=/www/server/panel/install/public.sh
[ ! -f $public_file ] && wget -O $public_file http://io.bt.sb/install/public.sh
. $public_file
download_Url=$NODE_URL
if [ -z "${download_Url}" ];then
download_Url="https://download.bt.cn"
fi
if [ -z "${cpuCore}" ]; then
cpuCore="1"
fi
Error_Msg(){
if [ "${actionType}" == "install" ];then
AC_TYPE="安装"
elif [ "${actionType}" == "update" ]; then
AC_TYPE="升级"
fi
EN_CHECK=$(cat /www/server/panel/config/config.json |grep English)
echo '========================================================'
GetSysInfo
echo -e "ERROR: redis-${redis_version} ${actionType} failed.";
if [ "${EN_CHECK}" ];then
echo -e "Please submit to https://forum.aapanel.com for help"
else
echo -e "${AC_TYPE}失败,请截图以上报错信息发帖至论坛www.bt.cn/bbs求助"
fi
exit 1;
}
System_Lib(){
if [ "${PM}" == "yum" ] || [ "${PM}" == "dnf" ] ; then
Pack="sudo"
${PM} install ${Pack} -y
SUDO_USER_CHECK=$(cat /etc/sudoers|grep root|grep -v \#)
elif [ "${PM}" == "apt-get" ]; then
Pack="sudo"
${PM} install ${Pack} -y
fi
if [ -f "/etc/sudoers" ];then
SUDO_USER_CHECK=$(cat /etc/sudoers|grep root|grep -v \#)
if [ -z "${SUDO_USER_CHECK}" ];then
echo "root ALL=(redis) ALL" >> /etc/sudoers
fi
fi
}
Get_Sys_Version(){
if [ -f "/etc/os-release" ];then
. /etc/os-release
OS_V=${VERSION_ID%%.*}
if [ "${ID}" == "debian" ] && [[ "${OS_V}" =~ ^(11|12)$ ]];then
OS_NAME=${ID}
elif [ "${ID}" == "ubuntu" ] && [[ "${OS_V}" =~ ^(20|22|24)$ ]];then
OS_NAME=${ID}
elif [ "${ID}" == "centos" ] && [[ "${OS_V}" =~ ^(7)$ ]];then
OS_NAME="el"
# elif [ "${ID}" == "opencloudos" ] && [[ "${OS_V}" =~ ^(9)$ ]];then
# OS_NAME=${ID}
# elif [ "${ID}" == "tencentos" ] && [[ "${OS_V}" =~ ^(4)$ ]];then
# OS_NAME=${ID}
# elif [ "${ID}" == "hce" ] && [[ "${OS_V}" =~ ^(2)$ ]];then
# OS_NAME=${ID}
elif { [ "${ID}" == "almalinux" ] || [ "${ID}" == "centos" ] || [ "${ID}" == "rocky" ]; } && [[ "${OS_V}" =~ ^(9)$ ]]; then
OS_NAME="el"
fi
fi
X86_CHECK=$(uname -m|grep x86_64)
if [ -z "${OS_NAME}" ] || [ -z "${X86_CHECK}" ];then
QUICK_INSTALL="False"
fi
}
Service_Add(){
if [ -f "/usr/bin/yum" ];then
chkconfig --add redis
chkconfig --level 2345 redis on
elif [ -f "/usr/bin/apt" ]; then
apt-get install sudo -y
update-rc.d redis defaults
fi
}
Service_Del(){
if [ -f "/usr/bin/yum" ];then
chkconfig --level 2345 redis off
elif [ -f "/usr/bin/apt" ]; then
update-rc.d redis remove
fi
}
Gcc_Version_Check(){
if [ "${PM}" == "yum" ];then
Centos7Check=$(cat /etc/redhat-release | grep ' 7.' | grep -iE 'centos|Red Hat')
gccV=$(gcc -v 2>&1|grep "gcc version"|awk '{printf("%d",$3)}')
sysType=$(uname -a|grep x86_64)
armType=$(uname -a|grep aarch64)
if [ "${Centos7Check}" ];then
yum install centos-release-scl-rh -y
if [ -f "/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo" ];then
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
fi
yum install devtoolset-7-gcc devtoolset-7-gcc-c++ -y
if [ "${armType}" ];then
yum install devtoolset-7-libatomic-devel -y
fi
if [ -f "/opt/rh/devtoolset-7/root/usr/bin/gcc" ] && [ "${sysType}" != "${armType}" ];then
export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc
else
redis_version="5.0.8"
fi
elif [ "${gccV}" -le "5" ];then
redis_version="5.0.8"
fi
fi
}
ext_Path(){
case "${version}" in
'53')
extFile='/www/server/php/53/lib/php/extensions/no-debug-non-zts-20090626/redis.so'
;;
'54')
extFile='/www/server/php/54/lib/php/extensions/no-debug-non-zts-20100525/redis.so'
;;
'55')
extFile='/www/server/php/55/lib/php/extensions/no-debug-non-zts-20121212/redis.so'
;;
'56')
extFile='/www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/redis.so'
;;
'70')
extFile='/www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/redis.so'
;;
'71')
extFile='/www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/redis.so'
;;
'72')
extFile='/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/redis.so'
;;
'73')
extFile='/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/redis.so'
;;
'74')
extFile='/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/redis.so'
;;
'80')
extFile='/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so'
;;
'81')
extFile='/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/redis.so'
;;
'82')
extFile='/www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/redis.so'
;;
'83')
extFile='/www/server/php/83/lib/php/extensions/no-debug-non-zts-20230831/redis.so'
;;
'84')
extFile='/www/server/php/84/lib/php/extensions/no-debug-non-zts-20240924/redis.so'
;;
esac
}
Install_Redis()
{
groupadd redis
useradd -g redis -s /sbin/nologin redis
if [ ! -f '/www/server/redis/src/redis-server' ];then
rm -rf /www/server/redis
cd /www/server
if [ "${QUICK_INSTALL}" == "False" ];then
wget -O redis-$redis_version.tar.gz $download_Url/src/redis-$redis_version.tar.gz
tar zxvf redis-$redis_version.tar.gz
mv redis-$redis_version redis
cd redis
make BUILD_TLS=yes -j ${cpuCore}
else
wget -O bt-redis.tar.gz ${download_Url}/soft/redis/${OS_NAME}-${OS_V}-redis-$redis_version.tar.gz
tar -xvf bt-redis.tar.gz
cd redis
/www/server/redis/src/redis-server --version > /dev/null 2>&1
if [ $? -ne 0 ];then
cd /www/server
wget -O redis-$redis_version.tar.gz $download_Url/src/redis-$redis_version.tar.gz
tar zxvf redis-$redis_version.tar.gz
mv redis-$redis_version redis
cd redis
make BUILD_TLS=yes -j ${cpuCore}
fi
fi
# ./utils/gen-test-certs.sh
# 添加依赖库安装(适用于 Debian/Ubuntu)
if [ "${PM}" == "apt-get" ]; then
apt-get install -y liblzf-dev libzstd-dev
fi
[ ! -f "/www/server/redis/src/redis-server" ] && Error_Msg
VM_OVERCOMMIT_MEMORY=$(cat /etc/sysctl.conf|grep vm.overcommit_memory)
NET_CORE_SOMAXCONN=$(cat /etc/sysctl.conf|grep net.core.somaxconn)
if [ -z "${VM_OVERCOMMIT_MEMORY}" ] && [ -z "${NET_CORE_SOMAXCONN}" ];then
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
sysctl -p
fi
ln -sf /www/server/redis/src/redis-cli /usr/bin/redis-cli
chown -R redis.redis /www/server/redis
#v=`cat /www/server/panel/class/common.py|grep "g.version = "|awk -F "'" '{print $2}'|awk -F "." '{print $1}'`
v=`cat /www/server/panel/class/common.py|grep -E ".version = [\"|\']"|awk -F '[\"\47]+' '{print $2}'|awk -F '.' '{print $1}'`
if [ "$v" -ge "6" ] || [ -f "/www/server/panel/data/panel_pro.pl" ];then
pluginPath=/www/server/panel/plugin/redis
mkdir -p $pluginPath
grep "English" /www/server/panel/config/config.json
if [ "$?" -ne 0 ];then
wget -O $pluginPath/redis_main.py $download_Url/install/plugin/redis/redis_main.py
wget -O $pluginPath/index.html $download_Url/install/plugin/redis/index.html
wget -O $pluginPath/info.json $download_Url/install/plugin/redis/info.json
wget -O $pluginPath/icon.png $download_Url/install/plugin/redis/icon.png
else
wget -O $pluginPath/redis_main.py $download_Url/install/plugin/redis_en/redis_main.py
wget -O $pluginPath/index.html $download_Url/install/plugin/redis_en/index.html
wget -O $pluginPath/info.json $download_Url/install/plugin/redis_en/info.json
wget -O $pluginPath/icon.png $download_Url/install/plugin/redis_en/icon.png
fi
fi
sed -i 's/dir .\//dir \/www\/server\/redis\//g' /www/server/redis/redis.conf
if [ -d "/www/server/panel/BTPanel" ]; then
wget -O /etc/init.d/redis ${download_Url}/init/init7.redis
wget -O /www/server/redis/redis.conf ${download_Url}/conf/redis.conf
else
wget -O /etc/init.d/redis ${download_Url}/init/init5.redis
fi
ARM_CHECK=$(uname -a|grep aarch64)
if [ "${ARM_CHECK}" ];then
echo "ignore-warnings ARM64-COW-BUG" >> /www/server/redis/redis.conf
fi
chmod +x /etc/init.d/redis
/etc/init.d/redis start
rm -f /www/server/redis-$redis_version.tar.gz
cd $runPath
echo $redis_version > /www/server/redis/version.pl
fi
if [ ! -d /www/server/php/$version ];then
return;
fi
if [ ! -f "/www/server/php/$version/bin/php-config" ];then
echo "php-$vphp 未安装,请选择其它版本!"
echo "php-$vphp not install, Plese select other version!"
return
fi
isInstall=`cat /www/server/php/$version/etc/php.ini|grep 'redis.so'`
if [ "${isInstall}" != "" ];then
echo "php-$vphp 已安装过Redis,请选择其它版本!"
echo "php-$vphp not install, Plese select other version!"
return
fi
if [ ! -f "${extFile}" ];then
if [ "${version}" == "52" ];then
rVersion='2.2.7'
elif [ "${version}" -ge "70" ];then
if [ "${version}" -ge "83" ];then
rVersion='6.1.0'
else
rVersion='5.3.7'
fi
wget -O igbinary.sh https://download.bt.cn/install/1/igbinary.sh
bash igbinary.sh install ${version}
IGBINARY_CHECK=$(cat /www/server/php/$version/etc/php.ini|grep 'igbinary.so')
if [ "${IGBINARY_CHECK}" ];then
ENABLE_IGBINARY="--enable-redis-igbinary"
fi
else
rVersion='4.3.0'
fi
wget $download_Url/src/redis-$rVersion.tgz
tar zxvf redis-$rVersion.tgz
rm -f redis-$rVersion.tgz
cd redis-$rVersion
/www/server/php/$version/bin/phpize
./configure --with-php-config=/www/server/php/$version/bin/php-config --enable-redis-igbinary=yes --enable-redis-lzf=yes --enable-redis-zstd=yes --enable-redis-lz4=yes
make && make install
cd ../
rm -rf redis-$rVersion*
fi
if [ ! -f "${extFile}" ];then
echo 'error';
exit 0;
fi
echo -e "\n[redis]\nextension = ${extFile}\n" >> /www/server/php/$version/etc/php.ini
if [ -f "/www/server/php/$version/etc/php-cli.ini" ]; then
echo -e "\n[redis]\nextension = ${extFile}\n" >> /www/server/php/$version/etc/php-cli.ini
fi
/etc/init.d/php-fpm-$version restart
echo '==============================================='
echo 'successful!'
}
Uninstall_Redis()
{
pkill -9 redis
rm -f /var/run/redis_6379.pid
Service_Del
rm -f /usr/bin/redis-cli
rm -f /etc/init.d/redis
rm -rf /www/server/redis
rm -rf /www/server/panel/plugin/redis
if [ ! -f "/www/server/php/$version/bin/php-config" ];then
echo "php-$vphp 未安装,请选择其它版本!"
echo "php-$vphp not install, Plese select other version!"
return
fi
isInstall=`cat /www/server/php/$version/etc/php.ini|grep 'redis.so'`
if [ "${isInstall}" = "" ];then
echo "php-$vphp 未安装Redis,请选择其它版本!"
echo "php-$vphp not install Redis, Plese select other version!"
return
fi
sed -i '/redis.so/d' /www/server/php/$version/etc/php.ini
sed -i '/\[redis\]/d' /www/server/php/$version/etc/php.ini
if [ -f "/www/server/php/$version/etc/php-cli.ini" ]; then
sed -i '/redis.so/d' /www/server/php/$version/etc/php-cli.ini
sed -i '/\[redis\]/d' /www/server/php/$version/etc/php-cli.ini
fi
/etc/init.d/php-fpm-$version restart
echo '==============================================='
echo 'successful!'
}
Update_redis()
{
Centos6Check=$(cat /etc/redhat-release | grep ' 6.' | grep -iE 'centos|Red Hat')
if [ "${redis_version}" == "5.0.8" ] || [ "${Centos6Check}" ];then
echo "检测此服务器达不到redis-6.2.1升级要求"
echo "中断升级"
echo "不影响当前运行版本"
exit 0
fi
# REDIS_VER=$(redis-cli -v|awk '{print $2}'|cut -d'.' -f1)
# if [ "${REDIS_VER}" == "5" ];then
# echo "reids 5.x 无法升级至6.x"
# echo "如需使用请备份redis数据 卸载重装redis即可安装6.x版本"
# exit 1
# fi
REDIS_CONF="/www/server/redis/redis.conf"
REDIS_PORT=$(cat ${REDIS_CONF} |grep port|grep -v '#'|awk '{print $2}')
REDIS_PASS=$(cat ${REDIS_CONF} |grep requirepass|grep -v '#'|awk '{print $2}')
REDIS_HOST=$(cat ${REDIS_CONF} |grep bind|grep -v '#'|awk '{print $2}')
REDIS_DIR=$(cat ${REDIS_CONF} |grep dir|grep -v '#'|awk '{print $2}')
cd /www/server
rm -rf /www/server/redis2
wget -O redis-$redis_version.tar.gz $download_Url/src/redis-$redis_version.tar.gz
tar zxvf redis-$redis_version.tar.gz
rm -f redis-$redis_version.tar.gz
mv redis-$redis_version redis2
cd redis2
make BUILD_TLS=yes -j ${cpuCore}
[ ! -f "/www/server/redis2/src/redis-server" ] && Error_Msg
if [ -f "${REDIS_DIR}dump.rdb" ]; then
\cp -rf ${REDIS_DIR}dump.rdb ${REDIS_DIR}dumpBak.rdb
if [ -z "${REDIS_PASS}" ]; then
/www/server/redis/src/redis-cli -p ${REDIS_PORT} <<EOF
SAVE
EOF
else
/www/server/redis/src/redis-cli -p ${REDIS_PORT} -a ${REDIS_PASS} <<EOF
SAVE
EOF
fi
fi
/etc/init.d/redis stop
sleep 1
cd ..
[ -f "/www/server/redis/dump.rdb" ] && \cp -rf /www/server/redis/dump.rdb /www/server/redis2/dump.rdb
\cp -rf /www/server/redis/redis.conf /www/server/redis2/redis.conf
if [ -d "/www/server/redisBak" ]; then
tar czvf /www/backup/redisBak$(date +%Y%m%d).tar.gz /www/server/redisBak
rm -rf /www/server/redisBak
fi
mv /www/server/redis /www/server/redisBak
mv redis2 redis
chown -R redis.redis /www/server/redis
rm -f /usr/bin/redis-cli
ln -sf /www/server/redis/src/redis-cli /usr/bin/redis-cli
/etc/init.d/redis start
rm -f /www/server/redis/version_check.pl
echo $redis_version > /www/server/redis/version.pl
}
actionType=$1
version=$2
vphp=${version:0:1}.${version:1:1}
if [ "$version" == "7.4" ];then
redis_version="7.4.3"
elif [ "$version" == "7.2" ];then
redis_version="7.2.8"
elif [ "$version" == "7.0" ];then
redis_version="7.0.11"
elif [ "$version" == "6.2" ]; then
redis_version="6.2.18"
fi
if [ "$actionType" == 'install' ];then
Get_Sys_Version
System_Lib
ext_Path
Gcc_Version_Check
Install_Redis
Service_Add
elif [ "$actionType" == 'uninstall' ];then
Uninstall_Redis
elif [ "${actionType}" == "update" ]; then
if [ -f "/www/server/redis/version.pl" ];then
local_redis_version=$(cat /www/server/redis/version.pl)
local_redis_version=${local_redis_version:0:3}
else
local_redis_version="0.0"
fi
if [ "$version" == "7.4" ] && [ "${local_redis_version}" != "7.4" ] ;then
echo "当前不支持升级操作,如需使用redis-7.4请备份数据进行重装"
exit 1
fi
Gcc_Version_Check
Update_redis
fi
编译安装redis扩展命令,其中的74则代表PHP7.4,示例:PHP7.2,该地方填72
sh /www/server/panel/install/redis.sh install 74
成功时应当为此提示,若报错,请检查,或评论区提问
![图片[8]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20241029202621143-image.png)
安装成功时,你的PHP扩展目录应该会展示该扩展是已经安装状态
![图片[9]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625175456235-image.png)
重启PHP,查看phpinfo,看到igbinary,lzf,zstd已经被初始化到redis
![图片[10]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625175908723-image.png)
此时Object Cache Pro插件才能正常运行
遇见未知问题?
问题1.命令行提示LZF未成功安装或phpinfo内未加载LZF,以前是否在按照本文操作在其它PHP版本安装过LZF?请先删除编译目录,再回到下载LZF步骤重新安装
rm -rf /www/server/panel/install/lzf/LZF-1.7.0
问题2.无法初始化到redis?
那就使用已经编译好的phpredis扩展,注意,PHP只安装lzf扩展即可,因为该redis扩展未初始化LZ4
编译自PHP7.4,仅适用于
将下载的redis.os上传粘贴到/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902目录下,找/www/server/php/74/lib/php/就没错。
![图片[11]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20241029223141702-3b44c27bb1ae7fe6abc8b5a99ba50bb4.png)
然后在对应PHP配置中引入即可
![图片[12]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20250927171318971-image.png)
redis.os文件编译不易,求支持一下
编译自PHP8.3,仅适用于
将下载的redis.os上传粘贴到/www/server/php/83/lib/php/extensions/no-debug-non-zts-20230831目录下,找就没错。覆盖原来的/www/server/php/83/lib/php/redis.os文件即可
![图片[13]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20250927170132914-image.png)
然后在对应PHP配置中引入即可
![图片[14]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20250927171448599-image.png)
redis.os文件编译不易,求支持一下
编译自PHP8.4,仅适用于
将下载的redis.os上传粘贴到/www/server/php/84/lib/php/extensions/no-debug-non-zts-20240924目录下,找就没错。覆盖原来的/www/server/php/84/lib/php/redis.os文件即可
![图片[15]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20251218004011712-image.png)
然后在对应PHP配置中引入即可
![图片[16]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20251218003942554-image.png)
redis.os文件编译不易,求支持一下
问题3.lzf和lz4不会安装?
与问题2中的放置路径一致
PHP7.4与PHP8.3的LZ4和LZF的os文件:
Object Cache Pro插件配置教程
当前文章可下载该插件,上传至/wp-content/plugins目录解压,启用插件后进行以下操作
在wordpress的网站配置文件wp-config.php添加以下代码,根据需要修改配置(注意要紧贴数据库设置下方,define( 'DB_COLLATE', '' );下)
/*redis pro*/
define('WP_REDIS_CONFIG', [
'token' => 'token', //替换为自己的许可证令牌
'host' => '127.0.0.1', //Redis服务器的主机地址
'port' => 6379, //Redis服务器的端口号
//'password' => '密码', //Redis密码
'database' => 0, // 为每个站点更改Redis数据库编号,0到15,0为默认,以避免在多个站点上使用相同的数据库。以避免缓存冲突
'maxttl' => 3600 * 24 * 7, // 默认删除时间
'timeout' => 1.0, // 连接Redis服务器的超时时间
'read_timeout' => 1.0, //读取超时
'retry_interval' => 100, //在连接失败时的重试设置,重试间隔,单位毫秒
'retries' => 3, // 在连接失败时的重试设置,重试次数
'backoff' => 'smart', //使用智能退避策略,更有效地重试连接
'compression' => 'lzf', //选择压缩算法,如网站数据量较大,启用zstd可提供更高的压缩率并且压缩数据最小,lz4压缩数据最快,lzf兼容性和速度极佳,我们在教程中https://wxsnote.cn/5198.html宝塔安装redis扩展时提到了,除了lz4未加入扩展,其它两种你可以手动切换,如果你编译成功,成功初始化lz4到redis扩展,那么也是可以选择lz4的
'serializer' => 'igbinary', //选择序列化器,igbinary通常比PHP默认的serialize更高效
'async_flush' => true, //启用异步刷新以提高性能
'prefetch' => true, //启用预取以提高性能
'split_alloptions' => true, //分割分配,如果你的站点有大量的选项,启用此选项可能会提高性能
'strict' => true, //启用严格模式以确保Redis插件与WordPress的预期行为一致
'debug' => false, //在生产环境中应将调试关闭,以避免暴露敏感信息
'save_commands' => false, //将此选项设置为false可以避免在Redis中保存写入命令
]);
define('WP_REDIS_DISABLED', getenv('WP_REDIS_DISABLED') ?: false); //Redis缓存状态,false为开启,改为true绕过对象缓存,对debug调试很有用
![图片[17]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625180448602-image.png)
| 维度 | Zstd | LZ4 | LZF |
| 压缩率 | 高(显著优于 LZF/LZ4,重复 / 结构化数据提升明显) | 中等(略高于 LZF,比 Zstd 低) | 中等偏低(压缩比有限,数据缩减较少) |
| 压缩速度 | 可调节(低级别≈LZ4/LZF,高级别压缩率更高但速度下降) | 超高速(压缩速度略快于 LZF,业界速度标杆) | 极快(轻量级,CPU 开销小) |
| 解压速度 | 快(解压速度接近 LZF/LZ4,高级别压缩数据解压仍高效) | 超高速(解压速度业界领先,略快于 LZF) | 极快(解压效率核心优势) |
| Redis 支持 | Redis 6.2+ 引入(需 6.2 及以上版本) | Redis 6.0+ 引入(需较新版本支持) | 早期版本已支持(全版本兼容,如 3.x+) |
| 适用场景 | 内存紧张、可接受轻微 CPU 开销的高压缩率场景 | 对速度极致敏感(超高频率读写)场景 | 对速度敏感、压缩率要求不高的基础场景 |
启动对象存储
![图片[18]-WordPress的Object Cache Pro插件配置指南-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240625181326683-image.png)
通过合理设置Object Cache Pro插件,可以显著提升WordPress网站的响应速度和整体性能。无论你是个人站长还是企业运维人员,都值得尝试这款强大的插件来优化你的网站。希望本文对你有所帮助!如有任何疑问,请随时在评论区留言交流。
注意:不是所有主题或插件都使用了wp cache做优化,即使不安装redis插件,这个钩子也是可用的,但是主题或插件作者就是没有使用。所以,即使你安装了,对于访客来说,部分数据是没有缓存的,不用白费力气研究怎么回事,没有变快。
2025-12-31 17:57:52,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群:
399019539 联系群主反馈。注意一些链接无法访问可能是你网络的原因,如Github,并非资源地址失效。
登录后可快速点此处反馈,点击登录













请登录后查看评论内容