最近在全面更新2个网站。
快10年没有大更新了。服务器老PHP7各种报错,wordpress的版本也太老,各种兼容性问题不敢升级。
记录一下结合Gemini AI沟通的 优化过程:代码升级,功能修改,内容补充,性能提升。
性能优化概览:
- Opcache(PHP缓存):在底层加速 PHP 脚本的编译,提升了所有 PHP 代码的执行效率。
- advanced-cache(插件-页面缓存):为大众访客提供闪电般的访问速度。
- redis(数据库对象缓存):为后台、动态页面和数据库减负,全面提升网站响应能力。
- WP-Optimize(插件):删除文章修订记录 (Post Revisions) 清理“孤儿数据表” (Orphaned Tables)

VPS 层面:安装php扩展
- opcache
- 作用:性能核弹! 这是最重要的PHP性能提升工具。它会将编译过的PHP代码缓存到内存中,下次再有相同请求时,直接从内存读取,省去了重复编译的步骤。
- 效果:可以使您的网站PHP执行速度提升 2到5倍,并显著降低CPU负载。
- 结论:必装! 这是所有PHP网站(包括WordPress)性能优化的第一步。
- redis 或 memcached
- 作用:对象缓存器。它们可以将WordPress频繁查询数据库的结果(比如网站设置、文章数据等)缓存到内存中。
- 效果:当网站需要这些数据时,直接从速度极快的内存(Redis/Memcached)中读取,而不是每次都去查询速度较慢的数据库。这能极大地降低数据库压力,提升网站响应速度,尤其是在高并发访问时效果显著。
- 结论:强烈推荐
redis
功能更丰富,是目前的主流选择。注意: 在宝塔里安装了redis
扩展后,还需要在WordPress后台安装一个类似Redis Object Cache
的插件来启用它。 - 功能更强:Redis 支持更丰富的数据类型,并且支持数据持久化(可以将内存中的数据定期保存到硬盘,重启后不丢失)。
- 社区更活跃:Redis 是目前的主流,拥有更广泛的支持和更现代化的相关工具。
- 性能相当:对于 WordPress 的对象缓存场景来说,两者的性能差异微乎其微,您感觉不到区别。
- imagemagick
- 作用:一个比PHP默认的GD库更强大、更高效的图片处理库。
- 效果:WordPress在上传图片、生成缩略图时会使用它。
imagemagick
通常能生成更高质量、体积更小的缩略图,且处理速度更快。 - 结论:强烈推荐安装,可以提升图片处理的质量和效率。
- intl
- 作用:PHP的国际化扩展,用于处理不同国家和地区的语言、货币、日期格式等。
- 效果:WordPress核心以及很多多语言插件(如WPML)、电子商务插件(如WooCommerce)都依赖它来正确显示和处理国际化内容。WordPress后台的“站点健康”功能也会建议您安装它。
- 结论:强烈推荐安装,以确保最佳的兼容性和功能完整性。
- exif
- 作用:用于读取图片文件中的元数据(EXIF信息),比如相机型号、拍摄日期、GPS位置、图片方向等。
- 效果:WordPress可以利用这些信息自动校正上传图片的旋转方向。很多相册插件也会用它来展示照片信息。
- 结论:推荐安装,功能虽小但很实用。
- fileinfo
- 作用:用于检测文件的MIME类型,即判断一个文件到底是什么类型(是图片、PDF还是文本)。
- 效果:增强了WordPress处理文件上传的安全性。WordPress核心也推荐安装。
- 结论:推荐安装。

PHP配置文件修改
Opcache 配置优化
[Zend Opcache]
zend_extension=/www/server/php/84/lib/php/extensions/no-debug-non-zts-20240924/opcache.so
opcache.enable = 1
opcache.memory_consumption=128
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=10000
opcache.revalidate_freq=3
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.jit_buffer_size=128m
opcache.jit=1205
以下是小VPS配置,以及为什么进行这些优化的原因。
opcache.revalidate_freq = 3对于生产环境,这个值可以调整为 0。将这个值设为 60 意味着 Opcache 每 60 秒会检查一次文件更新。虽然这对于开发环境很方便,但对于几乎不更新的个人网站来说,这是不必要的性能开销。将它设为 0 可以获得最佳性能,因为 Opcache 将不再检查文件修改。每次更新网站代码后,你需要手动清空缓存,但这种操作对于小网站来说并不频繁。(这段我决定不修改,影响我修改期间查看效果。折腾完可以改为0)- opcache.max_accelerated_files = 20000这个值对于两个小网站来说可能有些偏高,但它不会造成负面影响,所以可以保留。这个值决定了 Opcache 可以缓存的最大文件数。如果你的网站文件数量不多(例如 WordPress 默认安装加上几个插件),这个数字可能远大于实际需要。但即使如此,它也不会影响性能,只是会占用一点点额外的内存。
- opcache.jit=tracing这个值可以调整为 1205。tracing 模式是 JIT 的最高级别优化,能提供最佳性能,这和 opcache.jit=1205 是一样的效果,所以你也可以将它保留。不过,对于小流量的个人网站,JIT 带来的性能提升可能不像高流量网站那么明显。
- opcache.save_comments = 1这个值可以调整为 0。这个设置会告诉 Opcache 保存 PHP 文件中的注释。大多数情况下,网站运行不需要这些注释。禁用它可以节省一些内存,并略微提升性能。

其他 PHP 配置优化
除了 Opcache 之外,我们还可以从 PHP-FPM 的角度进行一些优化。你的 2C 2G VPS 资源有限,合理配置 PHP-FPM 可以让你的网站运行更稳定。
- 减少 PHP-FPM 子进程:由于你的网站流量很小,你可以适当降低 PHP-FPM 的子进程数来节省内存。检查你的 PHP-FPM 配置文件(通常是 www.conf)。
pm = dynamic
pm.max_children = 20
(可以适当降低到 10-15)pm.start_servers = 5
(可以适当降低到 2-3)pm.min_spare_servers = 2
- pm.max_spare_servers = 5这些值可以根据你服务器的实际内存使用情况进行调整。如果内存充足,可以保持默认值;如果内存紧张,适当降低可以防止内存耗尽。
- 增加 memory_limit在 php.ini 文件中,你可以找到 memory_limit。
- memory_limit = 256M (或更高)对于 WordPress 等内容管理系统,256M 是一个比较安全的推荐值,可以避免一些大型插件或主题因内存不足而崩溃。
Redis配置 (适用于 4GB 内存服务器)
- 登录宝塔面板,进入 Redis 的设置界面。
- 在**“性能调整”**页面:
- 将
maxmemory
的值从0
修改为512
。 - 为
requirepass
设置一个强密码(可选但推荐)。
- 将
- 切换到**“配置文件”**页面:
- 确保
maxmemory-policy
的值是allkeys-lru
。
- 确保
- 保存 Redis 配置,并重启 Redis 服务。
- 如果设置了密码,请务必去 WordPress 后台的
Redis Object Cache
插件设置中填入相同的密码。
用Gemini 生成几张图


发表回复