wordpress 终极加速方法

  [复制链接]
查看: 1513   回复: 37
发表于 2013-12-20 19:41:21 | 显示全部楼层 |阅读模式
本帖最后由 21andy 于 2013-12-20 19:48 编辑

既然大家这么喜欢WP,我就分享一点我的经验

不说缓存了,都说烂了,缓存不是解决的办法,缓存总是要过期的
其他的优化方法我不说了

说点特别的,性能可以提升不少
要让wordpress 快,用好内存
以下二个PHP扩展,二选一
1. apc
2. zend opcache
性能我测试过,差不多,开启它们

然后,把所有wp的PHP文件,全部直接放内存里
举例: 你的 wordpress 目录在 /var/www/wp

方法如下:
1. 复制一份 wp
cp -rf /var/www/wp /var/www/wp2

2. 删除非 php 文件
cd /var/www/wp2
find . -type f | grep -v ".php" | xargs rm -f

4. 放到内存里
cp -rf /var/www/wp2 /dev/shm

5. 可以删除原目录里的所有php文件
cd /var/www
find . -type f | grep ".php" | xargs rm -f

现在,我们已经把 wp 目录下的所有PHP文件过滤出来直接全部放内存里了
最后一步

6. 配置 nginx
location ~* \.php$ {
    root /dev/shm/wp;
    try_files $uri =404;
    fastcgi_pass  unix:/dev/shm/php-cgi.sock;
    include fastcgi_params;
}

7. 重启 nginx 和 php-fpm 搞定!

最新版的 wordpress 这样分开后
纯php文件一共 8.4MB,全放内存里
其他文件 4.7MB
如果部暑好了以后,不要安装插件
如果要安装,需要分离放一下






评分

参与人数 14T币 +26 收起 理由
z11zhang + 2 楼主,你知道的太多了
sammy + 2
caaol + 1 鼓勵
nff + 1 有見地
lomboz + 1 楼主好牛
DDOS + 1 不错
hudba + 2 /dev/shm 真不错
ryan2101 + 1
anisor + 1 楼主V5
玄影 + 1 楼主好牛
hardrock + 1 有見地
yangjianfeng + 4 有見地
roror999 + 3 希望多多分享。
月光飞燕 + 5

查看全部评分

发表于 2013-12-20 19:49:22 | 显示全部楼层
这个是转的还是实践过的?
wp慢 主要是数据库大了 调用起来慢吧 光PHP加载 费不了多少时间
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-20 19:55:21 | 显示全部楼层
本帖最后由 21andy 于 2013-12-20 19:58 编辑

原创
WP加载的文件太多,这样做可以解决WP的IO问题,不过WP很多代码写的太多余了,想快就自己开发
WP的数据库结构是硬伤,没办法,结构决定了要多表查询,加速数据库是另一部份内容了

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-20 20:14:35 | 显示全部楼层
本帖最后由 21andy 于 2013-12-20 20:26 编辑

为了实贱证明, 我特意下载了一个最新干净的WP
什么插件也不装,APC关闭
打开默认首页
1. 原WP, 执行时间在0.60 - 0.67 秒间
2. 用我的办法, 页面执行时间提升到 0.15-0.20 秒间

然后,打开APC
1. 原WP, 执行时间提升到 0.29-0.38 秒间
2. 用我的办法,页面执行时间提升到 0.04-0.05 秒间

性能提升 3-4 倍

==============
我晕我傻了,不会算术
0.05 和0.30, 差6倍!!!



回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-20 20:15:51 | 显示全部楼层
加分加分,有问题可以问我
回复 支持 反对

使用道具 举报

发表于 2013-12-20 20:18:27 | 显示全部楼层
谢谢。技术贴,我得先收藏起来

andy最近很活跃呀,多发言吧,你的经验流露出一点点,就会惠及很多人的



回复 支持 反对

使用道具 举报

发表于 2013-12-20 20:29:30 | 显示全部楼层
21andy 发表于 2013-12-20 20:15 wordpress  终极加速方法
加分加分,有问题可以问我

把你收款图到展示区贴一下,大家保证大把T币送来

回复 支持 反对

使用道具 举报

发表于 2013-12-20 21:48:46 | 显示全部楼层
看了几遍,还是没看懂。。
回复 支持 反对

使用道具 举报

发表于 2013-12-20 22:40:06 | 显示全部楼层
放在内存里?
VPS重启后会丢失文件吗?
回复 支持 反对

使用道具 举报

发表于 2013-12-20 22:42:20 | 显示全部楼层
本帖最后由 hardrock 于 2013-12-20 22:48 编辑

