WordPress的Object Cache Pro插件配置指南

今天给大家带来一篇关于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插件配置指南-王先生笔记

PHP需要安装redislzfzstdigbinarylz4(非必须)扩展

理论上讲,压缩比例越高,解压越困难,以下是压缩文件对于原文件大小对比,lzf可能是最快,也是最占内存的吧,各取优点则是lz4,但是PHP8安装不上lz4就是最大的问题

zstd:34.67%
lz4:47.59%
lzf:48.41%
未压缩:100%

其中zstdigbinary可以在PHP的安装扩展中找到,redislzflz4需要编译安装,这里不着急操作,后面我们会提到怎么做,先安装zstdigbinary

igbinary不在列表,也不用担心,后续使用脚本安装redis扩展时会自动安装

图片[2]-WordPress的Object Cache Pro插件配置指南-王先生笔记

在WordPress后台上传并安装Object Cache Pro 插件

图片[3]-WordPress的Object Cache Pro插件配置指南-王先生笔记

环境部署(LZF,LZ4,ZSTD)

由于宝塔自动化安装缺少PHP扩展lzflz4安装的redis扩展也是缺少参数,所以只能手动编译安装了

环境为:LinuxPHP7.4(可以是其它版本,注意提示说明)

安装LZF(必须)及LZ4(非必须)与ZSTD检查是否已安装

大家主要去看安装zstd和lzf扩展的安装,lz4仅PHP8以下可使用,这是手动编译安装教程,推荐手动编译安装,如果不会或编译出现问题,可查看此章节后面,有编译好的os文件可以放在指定位置去试试

安装libzstd-devel

安装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插件配置指南-王先生笔记

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扩展携带其他扩展初始化编译安装

请确保已经安装了以下扩展,并且编译安装了lzflz4

图片[5]-WordPress的Object Cache Pro插件配置指南-王先生笔记

进入/www/server/panel/install目录,编辑redis.sh文件(如果没有这个文件,就安装一次redis扩展,然后点击取消,这个脚本文件就从宝塔下载过来了)

图片[6]-WordPress的Object Cache Pro插件配置指南-王先生笔记

搜索:ENABLE_IGBINARY

图片[7]-WordPress的Object Cache Pro插件配置指南-王先生笔记

修改/www/server/php/$version/bin/phpizemake && 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插件配置指南-王先生笔记

安装成功时,你的PHP扩展目录应该会展示该扩展是已经安装状态

图片[9]-WordPress的Object Cache Pro插件配置指南-王先生笔记

重启PHP,查看phpinfo,看到igbinarylzfzstd已经被初始化到redis

图片[10]-WordPress的Object Cache Pro插件配置指南-王先生笔记

此时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,仅适用于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插件配置指南-王先生笔记

然后在对应PHP配置中引入即可

图片[12]-WordPress的Object Cache Pro插件配置指南-王先生笔记

redis.os文件编译不易,求支持一下

编译自PHP8.3,仅适用于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插件配置指南-王先生笔记

然后在对应PHP配置中引入即可

图片[14]-WordPress的Object Cache Pro插件配置指南-王先生笔记

redis.os文件编译不易,求支持一下

编译自PHP8.4,仅适用于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插件配置指南-王先生笔记

然后在对应PHP配置中引入即可

图片[16]-WordPress的Object Cache Pro插件配置指南-王先生笔记

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插件配置指南-王先生笔记
维度ZstdLZ4LZF
压缩率高(显著优于 LZF/LZ4,重复 / 结构化数据提升明显)中等(略高于 LZF,比 Zstd 低)中等偏低(压缩比有限,数据缩减较少)
压缩速度可调节(低级别≈LZ4/LZF,高级别压缩率更高但速度下降)超高速(压缩速度略快于 LZF,业界速度标杆)极快(轻量级,CPU 开销小)
解压速度快(解压速度接近 LZF/LZ4,高级别压缩数据解压仍高效)超高速(解压速度业界领先,略快于 LZF)极快(解压效率核心优势)
Redis 支持Redis 6.2+ 引入(需 6.2 及以上版本)Redis 6.0+ 引入(需较新版本支持)早期版本已支持(全版本兼容,如 3.x+)
适用场景内存紧张、可接受轻微 CPU 开销的高压缩率场景对速度极致敏感(超高频率读写)场景对速度敏感、压缩率要求不高的基础场景
三种解压算法对比(非专业,仅供参考,插件官方推荐LZF)

启动对象存储

图片[18]-WordPress的Object Cache Pro插件配置指南-王先生笔记

通过合理设置Object Cache Pro插件,可以显著提升WordPress网站的响应速度和整体性能。无论你是个人站长还是企业运维人员,都值得尝试这款强大的插件来优化你的网站。希望本文对你有所帮助!如有任何疑问,请随时在评论区留言交流。

注意:不是所有主题或插件都使用了wp cache做优化,即使不安装redis插件,这个钩子也是可用的,但是主题或插件作者就是没有使用。所以,即使你安装了,对于访客来说,部分数据是没有缓存的,不用白费力气研究怎么回事,没有变快。

原文链接(非王先生笔记发布均为盗版):https://wxsnote.cn/5198.html

评论后可接收该文章的更新邮箱通知
友情赞助

如果你喜欢我的内容,可以赞助我哦!你的一点点心意,是我不断前进的动力!
温馨提示: 本文最后更新于2025-12-31 17:57:52,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群: 399019539 联系群主反馈。注意一些链接无法访问可能是你网络的原因,如Github,并非资源地址失效。
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
WordPress的Object Cache Pro插件配置指南-王先生笔记
object-cache-pro插件,redis编译os,lzf编译os
object cache pro插件,含token许可证令牌,以及编译好的redis.os,lzf.os
6
限时特惠
10
付费阅读
已售 4
评论 共18条

请登录后发表评论

    请登录后查看评论内容

王先生笔记