
(miao)里经常讨论性能优化的问题, 通俗点就是网页打开速度
比较影响速度的因素有:
1. 后台(PHP+MySQL): 根据请求,运行语句,操作数据库,生成页面返回
效率低的或查询量大会让cpu飙升
2. 线路: Ping 命令大家都会用,这时间就代表一个来回
(Ping偶尔会Timeout超时,也就是所谓的丢包,常规原因有2种:真丢,假丢
例如有些服务器设置侦测到集中密集的ICMP包会选择性的丢弃掉
10次里丢1次完全不同于10次访问有一次打不开,网页是走 TCP/IP 需要3次握手
Ping 相对重要的参数就是时间了,国外一般200-300ms左右,国内一般100内)
3. 前台: 闻名的 yslow 34 rules, 做了这些简单的调整, 可以明显的提速25%-50%

只需要装上Firefox,再继续搜 Firebug插件和 ySlow 插件
打开页面,按下 [F12] ,点 [yslow] 点 [run test] 即可分析当前页面搞优化和搞SEO一样,没有绝对,只有相对的平衡,为了可维护性以及可用性牺牲的性能是比较值得的,而花大力气收效甚微的可往后靠
进入正题, 针对前后台和线路的解决方案
线路解决方案: 把服务器放在国内是最快的,缺点如下
1.备案(我是良民,备案除了浪费时间,可以克服)
2.安全(源码被盗,甚至密码泄露,网站被埋后门等时有耳闻
蝙蝠侠说过,能力越大责任越大
任何root只需要10个字母的系统自带命令就能监听未加密的数据包例如ftp,对,密码也会直接显示
请各位同学尽量用加密连接代替,例如sftp scp https之类的)
3. 你懂得,多说无益,小时候我数据蒸发过无数回,皆因同机房其他不良站连带
国外空间速度还能接受,价格还便宜,跟对管理员什么的,有肉吃!
唯一的缺点就是一旦发生啥大事,就会假装线路有问题,抽抽,概率较低每年几次
例如你正在看俺的这个帖子,他就位于达拉斯机房,不快,也不慢,图个稳定
后台解决方案: 静态化
也就是所谓的缓存,把数据库查询和PHP生成的页面生成html静态页面,一劳永逸
wordpress 里有缓存插件专门搞这些的 (WP Super Cache 安装与设置方法)
前台解决方案: 按照 yslow 给的建议走一遍
前文有提到
根据我的经验, 随便搞搞并效果好的是 http 请求数, 过期时间, 文件体积, 页面DOM节点太复杂, 脚本一大堆 这几个
http 请求数(非常明显):
例如一个页面里有两张图片三个样式四个脚本,用户打开的时候就会产生1+2+3+4=10个请求
具体不分析,在文件比较小的情况下,例如表情头像什么的,请求5张10K的图片比请求一张50K的图片要慢的多
这种可以用 CSS Sprite 雪碧技术去选择性优化(切勿盲目雪碧,偶尔也要来点可乐杀杀)
多个样式表或脚本文件,方便的话,人肉复制粘贴合并,注意先后顺序,先加载的放前面
过期时间(非常明显):
管理员一般会给apache安装mod_expires,按照文件类型设置过期时间,例如(miao)设置了图片为一年过期
一旦这张图片存在于电脑的缓存里,电脑查询到还没过期,就直接取本地,跳过了请求也跳过了线路问题浏览器缓一般只有几十MB,有新内容放不下会按照时间顺序删掉比较老的(即使没过期)
那会儿还专门做了个缓存生成器(擦车)测试过唯一的缺点就是同名文件服务器更新了,本地电脑不鸟他, 可以用时间戳搞定
Google 新出的 mod_pagespeed 使用换文件名形式来规避这个问题
文件体积(非常明显):
下过毛片的同学都知道,mkv和rmvb的区别我就不多说了
解决方案就是搞个 gzip 压缩,一般 100k 的文本文件例如样式和脚本能压缩到30-50K
服务器在压缩后会在某个目录先留着,第二次请求的时候就不用再压缩了,所以CPU占用可以忽略
例如(miao)默认会按照文件类型压缩: 脚本 样式 网页什么的
脚本一大堆+页面太复杂(明显)
经常遇到有同学装了不少插件,插件调用了很多脚本文件
蹭有一个页面同时加载了YUI Jquery Prototype AE…(AE是什么框架?哈哈)
解决方案就是… 自己选一个炫和快的平衡点
好吧,这么多实现起来有难度啊
非技术流的同学可咋办好?
不用怕! WordPress有个插件叫 W3 Total Cache
他直接把前后台都优化了
出发点是好,估计技术还不行
只要装了 W3 Total Cache ,肯定比不装还要卡
奶奶的,遇到好几个站了,用的就是W3 Total Cache
CPU占用异常高!!!
搜了下也有一堆测评
Use WP Super Cache for WordPress speed, not W3 Total Cache (评论闪闪发光,很多技术细节)
WordPress load test part 2 – amendment
WordPress Cache Plugin Benchmarks
W3 Total Cache versus WP Super Cache
综上所述:
不要用 W3 Total Cache (方向对,但做的很烂)
用 WP Super Cache (WP Super Cache 安装与设置方法)

