wordpress子比主题优化


PHP设置

安装必要的扩展插件

这四个插件必装,然后进入session配置-存储模式选择redis

性能调整按自己服务器配置选择

Object Cache Pro插件

Redis Object Cache Pro 插件是一款非常专业的 WordPress 对象缓存插件,基于开源的 Redis(key-value数据库)。通过持久对象缓存,优化 Redis 交互,以提高站点的加载速度和数据库查询效率,特别适合企业级和高流量网站。

插件需要 Redis 的支持,需要先在服务器中安装 Redis、PhpRedis v3.1.1或以上版本,PHP 版本 >= 7.2
不支持在线升级版本,可上传新版安装包升级安装。

配置方法

基础配置

在WordPress配置文件顶部wp-config.php中添加配置代码

1
2
3
4
5
6
7
8
9
10
11
12
13
define('WP_REDIS_CONFIG', [
'token' => 'Zhanzhangb9sjJlBxBpLJbJcIRoi9rfszjmOqecMzQ1RB3K8jYQAOMkrCFDR',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0, // 针对每个站点进行更改
'maxttl' => 3600 * 24 * 7, // 7 天
'timeout' => 1.0,
'read_timeout' => 1.0,
'prefetch' => true,
'split_alloptions' => true,
'strict' => true,
'debug' => false,
]);

参数释义:

  • 'token' => 'your-license-token':将 your-license-token 替换为你实际的许可证令牌。
  • 'host' => '127.0.0.1':Redis服务器的主机地址。
  • 'port' => 6379:Redis服务器的端口号。
  • 'database' => 0:为每个站点更改数据库编号,以避免在多个站点上使用相同的数据库。
  • 'maxttl' => 3600 * 24 * 7:对象的最大过期时间,这里设置为7天。根据你的需求进行调整。
  • 'timeout' => 1.0 和 'read_timeout' => 1.0:连接Redis服务器的超时时间。
  • 'prefetch' => true:启用预取以提高性能。
  • 'split_alloptions' => truealloptions 键是否应该存储为散列。如果你的站点有大量的选项(如 WooCommerce、Elementor 等),启用此选项可能会提高性能。
  • 'strict' => true:启用严格模式以确保 Redis 插件与 WordPress 的预期行为一致。
  • 'debug' => false:在生产环境中应将调试关闭,以避免暴露敏感信息。

高级配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
define('WP_REDIS_CONFIG', [
'token' => 'Zhanzhangb9sjJlBxBpLJbJcIRoi9rfszjmOqecMzQ1RB3K8jYQAOMkrCFDR',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0, // 针对每个站点进行更改
'timeout' => 0.5,
'read_timeout' => 0.5,
'retry_interval' => 100,
'retries' => 3,
'backoff' => 'smart',
'compression' => 'zstd', // `zstd` 压缩更小,`lz4` 压缩更快
'serializer' => 'igbinary',
'async_flush' => true,
'split_alloptions' => true,
'prefetch' => true,
'strict' => true,
'debug' => false,
'save_commands' => false,
]);

参数释义:

  • 'token' => 'your-license-token':将 your-license-token 替换为你实际的许可证令牌。
  • 'host' => '127.0.0.1':Redis服务器的主机地址。
  • 'port' => 6379:Redis服务器的端口号。
  • 'database' => 0:为每个站点更改数据库编号,以避免在多个站点上使用相同的数据库。
  • 'timeout' => 0.5 和 'read_timeout' => 0.5:连接Redis服务器的超时时间。
  • 'retry_interval' => 10 和 'retries' => 3:在连接失败时的重试设置。retry_interval 是重试间隔,单位毫秒;retries 是重试次数。
  • 'backoff' => 'smart':使用智能退避策略,更有效地重试连接。
  • 'compression' => 'zstd':选择压缩算法,如网站数据量较大,启用 zstd 可提供更高的压缩率。
  • 'serializer' => 'igbinary':选择序列化器,igbinary 通常比PHP默认的 serialize 更高效。
  • 'async_flush' => true:启用异步刷新以提高性能。
  • 'split_alloptions' => true:如果你的站点有大量的选项,启用此选项可能会提高性能。
  • 'prefetch' => true:启用预取以提高性能。
  • 'strict' => true:启用严格模式以确保 Redis 插件与 WordPress 的预期行为一致。
  • 'debug' => false:在生产环境中应将调试关闭,以避免暴露敏感信息。
  • 'save_commands' => false:将此选项设置为 false 可以避免在Redis中保存写入命令。

这个配置方案提供了更多的灵活性和控制权,但也需要更仔细的调整,确保符合你站点的特定需求。

扩展编译

如果后台无法启用插件,那说明需要手动编译缺少的扩展

A PHP extension for Redis
⭐ 10135 🔀 2148 👀 10135 📦 10.74 MB

下载最新的Releases上传到服务器并解压

1
2
3
4
cd /phpredis
/www/server/php/74/bin/phpize #定位phpize位置
./configure --with-php-config=/www/server/php/74/bin/php-config --enable-redis-igbinary --enable-redis-zstd #定位配置文件
make && make install #编译安装

如图显示编译成功

如果提示缺少软件包,解决方案如下:

Update the package index:

1
sudo apt-get update

Install libzstd-dev deb package:

1
sudo apt-get install libzstd-dev

验证扩展是否生效

1
php -m  grep redis

如果输出 redis,说明扩展已启用

在php.ini中启用扩展

最后重启PHP即可

菜单缓存插件,减少数据库查询次数,启用后勾选菜单保存即可

menu-caching

下载

提取码:NHwA

Autoptimize

Autoptimize

下载

提取码:cv9z

最后再去设置一下Nginx的压缩率