首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WordPress网站尝试优化提升速度详细教程(前端+后台)WordPress教程

WordPress网站尝试优化提升速度详细教程(前端+后台)WordPress教程

作者头像
文曦
发布于 2022-06-15 12:03:32
发布于 2022-06-15 12:03:32
1K00
代码可运行
举报
运行总次数:0
代码可运行

服务器端的优化

  • 因为我用的博客,以宝塔为例
  • 部分优化由第三方提供,实验之后发布。
  • 在创建站点之前,我们需要根据自己的条件进行一些配置,这可以让以后的站点运行更稳定

前期准备

安装宝塔Linux面板,安装Linux工具箱,安装LNMP或LAMP环境

  1. 添加计划任务,定期释放内存,建议设置每天释放一次,执行时机为半夜,如:3:30
  2. 打开Linux工具箱添加Swap Swap推荐值: 物理内存 Swap 512M 1024M 1GB 1500M 2GB 2048M 4GB 4096M 6GB+ 4096M
  3. 安装PHP缓存扩展,根据即将部署的站点需求,尽量使用更高的PHP版本,另外缓存安装建议如下: 脚本缓存:xcache、opcache 任选一项安装,PHP5.2-5.4建议使用xcache,PHP5.5以上建议使用opcache 内容缓存:若程序支持,建议优先顺序如下: redis > apc > memcached > memcache 注意:内容缓存和脚本缓存,都各只安装一个,不要安装多个!
  4. 若程序支持,尽量使用imagemagick代替PHP自带GD,以提升性能
  5. 若程序支持,尽量安装fileinfo、exif扩展,以提升站点性能和安全性
  6. 若确定您的程序不需要,尽量不要安装ZendGuardLoader,ioncube解密扩展
  7. 若您的程序不需要PATH_INFO,请把它关闭
  8. PHP并发调整建议: CPU/内存 单站点 多站点 1H/512M 20-30 10-20 1H/1G 30-50 20-30 2H/2G 50-80 30-50 2H/4G 60-100 30-50 4H/4G 100-150 30-80 4H/8G 100-200 30-80 6H/6G 100-200 30-80 8H/8G 100-300 50-100 8H/16G 100-300 100-150 16H/16G 100-300 100-150 注1:容易受到CC攻击的站点使用的PHP版本,尽量不要设置过高的并发,以免服务器被打死 注2:VPS性能参差不齐,以上建议仅供参考,请根据实际使用效果自行调整 注3:不建议设置超过300并发上限,哪怕您的服务器性能足够好;若发现并发不够用,请尝试优化站点数据库缓存可能更有效
  9. MySQL数据库版本建议: CPU/内存 数据库 1H/512M MySQL5.1 1H/1G MySQL5.1/5.5 2H/2G MySQL5.1/5.5 2H/4G MySQL5.5/5.6 4H/4G+ MySQL5.5/5.6/5.7

Ps:上述文章来源 宝塔官方运维团队 亮哥的文章,点我查看原贴

【可选】wordpress 环境设置

  • 在宝塔上的wordpress的站点设置中设置,访问限制,添加”wp-content/uploads”目录,设置为禁止执行”php|jsp”

禁用wordpress API

在将下面代码添加到主题functions.php文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 彻底关闭自动更新
add_filter('automatic_updater_disabled', '__return_true');
// 关闭更新检查定时作业
remove_action('init', 'wp_schedule_update_checks');
// 移除已有的版本检查定时作业
wp_clear_scheduled_hook('wp_version_check');
// 移除已有的插件更新定时作业
wp_clear_scheduled_hook('wp_update_plugins');
// 移除已有的主题更新定时作业
wp_clear_scheduled_hook('wp_update_themes');
// 移除已有的自动更新定时作业
wp_clear_scheduled_hook('wp_maybe_auto_update');
// 移除后台内核更新检查
remove_action( 'admin_init', '_maybe_update_core' );
// 移除后台插件更新检查
remove_action( 'load-plugins.php', 'wp_update_plugins' );
remove_action( 'load-update.php', 'wp_update_plugins' );
remove_action( 'load-update-core.php', 'wp_update_plugins' );
remove_action( 'admin_init', '_maybe_update_plugins' );
// 移除后台主题更新检查
remove_action( 'load-themes.php', 'wp_update_themes' );
remove_action( 'load-update.php', 'wp_update_themes' );
remove_action( 'load-update-core.php', 'wp_update_themes' );
remove_action( 'admin_init', '_maybe_update_themes' );

禁用谷歌字体