嗷呜?豆瓣(www.douban.com)怎么打开是庙的内容?
经常遇到的情况是,我有一个网站,例如叫www.douban.com,他在正常运行
但是我需要测试下一个新的空间,如果直接更改www.douban.com的A Record(也叫IP指向)到新的服务器
这会让所有用户都转向测试用的服务器,这样就不好玩了
既要用域名测试,又不中断同样域名用户正常访问
今天要介绍的妹子叫做HOSTS文件
先介绍几个概念
域名 www.douban.com (不介绍,你懂的)
DNS 主 b.ns.douban.com 辅 d.ns.douban.com (在你输入域名回车后,电脑会去这个地址查域名对应的IP)
IP 211.147.4.49 (这是DNS服务器告诉电脑域名所对应的IP)
IP地址对应一台装了网站内容的服务器,电脑再去联系那个IP说我要www.douban.com对应的网页
IP对应的服务器就把豆瓣给你看了
这个所谓的HOSTS文件呢,他的用处就是你输入网址回车后,直接告诉你对应的IP
跳过了DNS环节,浏览器就傻逼逼的去向那个IP要文件了
他的位置呢,在咱自己的电脑里,如下

windows在 C:\Windows\System32\drivers\etc\HOSTS
linux 在 /etc/hosts
可以直接双击用记事本或其他你喜欢的编辑器打开
注意: win7用户需要更改下权限(方法在最后补充) linux用户需要sudo一下 不然没法保存
语法简单到爆

写一串IP然后空格然后网址就可以了
#井号是注释
保存之后,浏览器关掉再开, www.douban.com 对应的IP就是你打在HOSTS文件里的那个了,即使ping一下也是新IP
只是改了HOSTS的机器里,不影响其他用户
这样子,换空间的时候就能先改HOSTS调试完毕后再换DNS服务器上的IP指向,实现无缝过渡
最后再补充win7的权限设置:
在HOSTS文件上右键,属性,接下去如下图


