0

0

nginx中如何优化wordpress

尚

发布时间:2019-07-16 10:45:25

|

3472人浏览过

|

来源于php中文网

原创

nginx中如何优化wordpress

nginx下wordpress运行缓慢的解决方法:

wordpress运行缓慢优化的方法

1. 减少插件的使用

这是首要的一点。大部分人往往都没足够的代码知识,更不可能做到每个插件的代码化,故大部分人都在用大量插件等。大部分的插件都会进行数据查询与生成,这在页面生成过程中 将耗费时间。如果刚好你的主机限制比较严格的话(为了均衡资源使用率),这个时间甚至会变得比较长。减少插件是非常必要的优化手段之一

2. 减少HTTP请求

每一次对于JS,CSS等文件的访问都是一次HTTP请求。插件用得少,HTTP请求数自然就更少。速度自然快了

WP在每一次的页面访问时,都会判断插件的使用情况。让WP做更少的判断就等于做更少的数据查询。解放它的负担吧。

3. 谨慎的选择主题或手动优化

许多主题虽然漂亮但在优化方面做得并不算好,各种JS,各种CSS,各种背景图片,各 种空行,各种冗余,这些都会影响到载入速度。不过这并不意味着不能选择绚丽的主题,而是主题应该要基本满足以下要求,或者你手动修改它使其满足以下要求:

合并CSS和JS:将多个CSS合并为1个。

合并背景图片:使用CSS Sprites将大部分的背景图片合并为1个文件,同样是减少HTTP请求,减少文件体积,加快渲染时间。

减少数据查询:能用HTML直接输出的地方就不要搞个数据查询。

合理的JS和CSS位置:合理的将一些JS和CSS放置到网页底部。

优化主题的背景图片

4. 减少外部资源的使用

外部资源就是不在自己服务器上的资源。使用太多的外部资源会遇到以下问题:

解析DNS的时间变长

每一个域名都是需要DNS解析才能够正常工作。如果网站上的内容同时需要加载a.com,b.com,c.com,d.com这些网站的资源,那就 需要更多的时间去分别解析每个域名的DNS,建立连接。而同样的,如果自己的站点是a.com,如果同时加载1.a.com,2.a.com这些类似的域名,也同样会加长DNS解析时间。外部资源是不可能完全避免的,但能少则少。

外部资源的加载速度不可控制

这主要是针对一些国外站点的内容而言,比如fickr,twitter等,因为众所周知的原因,加载它们的资源会明显减慢载入速度。而国内的站点相对来说速度还算是比较快。

5. 减少数据库查询,或使用数据库缓存插件

许多的插件都需要数据库查询,上面关于插件和主题的部分也提到了优化代码尽量减少数据库的查询次数。如果不懂,可以考虑使用数据库缓存,它能够将数据库的查询内容缓存起来

需要注意的是,数据库缓存插件不要和静态化缓存插件一起使用。因为两者都是数据缓存内容减少查询,如果一起用就等于重复劳动。

6, 使用页面静态化缓存插件

静态化缓存插件和数据库缓存插件的原理差不多,都是将内容提前整理好并生成静态的文件,当需要的时候直接拿出来,而不需要再去查找、生成,浪费时间。缓存过的静态文件基本上可以等同于一张静态图片,不需要执行太多复杂的内容。

还有一些其他优化的方法等,使用GZIP压缩网页、优化博客文章图片、使用CDN分布式网络加速静态文件等。

安装wordpress插件检查缓慢原因

本站运行一段时间后,每次访问首页最多时候需要20秒钟以后上, 访问一个单独文章页面也要10秒,简直不可接受,基本都要崩溃了, 最后下定决心彻底解决它。

通过查阅大量资料, 参照前面一节的办法对系统做了优化。

1. 首先屏蔽全部插件,发现系统问题依然存在, 打开首页速度依然在10秒钟左右

2. 通过httpwatch检查http请求情况,发现访问首页中,获取php页面时间是9秒钟, 打开图片、js、css等时间是2~3秒钟左右, 因此不是http请求过多造成的。

