十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、静态文件优化
创新互联主营赣县网站建设的网络公司,主营网站建设方案,app软件定制开发,赣县h5重庆小程序开发公司搭建,赣县网站营销推广欢迎赣县等地区企业咨询
网站的静态文件一般有两种:第一种是网站的 CSS,Javascript 和一些主题的常用背景图片和按钮文件,这些图片如果网站不进行改版或者其他改动,基本上是不会修改的,第二种是每天更新的网站内容中上传的图片或者附件,这些图片文件也是基本不会改动的。
解决好静态文件存储和加速,网站性能就首先能得到基本的保证了,WordPress 构建的网站和博客也是一样的。对于这些静态文件来说,最好的解决方案永远是使用 CDN 网络进行加速,这样服务器的压力将大大降低,因为访问页面只有当前页面是在自己服务器上,其他所有图片 JS CSS 都是从 CDN获取的。
2
服务器优化
优化好静态文件之后,就要开始对网站的动态内容进行优化,优化动态内容,首先要有一个稳定网络环境,稳定的主机供应商和服务器性能的优化。
选择一个靠谱的主机托管商,在国内这个很多时候让你抓狂,但是只要努力还是可以的。个人选择 BGP 或者多线机房,让全国用户访问都能有不错的速度,然后尽量选择独立的服务器,再不济,也得 VPS, :-) 因为你没有服务器的 Root 权限很多东西是无法进行的(个人博客可以考虑选择我爱水煮鱼目前使用的 Media Temple 这类的 VPS 主机),当然你也可以找我合租,速度肯定非常强悍。
WordPress 缓存机制和如何缓存
要彻底明白和搞懂 WordPress 性能优化,首先要理解 WordPress 缓存机制,WordPress 默认是一种叫做 WordPress Object Cache 的对象缓存机制,它是把需要缓存的内容按照 Key-Value 这样的模式进行缓存(和 No-SQL 的 key-value 的有点类似),当然它还支持按照 Group 来划分和避免缓存的内容冲突。
所以最基础的 WordPress 缓存插件就是,把 WordPress 产生的 Key-Value 存起来,如果是使用 Memcached,就是存到内存,如果使用 Flie 就是存到硬盘中,当然高级的 WordPress 插件还能做更多,比如 WP Super Cache把整个页面缓存到硬盘中,下次直接访问静态的 HTML 文件,让服务器直接绕过 PHP,节约 CPU 时间。 Batcache 会把整个页面当做一个对象存到内存里面。
App每日推送 由于注册用户操作比较频繁,不适合 WP Super Cache 这样的静态缓存,对硬盘读写太多,讨论区又无法缓存,我们使用 Memcached 和 Batcache 搭配的内存缓存模式:
对于已登陆的用户,Memcached 会把 WordPress 的对象存到内存里面,服务器的内存足够大,读取和存储速度也够快,并且内存缓存命中率也大于 94%。另外我们 WordPress 程序经过优化,每个页面的查询一般在 2 条左右,所以整个网站效率很高。
WordPress 程序优化
WordPress 程序优化是基于 WordPress Object Cache 的机制对 WordPress 插件和主题进行优化,主要经验有以下几点:
只使用必须的 WordPress 插件,安装太多的 WordPress 插件很容易引起性能问题。从正规站点下载 WordPress 主题,这样下载的主题才能保证质量和安全。WordPress 主题和插件尽量使用模板函数,因为 WordPress 模板函数如果可能都已经做好了 WordPress Object Cache。比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是 get_the_terms 直接从对象缓存中取数据,无查询,而 wp_get_object_terms 每次都从数据库中取数据。WordPress 插件和主题如果一定要直接查询数据库,请做好 Object Cache,将查询的结果使用 wp_cache_set 存到 Object Cache 中,下次直接使用 wp_cache_get 获取。
简单的说就是备份数据,然后在新站导入数据,上传附近,修改细节......就这么多东西,首先就是备份原空间的数据,由于域名被封,无法尝试进WP后台用自身的导入导出功能备份,尝试phpmyadmin导出数据再提示保持数据时,自动调出本机已经安装的迅雷下载数据库,但是每次都是失败,无法下载,卸载了训练,想用IE普通下载模式,但是导出数据时根本调不出下载对话框,重新解析了一个域名到这个站上,由于以前做过伪静态化,即使绑定了新域名后台还是无法进入,网上查资料就下载了一个帝国备份网,很轻松的倒出了数据库的数据。(推荐直接上传帝国备份王到你老空间进行备份数据库)
然后就是把从原空间下载的所有文件全部上传到新空间,然后修改wp-config.php文件里新数据库的相关用户名和密码,再在新空间上传帝国备份王,倒入原数据库倒入,你再返回首页,已经看到了一个和你原来空间一样的首页姐们,但是我不管是点击栏目还是文章都是提示无法找到该链接,(我以前做了伪静态除了,Linux系统)出现这种情况,其实就是该空间不支持所谓的伪静态而已(大多win主机都不支持)在这里给推荐一个快速设置WIN下实现WP伪静态有效的方法。
首先打开记事本,将以下内容原样复制:
$qs = $_SERVER['QUERY_STRING'];
$pos = strrpos($qs, ‘://’);
$pos = strpos($qs, ‘/’, $pos + 4);
$_SERVER['REQUEST_URI'] = substr($qs, $pos);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include(’index.php’);
?
另存为wp-404.php,也可以是404.php,名称可以随便更换,上传到服务器根目录,然后去你的主机管理面板设置自定义404错误页面,将页面设置为你刚才上传的这个页面。进行到这个步骤,我的网站已经完全恢复了正常,提醒这个404的页面要放在WP安装程序的根目录,而不是空间合租的根目录。再总结也下。
导出数据库,可以直接在后台导出,也可也用从phpmyadmin中导出,也可也用第三方软件到处,没有限制,前提是如果你用哪种导出方式,最好导入时还用哪种方式导入,比方你导出是用WP后台自身的功能的话,那么你导入上就不能直接用从phpmyadmin中进行导入,在新空间,在数据为导入前,你可以直接安装新程序,也可也直接把原空间数据全部下载上传的新空间都可以,没有截图,写的有些笼统,看不懂的网上可以搜一下相关的解决办法,相信你很快就能搬家成功。
前天几天用WP博客做了个小站,放在了某合租上,当我晚上想起来更像两篇文章上去时,突然发现网站怎么都打不开,PING了看是通的,打开了别的网站是通的,否定了服务器的问题,最好联系了一下客服才被告之被机房封了,问起原因,和什么时间开通,却是遥遥无期,无奈之下等了两天的情况下不得不考虑从新给wp程序搬家,在这里网址我也就不写了(合法,已经备案,说封就封了,连个封的理由都没)等了两天还是看这也是无望恢复,看了看论坛有太多的站长都再讨论这无缘无故的就被封了,唯一能让能安慰自己的理由就是涉嫌牵连的网站都被封,也不知道所谓的涉嫌牵连是什.......空间的名字我也不说了,下面就说一下我wp搬家的过程简单的说一下,给一些wp站长在搬家时做个参考。(无截图) 简单的说就是备份数据,然后在新站导入数据,上传附近,修改细节......就这么多东西,首先就是备份原空间的数据,由于域名被封,无法尝试进WP后台用自身的导入导出功能备份,尝试phpmyadmin导出数据再提示保持数据时,自动调出本机已经安装的迅雷下载数据库,但是每次都是失败,无法下载,卸载了训练,想用IE普通下载模式,但是导出数据时根本调不出下载对话框,重新解析了一个域名到这个站上,由于以前做过伪静态化,即使绑定了新域名后台还是无法进入,网上查资料就下载了一个帝国备份网,很轻松的倒出了数据库的数据。(推荐直接上传帝国备份王到你老空间进行备份数据库) 然后就是把从原空间下载的所有文件全部上传到新空间,然后修改wp-config.php文件里新数据库的相关用户名和密码,再在新空间上传帝国备份王,倒入原数据库倒入,你再返回首页,已经看到了一个和你原来空间一样的首页姐们,但是我不管是点击栏目还是文章都是提示无法找到该链接,(我以前做了伪静态除了,Linux系统)出现这种情况,其实就是该空间不支持所谓的伪静态而已(大多win主机都不支持)在这里给推荐一个快速设置WIN下实现WP伪静态有效的方法。 首先打开记事本,将以下内容原样复制: $qs = $_SERVER['QUERY_STRING']; $pos = strrpos($qs, ‘://’); $pos = strpos($qs, ‘/’, $pos + 4); $_SERVER['REQUEST_URI'] = substr($qs, $pos); $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI']; include(’index.php’); ? 另存为wp-404.php,也可以是404.php,名称可以随便更换,上传到服务器根目录,然后去你的主机管理面板设置自定义404错误页面,将页面设置为你刚才上传的这个页面。进行到这个步骤,我的网站已经完全恢复了正常,提醒这个404的页面要放在WP安装程序的根目录,而不是空间合租的根目录。再总结也下。