目录
Toggle如果你的wordpress网站安装在云服务器/VPS上,那么你有可能会遇到一些有关网站打开速度慢、服务器负载高的问题。即使你的服务器配置看起来并不低,但同样可能会遇到这些问题。
比如前几天就有人咨询悦然wordpress建站,他们的网站使用的是阿里云2核4G5M的配置,这个配置其实还可以了,理论上来说运行wordpress足够了。但他们的服务器目前却存在一直高负载的问题,CPU占用100%,这样的结果就是网站不管是前端还是后台都会非常卡,不管是自己管理,还是用户浏览,体验都会非常差。
出现这种情况的原因有很多,比如被攻击、中病毒等等。不过本文我们先把安全问题排除,单纯从服务器和wordpress配置优化来分析问题,并给出解决方案。
有很多网站还运行着PHP 7.3或以下的版本,这些低版本的PHP对wordpress网站速度是有影响的,有很多主题或插件已经不支持PHP 7.4以下的版本了。如果你的网站环境还在使用低版本的PHP,那就尽快升级吧,如果你的网站运行时间比较久,正在使用一些比较老的主题或插件,可以先升级到PHP 7.4,如果没问题的话再尝试升级到PHP 8.0以上。
和2核4G5M差不多的配置虽然看起来还可以,但可能只针对静态网站而言,wordpress是动态的,频繁的读取内容,这个服务器配置还是不够看的。所以这里就需要用到服务器的内存对象缓存了,我们可以给服务器安装Memcached或Redis,这两者一般是2选1,不要都装。
默认情况下服务器是没有安装Memcached的,大家可以通过终端安装。
安装Memcached
sudo apt-get install memcached
启动Memcached
sudo systemctl start memcached
安装PHP的Memcached扩展
sudo apt-get install php-memcached
安装wordpress插件
以上安装好后,我们还需要在wordpress网站上安装一个插件,大家搜索Memcached可以找到很多,这里给大家推荐atec Cache Info插件,安装激活就可以了,不用其它操作。
atec Cache Info下载:https://cn.wordpress.org/plugins/atec-cache-info/
如果你不想使用Memcached,也可以选择Redis,可参考以下方式安装。
安装服务端
# 安装EPEL源
sudo yum install epel-release -y
# 安装Redis
sudo yum install redis -y
# 开机自启
sudo systemctl enable redis
安装PHP扩展
# 安装编译依赖
sudo yum install php-devel php-pear -y # CentOS
sudo apt install php-dev -y # Ubuntu
# 编译安装扩展
sudo pecl install redis
# 添加配置
echo "extension=redis.so" | sudo tee /etc/php.d/40-redis.ini
安装wordpress插件
大家可以安装上一步推荐的atec Cache Info插件,也可以安装专用插件Redis Object Cache,同样是安装启用即可,不用其它设置。
Redis Object Cache下载:https://cn.wordpress.org/plugins/redis-cache/
注意事项:以上提供的安装命令供参考,最好交给技术人员去操作。如果你的服务器安装了可视化面板,比如宝塔面板,以上命令都可以不要,直接在宝塔面板的【PHP管理-安装扩展-安装列表】中可以找到Memcached和Redis,直接点击安装即可,它会同时安装服务端的扩展。
前两步做好后,网站的速度和服务器的负载应该就会下降一些了。但可能不会很明显,接下来我们还需要设置文件缓存,进一步提高wordpress网站速度。收费的wordpress缓存插件推荐使用WP ROCKET,免费的推荐使用LiteSpeed cache。插件的具体设置可以参考我之前的教程。
WP ROCKET插件使用教程:https://www.zsxxfx.com/19059.html
LiteSpeed cache插件使用教程:https://www.zsxxfx.com/23616.html
CDN和对象存储(云存储)是可选项。
先来说CDN,一般小流量网站可能也用不上,用了效果也不是特别明显。CDN其实并不能直接对网站加速,甚至有很多人在使用了CDN之后都会感觉wordpress网站速度下降了,在CDN节点上如果有缓存,打开就快,如果没缓存,打开就会慢,如果你的网站流量大,那么CDN会特别有用。CDN其实还有一个作用就是隐藏源站IP,对服务器安全有一点用。(不过这里要注意:如果CDN被坏人刷量,费用损失可能会特别大)
再来说说对象存储的,悦然wordpress建站自己目前在用的是阿里云的OSS。我们可以通过云存储把网站中的图片、视频等大文件镜像到云端,通过服务商的云端服务器调用,速度会比我们自己的小服务器好很多,这对wordpress网站加速就非常有帮助了。
如果你的开通了对象存储服务,那么wordpress网站后台还需要安装好对应的插件才行。悦然wordpress建站之前的文章已经给大家介绍过多款对象存储,大家可以去看看。
WordPress对象存储插件大全:https://www.zsxxfx.com/3694.html
如果你不想安装插件,也可以使用下面这段代码,悦然实测可以支持阿里云和腾讯云,其它平台未测试。
//静态文件CDN加速
if ( !is_admin() ) {
add_action('wp_loaded','yueran_ob_start');
function yueran_ob_start() {
ob_start('yueran_all_cdn_replace');
}
function yueran_all_cdn_replace($html){
$local_host = '你的网址'; //博客域名
$all_host = 'cdn域名'; //CDN域名
$cdn_exts = 'css|js|png|jpg|webp|jpeg|gif|ico'; //扩展名(使用|分隔)
$cdn_dirs = 'wp-content|wp-includes'; //目录(使用|分隔)
$cdn_dirs = str_replace('-', '\-', $cdn_dirs);
if ($cdn_dirs) {
$regex = '/' . str_replace('/', '\/', $local_host) . '\/((' . $cdn_dirs . ')\/[^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/';
$html = preg_replace($regex, $all_host . '/$1$4', $html);
} else {
$regex = '/' . str_replace('/', '\/', $local_host) . '\/([^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/';
$html = preg_replace($regex, $all_host . '/$1$3', $html);
}
return $html;
}
}
如果你的服务器和wordpress网站做好了以上几点优化设置,那么网站速度一般都不会很慢了,即使是低配置的服务器,也会有一个相对比较好的打开速度。以上仅仅是悦然wordpress建站的个人经验总结,仅供参考哦。
© Copyright 2024. 悦然网络工作室/悦然wordpress建站 专注中小企业wordpress建站 All Rights Reserved.网站地图
本站图片来源为Pexels、Pixabay、Freepik、Unsplash等图片库的免费许可,CC0协议;还有部分为自己手绘,版权碰瓷请自重!法律服务:law@yueranseo.com 蜀ICP备20016391号-1 川公网安备 51011502000367号