说明
辉哥演示站和本地使用的对象缓存都是redis,刚好手上有Redis Object Cache Pro
插件,目前大多数用户都是用的是官方推荐的基础配置,并没有使用高性能配置(官方的说法是在毫秒内优化高流量站点
),刚好辉哥今天研究了一下该插件如何使用高性能配置,下面上教程!
官方高性能配置:https://objectcache.pro/docs/configuration#high-performance
环境
PS:以下是辉哥测试环境使用的环境,并以该环境为基础进行编译
系统:Centos
宝塔面板
PHP:8.0
教程
1、安装libzstd-devel
#该命令是centos命令,使用其他系统请自己百度搜索
yum -y install libzstd-devel
**#Debian:
在/etc/apt/sources.list 中加入:
deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
然后执行:
apt-get update
apt-get install libzstd-dev
2、为PHP编译LZF扩展
#创建并进入目录
mkdir -p /www/server/lzf && cd $_
#下载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,74则为PHP7.4,示例PHP8.1,该地方填81
/www/server/php/74/bin/phpize
#配置php目录
./configure --with-php-config=/www/server/php/74/bin/php-config
#编译并安装
sudo make && make install
#以上命令只能编译一次,如果想编译其他PHP版本,请先执行下面的删除命令
rm -rf /www/server/lzf/LZF-1.7.0
然后重复上面解压往后的操作即可,配置PHP目录时,填写对应的PHP版本目录即可
3、安装扩展
3.1、在宝塔面板安装igbinary
和zstd
扩展
3.2、PHP.ini
中加入刚才编译的lzf扩展
#在编译后系统会自动将lzf.so文件放到对应的php扩展目录,所以直接引用即可
extension = lzf.so
3.3、此时你以为按照官方文档安装该两个扩展后就能用了?如上图,辉哥已经安装了两个扩展并重启了PHP,下图为Redis Object Cache Pro插件页面提示,其翻译过来是:初始化对象缓存失败:PhpRedis未编译Zstandard压缩支持,请参阅有关启用压缩的更多信息:https://objectcache.pro/docs/data-encoding/
,所以流程还得往下走
4、编译Redis扩展
#下载辉哥改过的redis安装脚本
curl -o /www/server/panel/install/redis.sh https://www.haah.net/script/redis.sh
#如果安装了redis扩展先卸载
#卸载命令,74则为PHP7.4,示例PHP8.1,该地方填81
sh /www/server/panel/install/redis.sh uninstall 80
#安装命令,74则为PHP7.4,示例PHP8.1,该地方填81
sh /www/server/panel/install/redis.sh install 80
5、重启PHP
5.1、例如辉哥用的是PHP7.4,宝塔的目录则为:/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902
,编译后重启PHP,打开phpinfo,搜索Redis,下面是使用我编译的扩展前后的截图,
PS:PHP8.1与7.4目录类似
5.2、此时刷新Redis Object Cache Pro控制台则会看到能正常使用了
6、wprdpress配置代码
wp-config.php中加入如下代码(token是授权码,需要购买或者自己搜寻):
define('WP_REDIS_CONFIG', [
'token' => '...',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0, // change for each site
'timeout' => 1.0,
'read_timeout' => 1.0,
'async_flush' => true,
'compression' => 'zstd',
'serializer' => 'igbinary',
'split_alloptions' => true,
'prefetch' => true,
'debug' => false,
'save_commands' => false,
]);
define('WP_REDIS_DISABLED', getenv('WP_REDIS_DISABLED') ?: false);