有啥问题请留言,俺一一答复
——update————–win7更安全的使用HOSTS——-
Win7下按照我这种方法,就是把HOSTS文件弄成谁都可以随便上的文件,方便了自己也方便了恶意程序
同理777的危害
下面两种就类似linux的sudo方式,就是需要的时候赋予打开文件的程序以管理员权限,平时各回各家各找各妈
啊哈 ,maduoyuan says: 以管理员身份运行Notepad++ 或其他编辑器
zgy5729 says: Win7 下面可以开一个管理员权限的CMD,然后导航到hosts所在的地方,notepad hosts一下就可以,这样即安全也不会出现修改完以后忘了改回去被病毒传改了HOSTS
点击上图看大图
选系统和选妹子一样, 一定要长得靓
有很多同学在星巴克搅着飘香咖啡摊开MBP启动WINXP并且装着苹果主题也都是冲着这点吧想必
第一次进 ubuntu 官方主题站的时候……传送门 实在是……丑的可以
所以一直用系统默认的 new wave , 直到有一天蛋疼看到了Elementary Art 这款主题,初恋的感觉呐,小心肝儿扑通扑通跳
安装方法:
$ sudo add-apt-repository ppa:elementaryart/ppa
$ sudo add-apt-repository ppa:am-monkeyd/nautilus-elementary-ppa
$ sudo apt-get update
$ sudo apt-get install elementary-theme elementary-icon-theme elementary-wallpapers
$ sudo apt-get upgrade
然后桌面右键最后一个啥的恩恩
PS: 下面那个叫 Docky 在软件中心直接搜索就能拿到
1. Gmail 提醒(支持Google Apps 邮局),左键浏览器打开右键查看邮件列表
2. 天气预报
3. 简洁直观,个人不喜欢pin一大堆图标

wordpress 的插件越来越多,速度也越来越慢,咋整?
静态化!
今天主要是把流程 Step by Step 一下,不用理解为啥这么设置, 只需要知道设置后会变的很快
所谓提前优化是万恶之源的意思就是说,之前网站做的越烂,优化的空间就越多
和老板说看,之前多烂多烂,俺给你省了多少多少钱,一般都能拿奖金
静态化也一样,之前一大堆插件,开个页面上百次MYSQL查询,或烂人写的没效率SQL会让人不禁抓栏杆撕床单
WP Super Cache 并不是100%静态化,不过这个不重要,他把最卡的部分搞定了即可
WP Super Cache 他唯一的缺点就是如果你在改主题或搞啥插件,后台设置了前台看不出变化,为毛?下面有解决方案
OK, let’s gou
- 首先,永久连接不能使用默认格式
- 修改永久链接格式,中文推荐采用 /%post_id%.html (这下你知道我的.orz哪里来了吧)
如果你和我一样蛋疼愿意为每篇文章写一个英语的post slug
建议采用这样的格式:/%postname%.html (百分号外面的随意写)

这里我一二三四五六七都标注了就不介绍了吧,常规装插件也是这个套路
那些个神马ftp时代都已经过去鸟过去鸟

装完后激活一下

激活了,但他说还需要去设置一把, Rock it

凡是推荐的都打钩,无脑输出嘛
需要注意的是(miao)的用户不要开Compress pages so they’re served more quickly to visitors. (Recommended)
因为默认已经压缩了,再压缩一次一是可能乱码,而是增加不必要的损耗变得更慢
需要注意的是Don’t cache for known users的意思是对已经登录的用户不缓存
这就解决的后台改主题无法更新的缺点
也就是说,平时的时候这个选项不打钩,当你需要改主题或调试插件什么时候就打他,改完了再去掉

因为我们选择了最快的mod_rewrite 方式,所以继续往下拉,会看到一坨螺旋状大黄色的容器,点里头的update mod_rewrite rules

不出意外会给个绿色的确认,某某.htaccess被插了…

有个激动人心的功能上几个版本才加进来的叫Preload,具体有兴趣可以看我写过的Preload 就不累赘再说一次了