在将下面代码添加到主题functions.php文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 关闭谷歌字体
function xintheme_remove_gutenberg_styles($translation, $text, $context, $domain)
{
if($context != 'Google Font Name and Variants' || $text != 'Noto Serif:400,400i,700,700i') {
return $translation;
}
return 'off';
}

替换Gravatar头像

有朋友问我还有哪些稳定的 Gravatar 镜像地址,下面这些都是我收集的相对比较稳定的镜像:

站点

地址

极客族

https://sdn.geekzu.org/avatar/

loli

https://gravatar.loli.net/avatar/

inwao

https://gravatar.inwao.com/avatar/

安装wp super cache插件

屏蔽reset api

在将下面代码添加到主题functions.php文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 屏蔽 REST API
remove_action('init',   'rest_api_init' );
remove_action('rest_api_init', 'rest_api_default_filters', 10 );
remove_action('parse_request', 'rest_api_loaded' );
add_filter('rest_enabled',  '__return_false');
add_filter('rest_jsonp_enabled','__return_false');
// 移除头部 wp-json 标签和 HTTP header 中的 link 
remove_action('wp_head',   'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11);
remove_action('xmlrpc_rsd_apis', 'rest_output_rsd');
remove_action('auth_cookie_malformed',  'rest_cookie_collect_status');
remove_action('auth_cookie_expired',  'rest_cookie_collect_status');
remove_action('auth_cookie_bad_username', 'rest_cookie_collect_status');
remove_action('auth_cookie_bad_hash',  'rest_cookie_collect_status');
remove_action('auth_cookie_valid',   'rest_cookie_collect_status');
remove_filter('rest_authentication_errors', 'rest_cookie_check_errors', 100 );

移出后台帮助内容

在将下面代码添加到主题functions.php文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`// 移除后台界面右上角的帮助
add_action('in_admin_header', function(){
    global $current_screen;
    $current_screen->remove_help_tabs();
});`

移出后台右上角的选项

在将下面代码添加到主题functions.php文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`// 移除后台界面右上角的选项
add_action('in_admin_header', function(){
add_filter('screen_options_show_screen', '__return_false');
add_filter('hidden_columns', '__return_empty_array');
});`

屏蔽站点Feed

在将下面代码添加到主题functions.php文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`// 屏蔽站点Feed
function wpjam_feed_disabled() {
wp_die('Feed已经关闭, 请访问网站<a href="'.get_bloginfo('url').'">首页</a>!');
}
add_action('do_feed',       'wpjam_feed_disabled', 1);
add_action('do_feed_rdf',   'wpjam_feed_disabled', 1);
add_action('do_feed_rss',   'wpjam_feed_disabled', 1);
add_action('do_feed_rss2',  'wpjam_feed_disabled', 1);
add_action('do_feed_atom',  'wpjam_feed_disabled', 1);`
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
maven学习系列——(三)maven项目的创建
这一篇大概会整理和总结到有如下知识点: (1):maven的使用入门一些命令 (2):用命令创建项目 (3):使用IDE集成工具创建项目–Eclipse和idea
全栈程序员站长
2022/07/19
2370
如何运行SpringBoot项目
最近在Ecplise上面写了一个简单的Spring Boot的测试项目,Spring Boot里面是有主函数的:
全栈程序员站长
2022/11/04
1.1K0
如何运行SpringBoot项目
eclipse 导入父子工程_eclipse 导入maven 父子项目
你先要确认svn上是否是maven项目,否则要自己重新建一个maven项目然后直接引入目录了。
全栈程序员站长
2022/08/23
6900
Eclipse使用之导入Maven项目详解[通俗易懂]
通俗的来说,Maven就是个类似于git的项目管理工具。而Spring MVC就是将M(Model)、V(View)、C(Controller)三者进行分离进行处理,更有利于开发的进行。下面我将介绍一个别人已经编译好的Maven项目扔给你应该怎样导入到集成开发环境中。
全栈程序员站长
2022/09/02
1.6K0
SpringBoot创建maven多模块项目(实战)
作者: 西魏陶渊明 博客: https://blog.springlearn.cn/
全栈程序员站长
2022/11/08
6190
SpringBoot创建maven多模块项目(实战)
Maven配置及IDEA中配置Maven详解
首先到官网下载http://maven.apache.org/download.cgi
全栈程序员站长
2022/08/26
1.2K0
Maven配置及IDEA中配置Maven详解
spring boot 系列之一:spring boot 入门
最近在学习spring boot,感觉确实很好用,开发环境搭建和部署确实省去了很多不必须要的重复劳动。
全栈程序员站长
2022/07/18
3480
spring boot 系列之一:spring boot 入门
GitLab+Jenkins+Maven+Docker实现自动集成、打包、部署
1. 开发人员将代码上传到Gitlab代码管理平台 2. 创建jenkins自动化任务,安装maven、gitlab webhook插件实现自动检测代码管理平台的项目代码变动,自动进行打包、部署。 3. 将打好的jar包发布到docker上
全栈程序员站长
2022/06/29
1.2K0
GitLab+Jenkins+Maven+Docker实现自动集成、打包、部署
【SpringBoot】33、SpringBoot+LayUI后台管理系统开发脚手架[通俗易懂]
Asurplus-Vue:【SpringBoot】五十四、SpringBoot+VUE后台管理系统开发脚手架
全栈程序员站长
2022/09/02
1.1K0
【SpringBoot】33、SpringBoot+LayUI后台管理系统开发脚手架[通俗易懂]
idea怎么搭建springboot(搭建服务器教程)
2.选择“Spring Initializr”,点击next;(jdk1.8默认即可)
全栈程序员站长
2022/08/01
5.5K0
idea怎么搭建springboot(搭建服务器教程)
maven入门基础学习
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多凡
2019/11/01
8310
maven常见命令及打包方式
可以打包后的文件存放到项目的 target 目录下,打包好的文件通常都是编译后生成的class文件。
全栈程序员站长
2022/08/25
1K0
IDEA中Maven依赖包下载不了的问题解决方案汇总「建议收藏」
这个依赖包下载不了的问题真的是很烦,之前一直把下载不上的依赖剪切再粘贴到pom.xml文件中,保存它就自动下载了,但是今天怎么剪切粘贴都没用,所以就花了点时间在网上各种搜解决方案,试了一些之后终于从根本上解决了问题,所以写个博客把解决这个问题的方案汇总一下!
全栈程序员站长
2022/09/23
11.9K0
IDEA中Maven依赖包下载不了的问题解决方案汇总「建议收藏」
SpringBoot+MyBatis整合中的坑以及Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required错误详解
今天想重新学习一下之前大学学过的Springboot框架。然后参考此篇文章进行学习,https://blog.csdn.net/saytime/article/details/74783296 使用Spring Tool Suit的开发工具。整个项目架构如下图所示。然后开始遇到各种坑,特此记下来,以免以后犯同样的错误。
全栈程序员站长
2022/08/11
3.2K0
SpringBoot+MyBatis整合中的坑以及Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required错误详解
[菜鸟SpringCloud入门]第一章:构建多模块的Maven项目+创建注册中心Eureka子模块
欢迎来到菜鸟SpringCloud入门实战系列(SpringCloudForNoob),该系列通过层层递进的实战视角,来一步步学习和理解SpringCloud。
Rude3Knife的公众号
2019/08/07
1K0
[菜鸟SpringCloud入门]第一章:构建多模块的Maven项目+创建注册中心Eureka子模块
【8大坑】重构springboot踩坑记录手册
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhiqiang0316/article/details/80946797
林老师带你学编程
2019/05/26
1.4K0
使用Maven创建Springboot的父子工程
1、在eclipse开发工具中创建一个新的Maven项目,项目类型为quickstart,如下所示:
别先生
2020/10/30
1K0
使用Maven创建Springboot的父子工程
看必会!SpringBoot系列之从0搭建项目
使用SpringBoot已经也有两年多了,从一开始对SpringBoot的零认知到现在日常开发必接触的框架,说实话受益良多,其实SpringBoot就是Spring的扩展,以前我们做框架整合以及开发过程中会有大量的配置文件需要配置,而SpringBoot的出现就是把我们从大量配置文件xml中解救出来,不再需要做过多bean配置、DI配置,使用SpringBoot之后只需要集中在application配置文件中做简单属性配置即可,由于SpringBoot内嵌了Tomcat这样还免去了我们安装Tomcat的麻烦,我们只需要运行项目根目录下启动类的main方法即可启动项目,是不是对比以往的项目有没有感觉牛逼plus,今天先说到这,接下来我们学习如何从零搭建SpringBoot项目。
main方法
2020/12/07
1.1K0
看必会!SpringBoot系列之从0搭建项目
Maven项目缺少Maven Dependencies解决方法总结
一、今天搭建了一个maven项目,在pom.xml文件引入依赖后,发现项目结构中没有Maven Dependencies文件(下图),但是在java Build Path中又可以找到Maven Dependencies文件(如下图):
全栈程序员站长
2022/06/29
4.1K0
Maven项目缺少Maven Dependencies解决方法总结
eclipse使用maven教程
参考 https://www.cnblogs.com/whgk/p/7112560.html
全栈程序员站长
2022/07/22
1.2K0
eclipse使用maven教程
推荐阅读
相关推荐
maven学习系列——(三)maven项目的创建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档