apc=APC Object Cache Backend  ?
Compatible up to: 3.5.2
3.6 ,3.7 ,3.8 兼容吗?

第二个,wp上查不到啊


用在vps上,不能主机空间,apache不行,只能nginx



回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-20 22:47:23 | 显示全部楼层
fantasy163 发表于 2013-12-20 21:48 wordpress  终极加速方法
看了几遍,还是没看懂。。

其实很简单,就是把/dev/shm当成硬盘的一个目录用啊,只不过把WP放里面
win的话,也可以装ramdisk来实现


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-20 22:50:03 | 显示全部楼层
jay1740 发表于 2013-12-20 22:40 wordpress  终极加速方法
放在内存里?
VPS重启后会丢失文件吗?

重启当然丢了
先把 /dev/shm/wp 备份一份,比如放在 /var/backup/wp
为了保证开机自动加载到内存目录,像这样弄

加这句到 /etc/rc.local 末尾
cp -rf /var/backup/wp /dev/shm
这样就OK了


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-20 22:52:34 | 显示全部楼层
hardrock 发表于 2013-12-20 22:42 wordpress  终极加速方法
apc=APC Object Cache Backend  ?
Compatible up to: 3.5.2
3.6 ,3.7 ,3.8 兼容吗?

apc 是缓存php解析后的代码用以加速PHP的

http://www.php.net/manual/en/book.apc.php

linux 安装很简单
比如 centos
yum -y install php-pecl-apc
然后编辑配置文件开启就可以了
/etc/php.d/apc.ini


回复 支持 反对

使用道具 举报

发表于 2013-12-20 23:24:08 | 显示全部楼层
我还以为是wp plugins , 原来不是
回复 支持 反对

使用道具 举报

发表于 2013-12-20 23:26:37 | 显示全部楼层
本帖最后由 jay1740 于 2013-12-20 23:31 编辑
21andy 发表于 2013-12-20 22:50 wordpress  终极加速方法
重启当然丢了
先把 /dev/shm/wp 备份一份,比如放在 /var/backup/wp
为了保证开机自动加载到内存目录,像 ...

谢谢大牛分享!!!!!!!!!!!!!


回复 支持 反对

使用道具 举报

发表于 2013-12-20 23:48:04 | 显示全部楼层
谢谢分享!等以后开站后再用用

评分

参与人数 1T币 +1 收起 理由
baron + 1 鼓勵

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2013-12-21 08:00:01 | 显示全部楼层
已经记录下来,做站的时候试一下

回复 支持 反对

使用道具 举报

发表于 2013-12-21 08:02:47 | 显示全部楼层
typecho出新版了,速度杠杠滴
回复 支持 反对

使用道具 举报

发表于 2013-12-21 08:04:38 | 显示全部楼层
高级加速方法 还没有vps留着以后待用
回复 支持 反对

使用道具 举报

发表于 2013-12-21 13:14:36 | 显示全部楼层
lz可以试试php5.5 自带optimizer+
我看apc的维护者(国人)也说比apc更快.


回复 支持 反对

使用道具 举报

发表于 2013-12-21 15:54:49 | 显示全部楼层
以前看过类似的优化文章 是把PHP的SESSION放到linux的内存中, 楼主可以想到把PHP文件也放到内存中,确实是一个举一反三的好例子额, 我就想不到这一点额,呵呵。

18楼提到的 typecho 这个貌似不错, 有时间去试一下

现在有个这个 http://www.cnwebmasters.com/thread-112762-1-1.html 貌似也不错额

都可以提高速度。

wordpress  终极加速方法
回复 支持 反对

使用道具 举报

发表于 2013-12-21 16:02:59 | 显示全部楼层
typecho 新版我试用半个钟头就找到一个bug了,不过懒得去报告,反正我都是用wp的,下次出新版再试用下,没问题了再放个站玩玩。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-21 16:52:41 | 显示全部楼层
本帖最后由 21andy 于 2013-12-21 16:53 编辑
熟能生巧哇 发表于 2013-12-21 15:54 wordpress  终极加速方法
以前看过类似的优化文章 是把PHP的SESSION放到linux的内存中, 楼主可以想到把PHP文件也放到内存中,确实是 ...

我说的办法效果是目前最明显的,提速必不可少的,HHVM性能有所提升,可以和我说的办法结合,达到极速

为了实践证明,刚刚测试了一下

HHVM还是不能解决I/O问题,直接给数据
纯净最新WP,什么也不装,打开首页

一,wp 放在硬盘
apc 开启的情况下:
php-fpm 0.2X 秒
hhvm     0.1x 秒

