Windows 服务器上的 WordPress 站点优化笔记

摘要:
安装IIS后,PHP7.45nts版本以FastCGI模式集成在IIS上,php.ini-production用作配置模板,以最小化组件依赖性的方式运行WordPress。在这个设置持续了一段时间后,我意外地在WordPress插件列表中发现了一个名为RedisObjectCache的插件。考虑到缓存插件WPSuperCache和Autooptimize可能与RedisObjectCache冲突,或者其他缓存操作可能会降低性能,请尝试禁用WPSuperCache或Autooptimization插件。总之,PHP也可以在Windows服务器上运行良好。

2020年5月初,码农很忙进行了一次服务器迁移。除了 IP 地址变更之外,服务器系统也从 Windows Server 2019 降级为 Windows Server 2008 同时将 PHP 环境升级至 PHP 7.4.5 。

在完成 IIS 的安装后,将 PHP 7.4.5 nts 版本以 FastCGI 方式整合在 IIS 上,采用 php.ini-production 作为配置模板,以最小化组件依赖方式将 WordPress 运行了起来。在站点可以正常打开之后,对时区、最大运行时间和最大上传数据大小等参数进行了调整。

最小化依赖配置下站点的运行速度并不理想:网站首页的响应时间长达 600 毫秒。以当前服务器的配置,响应时间在 200 毫秒左右才算正常。

进入管理后台的 “工具” 》 “站点健康”页面后,发现站点健康状态为:有待改进,提示包括 ImageMagick 在内的若干个扩展项没有安装。将扩展项逐一安装完成后页面提示健康状态良好,但运行速度仍旧没有改善。

在管理后台添加 WP Super Cache 插件并启用,在命中缓存的情况下响应时间缩短至 40 毫秒左右,但在缓存未命中的情况下,响应时间仍需 600 毫秒以上。

启用 Autoptimize 插件,所有的前台页面被压缩且 css 文件被合并。但这也没有对响应速度有太大的提升。

启用 PHP 的 Opcache 扩展,网站速度有了很大幅度的提升:缓存未命中的情况下,响应时间被缩短至 300 毫秒左右。

这个设置持续一段时间之后,偶然在 WordPress 插件列表中找到一款名为 Redis Object Cache 的插件。于是尝试启用了该插件,并安装了 Redis 服务器和 php_redis 扩展。此时,网站性能再次提升:缓存未命中的情况下,首页的响应时间降低到接近 250 毫秒左右。

考虑到缓存插件 WP Super Cache 和 Autoptimize 可能与 Redis Object Cache 有冲突或者额外的缓存操作反而降低性能,于是尝试禁用 WP Super Cache 和 Autoptimize 插件。之后,响应时间降低到 200 毫秒左右。于是将 WP Super Cache 和 Autoptimize 插件卸载。

至此,小站的优化告一段落,200 毫秒左右的响应时间算的上一个秒开的网站了。

总结一下

在 Windows 服务器上,PHP 也能表现出不错的性能。即使在最小化依赖的配置下性能不尽人意,但在开启了 Opcache 扩展后性能会有一个很大的提升。WP Super Cache 当然可以大幅度加快访问速度,但前提是命中缓存。Redis 是一款神器,有了他可以抛弃其他大多数缓存插件了。在优化过程中要时刻牢记:并非优化插件越多速度越好。

免责声明:文章转载自《Windows 服务器上的 WordPress 站点优化笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇以太坊合约简单部署和使用如何解决webpack中css背景图片的绝对地址下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

V4L2驱动的移植与应用(二)

二、V4L2的应用 下面简单介绍一下V4L2驱动的应用流程。 1、 视频采集的基本流程 一般的,视频采集都有如下流程: 2、 打开视频设备 在V4L2中,视频设备被看做一个文件。使用open函数打开这个设备: // 用非阻塞模式打开摄像头设备int cameraFd;cameraFd = open("/dev/video0", O_RDWR | O_NO...

关于缓冲的一些梳理(操作系统/数据库/用户进程空间)-未整理完

区分几个概念: 1.内存页大小:见下面 2.文件系统块大小:设备块(扇区)的整数倍,OS将磁盘按照这个大小划分 4.数据库页大小:pagesize的整数倍,实现结构化数据的按块操作(文件系统如何实现按块操作?),另外数据库应该单独实现缓存,因为OS缓存按页或块管理 5.sector(扇区)和block(块/簇): block是操作系统可以操作的最小单位,是...

linux_Nginx优化

1. 更改默认用户   a. 在nginx.conf中添加user指定用户 user web_nginx web_nginx; # nginx 用户大家都知道,通过更改默认用户实现,和http同级   b. 编译时更改用户 --user=web_nginx --group=nginx ps -ef | grep nginx...

Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势

作者:尤雨溪链接:http://www.zhihu.com/question/31809713/answer/53544875来源:知乎著作权归作者所有,转载请联系作者获得授权。   1. 原生 DOM 操作 vs. 通过框架封装操作。这是一个性能 vs. 可维护性的取舍。框架的意义在于为你掩盖底层的 DOM 操作,让你用更声明式的方式来描述你的目的,从...

Android手机里的垃圾文件和文件夹清理

SD卡中各个文件夹功能的最详尽分析SD卡用久了会有好多文件夹出现,大家看看都是干什么用~1、.android_secure  是官方app2sd的产物,删了之后装到sd卡中的软件就无法使用了。2、.Bluetooth  顾名思义,用蓝牙之后就会有这个。3、.mobo  顾名思义,Moboplayer的缓存文件。4、.QQ   顾名思义,QQ的缓存文件。5、...

26种提高ASP.NET网站访问性能的优化方法 .

1. 数据库访问性能优化 数据库的连接和关闭   访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。 ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求...