全都搞定后去前台页面,右键查看源代码,拉到最下面,会有三行状态告诉你已经搞定鸟
FAQ:
Q: 我流量那么小,有必要搞这个么?
A: 搞这个纯粹为了自High,和流量没关系,例如打开自己的网站快个两三秒不是一键很爽的事咩?
Q: 那个过期时间我能改咩?
A: 建议用默认的
Preload 模式下更改过期时间,会导致全站文件一遍遍的重新生成,这是完全没必要的
普通模式下更改过期时间,太短或太长都会导致CPU飙升,得不偿失,除非你流量大一个月五六千才有必要
Q: 我发表新日志,或访客留言后他会全站再静态化一次么?
A:不用担心,使用起来和没有装是一样的,有内容更新它会重新生成对应的页面的静态文件,没有更新的就没必要再去重新生成一次
Q: 这个对SEO有没有影响?
A: 有,SEO里爬虫对页面打开速度比较敏感,
常规模式下第一次访问才生成,到期后回收掉,也就是说第一次比较慢
Preload模式先给你都静态了,不管何时访问都快,对SEO更好
Q: 乱码啦乱死人啦~~~
A: 关掉 Compress pages so they’re served more quickly to visitors. (Recommended)
还有啥Q请留言

呃,男人要经济适用男,娶个老婆也是要实用
打老婆v6.1 新增本机IP查询功能
还加入域名IP查询功能以及域名提供商查询
这下老婆不是花瓶了~
chrome http://www.google.com/chrome/
beatWife https://chrome.google.com/extensions/detail/cgoebjgkiiapifcpclljbdbmmodmmdff

中秋+国庆,真是好变态呀
穷人肥家都素火车滴,辣么如何查询火车票余票呢?

http://www.12306.cn/mormhweb/kyfw/ypcx/
妈的,肥个家还要去杭州,再做三个多小时快客! 不肥了! 让偶妈淡季过来玩了

-webkit-
-moz-
玩CSS的都熟悉,可是搜索他们的时候却死活搜不到
这是为虾米?
为虾米啊为虾米
是因为减号-在搜索规则里是排除的意思
所以你搜索
-webkit-text-size-adjust
就是结果排除webkit排除text排除size排除adjust
更正
-webkit-text-size-adjust 代表排除 webkit-text-size-adjust
-webkit -text -size -adjust 代表排除webkit排除text排除size排除adjust
那你到底要搜啥?
正确的做法是加个引号标记为字符串
"-webkit-text-size-adjust"
顺便提一下,神飞同学搞 Chrome 中文版不能设置中文字体小于12px的时候找到了这么一个属性
“-webkit-text-size-adjust”
只要设置为none,就不会被强制12+了

