我自认为我的网站打开速度还是不赖的,由于我的网站图片视频特别多,在控制成本的前提下(我不想用图床,贵)我需要想办法尽可能的加快网站的速度。像有些博客服务器在海外,打开速度很慢,我一般等待1-2s就不想接着浏览了,何况是访客呢?看过我之前文章的大佬都知道,我用国内服务器,国内cdn,图片自动转成webp,最近还用了云数据库。但是,为了更好地压榨服务器资源以加快网站访问速度,我决定从PHP下手,加快网站的访问速度
1.PHP安装Memcached和Opcache
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。这样能减轻数据库的负担,理论上就能加快访问速度了。而Opcache能将 PHP 编译产生的字节码以及数据缓存到共享内存中,在每次请求,从缓存中直接读取编译后的 opcode,进行执行。(我个人理解就是缓存php脚本)
要启用Memcached和Opcache,我们要先安装Memcached和Opcache
宝塔面板中找到php安装扩展,安装Memcached和Opcache即可

这里有个美妙的坑,直接在宝塔软件商店安装memcached是不行的,必须到php扩展里安装

NOTICE:各位不限于在wordpress中使用Memcached和Opcache,其他的网站均可
2.启用Memcached和Opcache
我之前有使用wordpress中一款叫Cachify的插件,这个也是可以用Memcached缓存的。但是不知道为什么缓存命中率不高,所以弃用了
用Cachify插件提高Wordpress网站的加载速度 | Rosmontis&迷迭香的博客
所以我看到了一个叫WPJAM的插件,这个比较不错

在wordpress插件中搜索安装并启用
然后,你需要回到宝塔面板,找到WPJAM插件的安装目录(/wp-content/plugins/wpjam-basic),打开template文件夹,里面有一个object-cache.php,将其复制到/wp-content目录下即可


打开wordpress后台,左边侧栏找到WPJAM-系统信息,看到出现了Memcached和Opcache选项,成功启用插件

刚刚安装的时候缓存命中率不会很高,等待一两天命中率会到99%。如果长时间命中率只在60%-70%浮动甚至更少,请尝试重启php或者往下看文章,手动修改Memcached和Opcache配置
3.进阶配置
我们可以根据网站的实际情况,调整php,Memcached和Opcache的配置,提升性能
<1>php配置修改

看这上面,如果你的内存充足(什么叫充足?起码要有4G以上吧),绝对绝对要开静态运行模式,这个玩意能让网站快很多,如果你的服务器不安装Mysql,并发方案可以选择服务器实际内存的2倍(就是说如果服务器内存是4G,可以选8G的并发),如果安装了Mysql,可以适当增加起始进程数和最小空闲进程数。
适当增加swap有奇效。
这里配置完后,请重启两次PHP。
<2>Memcached配置修改
可以直接在宝塔的已安装应用找到Memcached,点击设置

性能调整参数适当调大

保存后重载配置,重启PHP
<3>Opcache配置修改
PHP设置,配置文件(即php.ini),找到[Zend Opcache]

以下为推荐配置,请按需修改
//允许在 web 环境使用
opcache.enable=1
//允许在 cli 环境使用
opcache.enable_cli=1
//OPcache 的共享内存大小,以兆字节为单位。
opcache.memory_consumption=128
//用来存储预留字符串的内存大小,以兆字节为单位
opcache.interned_strings_buffer=8
//OPcache 哈希表中可存储的脚本文件数量上限
opcache.max_accelerated_files=4000
//检查脚本时间戳是否有更新的周期,以秒为单位。 设置为 0 会导致针对每个请求, OPcache 都会检查脚本更新。如果 opcache.validate_timestamps 配置指令设置为禁用,那么此设置项将会被忽略。
opcache.revalidate_freq=60
保存后重启PHP即可
原创文章,作者:Rosmontics,如若转载,请注明出处:https://rosmontis.com/archives/153