二,使用我的办法,wp 放在内存
apc 开启的情况下:
php-fpm 0.04 - 0.06 秒
hhvm 0.025 - 0.06 秒

结论:只用HHVM不把WP放内存,还比我的办法慢2至3倍

HHVM + APC或zend opcache + 我的办法,是最快的
不过HHVM比较麻烦,需要在wp目录下面运行
hhvm --mode daemon -vServer.Type=fastcgi -vServer.Port=9000


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-21 17:07:43 | 显示全部楼层
本帖最后由 21andy 于 2013-12-21 17:10 编辑
luguokankan 发表于 2013-12-21 13:14 wordpress  终极加速方法
lz可以试试php5.5 自带optimizer+
我看apc的维护者(国人)也说比apc更快.

那就是我顶楼所说的zend opcache
实际测试了和APC比提升不大
喜欢哪个就用哪个,很容易切换,呵呵


回复 支持 反对

使用道具 举报

发表于 2013-12-21 19:43:09 | 显示全部楼层
在VPS上试试效果看。            
回复 支持 反对

使用道具 举报

发表于 2013-12-21 20:08:25 | 显示全部楼层
额,不太懂啊.......看着好像很好的样子
回复 支持 反对

使用道具 举报

发表于 2013-12-21 20:29:53 | 显示全部楼层



用你的方法安装 zend opcache 网站出站 502 Bad Gateway

nginx


但是探针能打开


回复 支持 反对

使用道具 举报

发表于 2013-12-22 17:34:24 | 显示全部楼层
21andy 发表于 2013-12-21 17:07 wordpress  终极加速方法
那就是我顶楼所说的zend opcache
实际测试了和APC比提升不大
喜欢哪个就用哪个,很容易切换,呵呵

apache能用这个么?nginx用的话,wordpress的静态化规则如何写?

回复 支持 反对

使用道具 举报

发表于 2013-12-22 18:12:19 | 显示全部楼层
好复杂的步骤,搬家的时候也够烦的吧
回复 支持 反对

使用道具 举报

发表于 2013-12-22 18:17:01 | 显示全部楼层
好帖子, 学习了

另外 想请问原理是什么呢?
回复 支持 反对

使用道具 举报

发表于 2013-12-22 18:33:47 | 显示全部楼层
请问是任何的虚拟主机都能用吗,比如hostgator的
回复 支持 反对

使用道具 举报

发表于 2013-12-24 20:32:29 | 显示全部楼层



感谢楼主分享, 我想问下,不用wordpress, 域名目录下的单php文件或者文件夹,如何转移到内存?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-24 21:24:10 | 显示全部楼层
lowrie 发表于 2013-12-21 20:29 wordpress  终极加速方法
用你的方法安装 zend opcache 网站出站 502 Bad Gateway

nginx

502是因为nginx的php部份没配置好
给个最简单的办法,如果觉得配置麻烦,直接整个WP放内存
手动清理掉WP里所有无用的文件,模板,插件什么的
改server {}里的root就行了


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-24 21:25:40 | 显示全部楼层
zch0071 发表于 2013-12-22 17:34 wordpress  终极加速方法
apache能用这个么?nginx用的话,wordpress的静态化规则如何写?

apache也一样的,document_root改到内存里,好几年不用APACHE了,rewrite不变啊

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-24 21:26:08 | 显示全部楼层
lomboz 发表于 2013-12-22 18:33 wordpress  终极加速方法
请问是任何的虚拟主机都能用吗,比如hostgator的

虚拟主机不能用,要有ROOT权限

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-24 21:27:33 | 显示全部楼层
nff 发表于 2013-12-24 20:32 wordpress  终极加速方法
感谢楼主分享, 我想问下,不用wordpress, 域名目录下的单php文件或者文件夹,如何转移到内存?
...

用点技巧就可以了
location {} 匹配那个文件
然后 proxy_pass 到127.0.0.1某个端口
然后 这个端口的root为 /dev/shm里的某个目录
然后,把你那个文件放 /dev/shm里的某个目录里
呵呵



回复 支持 反对

使用道具 举报

发表于 2013-12-25 08:34:33 | 显示全部楼层
21andy 发表于 2013-12-24 21:27 wordpress  终极加速方法
用点技巧就可以了
location {} 匹配那个文件
然后 proxy_pass 到127.0.0.1某个端口

感谢楼主热心, 我想试试你的办法,但是技术白一个,能详细点或者举个例子吗? 谢谢啊
回复 支持 反对

使用道具 举报

发表于 2014-1-2 09:30:50 | 显示全部楼层
请问wordpress插件如何分开放?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则