一般玩 WordPress 的要清楚一些概念
WordPress 包含
1.是官网下载过来的压缩包解压缩出来的一堆 PHP 文件
2.是用户上传的文件一般在 wp-content/upload/ 里
3.是插件、主题在 wp-content/themes/ wp-content/plugins/ 目录里
4.是用户产生的文字啊配置啊在 MYSQL 数据库里
MYSQL 数据库和 FTP 上去所看到的一堆文件(程序,上传的文件,主题,插件等)是分开的
而 WordPress 通过 wp-config.php 来连接 PHP 和 MYSQL 实现你产生的数据保存到数据库,以及从数据库里取出文章留言什么的给你看
所以我们备份的时候需要备份2个部分
1. 硬盘里自己目录下的所有文件 (程序,上传的文件,主题,插件等)
2. 数据库
一般备份的步骤如下
1.导出数据库到自己的目录下(这样他们就融为一体了)
2.打包整个目录(包含导出的数据库以及其他所有文件)
3.登录新的服务器,并获取压缩包,然后解压缩
4.把解压缩出来的数据库文件导入新服务器的 MYSQL 数据库里
5.修改wp-config.php 把数据库链接信息修改为新的服务器上的数据库信息
那么我们就开始吧
今天的例子是 Plesk 到 CPanel ,当然你也可以举一反三俗 P2C C2C P2C C2C 什么的
(一般P2P或C2C都有他们自己搬家工具,不用这么折腾,除非耍帅)
关于 MYSQL 数据库
1.数据库名 例子:bigcat_db
2.数据库用户名 例子:bigcat
3.数据库密码 例子:12345
具备这仨就可以搞定数据库了
关于 Plesk
用户home目录,简单说 FTP 登录上去看到的那一堆里有个叫 httpdocs 的,就是对应网站,例子:ooxx.me 的根目录
httpdocs/av.png 文件对应的URL就是 http://bigc.at/av.png
关于 CPanel
用户home目录,简单说 FTP 登录上去看到的那一堆里有个叫 public_html 的,就是对应网站,例子:ooxx.me 的根目录
public_html/av.png 文件对应的URL就是 http://bigc.at/av.png
综上所忽悠,我们需要做的是
1.导出数据库在 httpdocs 目录里 打包整个目录
2.把压缩包整到public_html目录里解压缩导入数据库
下面是每一步的截图(可能没有图)
登录老服务器
用终端(MAC/Linux)
ssh bigcat@ooxx.me
注意:linux 输密码不显示星号避免暴露位数,请自重,打完回车即可
客户端 SecureCRT (windows)
SSH服务器地址ooxx.me
端口:22
用户名bigcat
登录成功会提示
bash-3.2$
确认下我在哪里就输入
pwd
会提示
/var/www/vhosts/ooxx.me
要看看当前目录有什么文件就输入
ls -la
会在一堆列表里看到有httpdocs
那么我们就进入这个目录,输入
cd httpdocs
再 pwd 一下,提示
/var/www/vhosts/ooxx.me/httpdocs
果然已经进入了
继续
ls -la
可以看到出来的一堆,就是FTP里上传的所有文件了
OK,这会儿要导出数据库
输入
mysqldump -u bigcat -p bigcat_db > ooxx.sql
回车输入数据库密码
如没啥提示就是导出成功了
ls -la
一下应该能看到多出来的 ooxx.sql 文件,即我们导出的数据库
接下去我们要打包
输入
tar -czf ooxx.tar.gz * .[!.]*
如果你没有.开头的文件例如 .htaccess
可能会提示
tar: .[!]*: Cannot stat: No such file or directory
不用管就是
这会儿
ls -la
一下应该可以找到 ooxx.tar.gz 这个压缩包了
老服务器就到此为止了
接下去登录新服务器
新建一个ssh链接
用新服务器的SSH帐号登录
登录后
cd public_html
切换目录从用户home目录到网站根目录
获取老服务器的文件
wget http://bigc.at/ooxx.tar.gz
会有个拉轰的文本进度条,速度一般都是MB/s
解压缩
tar -xzf ooxx.tar.gz
导入数据库
mysql -u bigcat -p bigcat_db < ooxx.sql
注意:是新服务器的数据库信息,没有的话去 CPanel 里新建一个
没啥提示就是成功了
再注意:如果新老数据库信息不一致,需要更新 wp-config.php
尾声
安全问题,请删除导出的数据库文件 ooxx.sql 和 ooxx.tar.gz
删除是 rm 文件名
例如
rm ooxx*
因为 wp-config.php 里的密码是明文的
提醒:这种明文密码建议千万别和自己其他密码一样
一般这会儿就可以去域名商网站更改 A Record 为新服务器的 IP,等生效后即可
不一般的同学会先配 HOST 看看,确保没问题了再改域名IP
那 HOST 是个什么东西我就下次写了
有啥看不懂的请留言,我更新
搬家 DIY 的好处是一来速度快,二来命令行耍帅
文中涉及一些命令可以参考 SSH 入门教程(常用命令)

详见 http://baike.baidu.com/view/845114.html
简单的说我这么配置,就可以让192.168.1.100 – 192.168.1.110 范围内的每个IP最多获取5000Kbps的速度,但至少保证2000Kbps
隔壁的良子哥是程序员,在一次故障排除中指出:
Kbps不是KB/s
杯了个具,详见http://baike.baidu.com/view/264769.htm
可见8Kbps == 1KB/s
大写K代表1024 小写k代表1000
大写B == 8小写b
TP Link 的IP QoS里单位是Kbps,所以我们所说的100KB/s就需要设置800Kbps