3. 打开mysql数据库的慢查询,检查数据库的慢查询情况,发现多数查询都比较快,对一些查询做了测试,速度非常快。因此数据库因素也可以排除了。

实在没办法了, 最后考虑找wordpress插件来研究一下在显示首页中都发生了那些内容,然后看看那里占用时间最长, 然后有针对的慢慢优化,只好这么干了。

到了wordpress网站,搜索 debug插件, 搜索了很多,试用了很多,都不太符合自己的要求。最后发现了一个插件“Debug Queries”,按照wp的老习惯下载并且安装,最后路下图,点击启用按钮开启插件。

1.jpg

安装完成插件后,打开网站首页,查看效果发现没有任何变化

智能网站优化SiteSEO1.52
智能网站优化SiteSEO1.52

系统易学易懂,用户只需会上网、不需学习编程及任何语言,只要使用该系统平台,只要会打字,即可在线直接完成建站所有工作。本程序适合不懂php环境配置的新手用来在本机调试智能SiteSEO网站优化软件,安装过程极其简单。您的网站地址:http://localhost您的网站后台:登录地址: http://localhost/admin.php密 码: admin服务器套件所包含的软件:nginx-0.7

下载

最后打开一个文章页面,在文章页面最下面发现了久久寻找的东西,路下图:

2.jpg

图中已经用不同颜色的区域做了一些标注

红色区域: time:0.000xxxx  查询需要的时间

绿色区域: Query: 查询的sql语句

Call from: require,xxx  调用顺序等等

然后下面是另外的调用。 页面显示了本次页面显示过程调用了那些函数以及调用过程,及需要的时间(数据库的查询时间,根据这个时间及总时间我们计算出php花费的时间)

最后页面路下图:

3.jpg

蓝色部分:是本次访问数据查询时间 汇总, 可以看到查询共花费了0.24秒, 发生了83次查询(这个也说明wp插件带来性能的问题,只是目前系统中数据量较少,还不至于影响系统的性能)

绿色部分:是本次用户访问过程中总体时间的汇总,这里统计的应该是包括了php的总体时间。

红色部分:是本次访问的总时间

紫色部分: 本次访问中花费在php程序中消耗的百分比。97.5%

黄色部分:是本次访问中花费在MySQL数据库上时间的百分比 2.5%

从上面数据中我们可以看到, 一次10秒钟的用户访问中, mysql花费时间仅仅占用了2.5%因此可以肯定这次10秒钟的访问问题出在mysql以外的环节上, 主要应该是php的问题。

重新启动php进程解决缓慢问题

从上面部门的分析中我们已经可以了解到问题很可能出在php上面,排查php问题,不是我的专长,因此决定重新启动php进程看一下效果。

1. 查找php进程

输入 su – 命令, 切换端到root帐号下

在输入: ps -ef | grep php 命令,查看php进程,如下

4.jpg

从图中我们可以了解到php进程id 是 26765, 进程名称php-fpm(这个是nginx需要的php程序)。

2. 查找php进程的启动路径

输入如下命令 lsof -p 8584(这里的8584是在进行问题解决时php进程的id,上面26765还是最近写文章是查找的进程的id)

5.jpg

3. 关闭进程

kill -9 8584 关闭老的php进程

有的时候php开辟了很多进程, 不好关闭,可以采用下面的办法进行

killall php-fpm  (本站就是采用这个办法进行的)

4. 重新启动php进程

输入如下命令

/usr/sbin/php-fpm 重新启动进程

更多wordpress相关技术文章,请访问wordpress教程栏目进行学习!

相关文章

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

1681

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1116

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1020

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

948

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1396

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1227

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1438

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1302

2023.11.13

笔记本电脑卡反应很慢处理方法汇总
笔记本电脑卡反应很慢处理方法汇总

本专题整合了笔记本电脑卡反应慢解决方法,阅读专题下面的文章了解更多详细内容。

1

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 771人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号