<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kangzj &#187; php</title>
	<atom:link href="http://kangzj.net/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://kangzj.net</link>
	<description>记录技术和生活~</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:54:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP中的拷贝</title>
		<link>http://kangzj.net/php-copy/</link>
		<comments>http://kangzj.net/php-copy/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 09:47:03 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[对象]]></category>
		<category><![CDATA[拷贝]]></category>
		<category><![CDATA[类]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1907</guid>
		<description><![CDATA[对象用等号赋值，只是引用，是浅拷贝，除非使用clone关键字。

而基本类型，int、float、string三种类型都是复制。

下面代码可以说明：

<span class="readmore"><a href="http://kangzj.net/php-copy/" title="PHP中的拷贝">阅读全文——共163字</a></span>]]></description>
			<content:encoded><![CDATA[<p>对象用等号赋值，只是引用，是浅拷贝，除非使用<em>clone</em>关键字。</p>
<p>而基本类型，int、float、string三种类型都是复制。</p>
<p>下面代码可以说明：<span id="more-1907"></span></p>
<pre>n = 2;

echo 'a=' . $a-&gt;n . "\n";
echo 'b=' . $b-&gt;n;

$c = '11a';
$d = $c;
$c = '22b';

echo 'c=' . $c . "\n";
echo 'd=' . $d;</pre>
<p style='text-align:left'>&copy; 2012, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2012. |
<a href="http://kangzj.net/php-copy/">http://kangzj.net/php-copy/</a> |
<a href="http://kangzj.net/php-copy/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/php-copy/&title=PHP中的拷贝">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/%e5%af%b9%e8%b1%a1/" rel="tag">对象</a>, <a href="http://kangzj.net/tag/%e6%8b%b7%e8%b4%9d/" rel="tag">拷贝</a>, <a href="http://kangzj.net/tag/%e7%b1%bb/" rel="tag">类</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/php-copy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: empty(), is_null(), isset()真值表(区别)</title>
		<link>http://kangzj.net/php-empty-is_null-isset-true-false/</link>
		<comments>http://kangzj.net/php-empty-is_null-isset-true-false/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 01:53:53 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[网站制作]]></category>
		<category><![CDATA[empty]]></category>
		<category><![CDATA[isset]]></category>
		<category><![CDATA[is_null]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1767</guid>
		<description><![CDATA[原来很迷茫，只是在用，也没有出过问题，有时间了，就找了下资料学习了下。记录一下。

原文：http://www.blueshoes.org/en/developer/php_cheat_sheet/

&#169; 2010, kangzj. 版权所有.  

<span class="readmore"><a href="http://kangzj.net/php-empty-is_null-isset-true-false/" title="PHP: empty(), is_null(), isset()真值表(区别)">阅读全文——共97字</a></span>]]></description>
			<content:encoded><![CDATA[<p>原来很迷茫，只是在用，也没有出过问题，有时间了，就找了下资料学习了下。记录一下。</p>
<p><a href="http://kangzj.net/wp-content/uploads/2010/10/1286606098_38.jpg"><img class="aligncenter size-full wp-image-1768" title="真值表" src="http://kangzj.net/wp-content/uploads/2010/10/1286606098_38.jpg" alt="" width="408" height="460" /></a>原文：<a href="http://www.blueshoes.org/en/developer/php_cheat_sheet/" target="_blank">http://www.blueshoes.org/en/developer/php_cheat_sheet/</a></p>
<p style='text-align:left'>&copy; 2010, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2010. |
<a href="http://kangzj.net/php-empty-is_null-isset-true-false/">http://kangzj.net/php-empty-is_null-isset-true-false/</a> |
<a href="http://kangzj.net/php-empty-is_null-isset-true-false/#comments">7 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/php-empty-is_null-isset-true-false/&title=PHP: empty(), is_null(), isset()真值表(区别)">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/empty/" rel="tag">empty</a>, <a href="http://kangzj.net/tag/isset/" rel="tag">isset</a>, <a href="http://kangzj.net/tag/is_null/" rel="tag">is_null</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/php-empty-is_null-isset-true-false/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>计算php运行时间（毫秒数）</title>
		<link>http://kangzj.net/how-to-caculate-php-script-run-time/</link>
		<comments>http://kangzj.net/how-to-caculate-php-script-run-time/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 02:37:48 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[运行时间]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1755</guid>
		<description><![CDATA[非常简单，记录一下：

$t1 = explode(' ', microtime());



<span class="readmore"><a href="http://kangzj.net/how-to-caculate-php-script-run-time/" title="计算php运行时间（毫秒数）">阅读全文——共126字</a></span>]]></description>
			<content:encoded><![CDATA[<p>非常简单，记录一下：</p>
<pre lang="php">$t1 = explode(' ', microtime());

//php script here

$t2 = explode(' ', microtime());
echo ($t2[1]-$t1[1]).'s'.($t2[0]-$t1[0]).'ms';</pre>
<p style='text-align:left'>&copy; 2010, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2010. |
<a href="http://kangzj.net/how-to-caculate-php-script-run-time/">http://kangzj.net/how-to-caculate-php-script-run-time/</a> |
<a href="http://kangzj.net/how-to-caculate-php-script-run-time/#comments">23 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/how-to-caculate-php-script-run-time/&title=计算php运行时间（毫秒数）">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/%e8%bf%90%e8%a1%8c%e6%97%b6%e9%97%b4/" rel="tag">运行时间</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/how-to-caculate-php-script-run-time/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Linux中文件和目录的权限问题</title>
		<link>http://kangzj.net/access-right-of-folder-and-files-in-linux/</link>
		<comments>http://kangzj.net/access-right-of-folder-and-files-in-linux/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 07:50:36 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[服务器OS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[文件]]></category>
		<category><![CDATA[权限]]></category>
		<category><![CDATA[目录]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1445</guid>
		<description><![CDATA[最近搞了几个VPS玩，VPS一般来说内存都不多，配置轻量级的Nginx+PHP，折腾当中权限问题搞了半天]]></description>
			<content:encoded><![CDATA[<p>最近搞了几个VPS玩，VPS一般来说内存都不多，配置轻量级的Nginx+PHP，折腾当中权限问题搞了半天。</p>
<p>大家都知道，Linux中文件和目录都有自己的权限，分为rwx三种，分别代表读、写、执行的权限。但是目录和文件又不一样，不能被写和执行，文件rwx三种权限与目录的对比如下：</p>
<table border="0" cellspacing="0" cellpadding="2" width="447">
<tbody>
<tr>
<td width="133" valign="top">权限</td>
<td width="43" valign="top">文件</td>
<td width="269" valign="top">目录</td>
</tr>
<tr>
<td width="133" valign="top">r</td>
<td width="43" valign="top">读</td>
<td width="269" valign="top">可以列表该目录中的文件</td>
</tr>
<tr>
<td width="133" valign="top">w</td>
<td width="43" valign="top">写</td>
<td width="269" valign="top">可以在该目录中创建或者删除文件</td>
</tr>
<tr>
<td width="133" valign="top">x</td>
<td width="43" valign="top">执行</td>
<td width="269" valign="top">可以搜索或者进入该目录</td>
</tr>
</tbody>
</table>
<p>现在很多的博客代码都提供在线安装插件或者升级等方便的功能，但是如果权限设置的不正确就无法使用，比如《<a href="http://kangzj.net/wordpress-link-info-required-to-proceed-your-request/">WordPress“执行请求操作，连接信息必需提供”解决方法</a>》中提到就是这样的问题。</p>
<p><span id="more-1445"></span>我们假设目录的所有者为kk，执行fastcgi的用户为www-data，</p>
<p>www-data不能正常操作（创建和删除）文件是这种现象的根本原因。但是以上文中用的方法，把所有文件的所有都更改为www-data可以解决，但是并不完美，因为文件真正的所有者kk就不能正常操作文件了。</p>
<p>现在想了一个解决方法：</p>
<p>首先把www-data这个用户加入kk组，然后把所有文件及文件夹的属性设置为770，理论上应该可以啊，但是就没有实验成功。正在接着折腾，就不信了。折腾完之后向大家汇报。有明白我加我GT告诉我下哈：kangzj#kangzj.net。</p>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/access-right-of-folder-and-files-in-linux/">http://kangzj.net/access-right-of-folder-and-files-in-linux/</a> |
<a href="http://kangzj.net/access-right-of-folder-and-files-in-linux/#comments">36 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/access-right-of-folder-and-files-in-linux/&title=Linux中文件和目录的权限问题">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/linux/" rel="tag">linux</a>, <a href="http://kangzj.net/tag/nginx/" rel="tag">nginx</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/shell/" rel="tag">shell</a>, <a href="http://kangzj.net/tag/vps/" rel="tag">vps</a>, <a href="http://kangzj.net/tag/%e6%96%87%e4%bb%b6/" rel="tag">文件</a>, <a href="http://kangzj.net/tag/%e6%9d%83%e9%99%90/" rel="tag">权限</a>, <a href="http://kangzj.net/tag/%e7%9b%ae%e5%bd%95/" rel="tag">目录</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/access-right-of-folder-and-files-in-linux/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>如何开启Gzip压缩</title>
		<link>http://kangzj.net/how-to-enable-gzip-for-ur-website/</link>
		<comments>http://kangzj.net/how-to-enable-gzip-for-ur-website/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 06:09:20 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[独立博客]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cpanel]]></category>
		<category><![CDATA[direct admin]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[GZIP Output]]></category>
		<category><![CDATA[gzippy]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[加速]]></category>
		<category><![CDATA[压缩]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1206</guid>
		<description><![CDATA[开启服务器Gzip可以节省带宽、加快网页的加载速度，介绍三种开启Gzip的方法，加速你的网站！]]></description>
			<content:encoded><![CDATA[<p>Gzip压缩效率非常高，通常可以达到70%的压缩率，也就是说，如果你的网页有30K，压缩之后就变成了9K左右，好处有二：</p>
<ul>
<li>可以节省带宽资源；</li>
<li><a href="http://kangzj.net/to-accelerate-wordpress-on-html-level/" target="_self">加快加载速度</a>。</li>
</ul>
<p>节省带宽这个对大多数人来说没什么，加快你网页的加载速度确是普适的。前面看到许多朋友都在介绍如何开启Gzip，但是个人感觉方法不甚全，听我给大家道来：</p>
<p>方法大概有三：在Contol Pannel开启Gzip、开启http服务器Gzip、利用php本身的Gzip。</p>
<h3>1. 在Contol Panel开启Gzip</h3>
<h4>1.1 CPanel中开启Gzip</h4>
<p>在“SoftWare and Services”那一栏中“Optimize Website”：</p>
<p><img class="alignnone" title="Optimize Website" src="http://kangzj.net/wp-content/uploads/images/200910/opt-web.jpg" alt="" width="502" height="106" /></p>
<p><span id="more-1206"></span></p>
<p><img class="alignnone" title="Compress Content" src="http://kangzj.net/wp-content/uploads/images/200910/com-con.jpg" alt="" width="445" height="88" /></p>
<p>默认情况只压缩框中的三种<a href="http://kangzj.net/iis6-mime/" target="_self">MIME类型</a>，我们选择成Compress all content的话，css和js就也可以被压缩了。当然控制面板的Gzip压缩是基于服务器的，控制面板只不过提供一个友好的接口而已，如果你的技术盲，用控制面板开启Gzip是最好的方法了。</p>
<h4>1.2 Direct Admin中开启Gzip</h4>
<p>DA在面板中MS没有Gzip压缩的选项，不过可以在.htaccess中开启，打开.htaccess，添加下列的行：</p>
<pre lang="shell">    SetOutputFilter DEFLATE
    AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript</pre>
<p>这样过瘾了，不但php,html,js,css等开启了压缩，连图片都开启了Gzip压缩。</p>
<h3>2. 开启http服务器Gzip</h3>
<p>只玩过Apache和Nginx，所以只介绍这两种服务器开启Gzip压缩的方法：</p>
<h4>1.1 Apache开启Gzip</h4>
<p>需要加载deflate模块，如果开启了AllowOverride All的话，可以直接按照在DA中修改.htaccess的方式来开启Gzip压缩。如果没有开启的话，就需要直接写在httpd.conf里面了，不多讲了。</p>
<h4>1.2 Nginx开启Gzip</h4>
<p>Nginx默认是开启Gzip的，但是他只压缩有限的几种类型，需要我们增加几种，打开nginx.conf，找到下面的行，并修改（没有的请添加）：</p>
<pre lang="shell">    # output compression saves bandwidth
    gzip              on;
    gzip_proxied      any;
    gzip_http_version 1.1;
    gzip_min_length   1100;
    gzip_comp_level   5;
    gzip_buffers      8 16k;
    gzip_types        text/plain text/xml text/css application/x-javascript application/xml application/xml+rss text/javascript application/atom+xml;
    gzip_vary        on;
    #gzip_disable     "MSIE [1-6]\.";</pre>
<p>gzip_com_level不需要设置成很高，3即可，5的话太耗CPU资源，压缩的效果也不会有什么大的上升。至于比较，大家可以在<a href="http://www.gidnetwork.com/tools/gzip-test.php">Gzip 检测页面</a>查看各个压缩级别的压缩率，便于选择。</p>
<h3>3. 利用php本身的Gzip</h3>
<p>这个并不提倡，因为php的效率比服务器端的压缩还是有很大差距的，但是如果服务器不支持Gzip压缩的话，就只能用这种方法来开启Gzip。</p>
<h4>1.1 对于WordPress可以安装Gzip相关插件</h4>
<p>比如wp super cache中就有Gzip压缩的功能。也有专门的Gzip压缩插件，比如：Gzippy、GZIP Output等。</p>
<h4>1.2 修改WordPress源码，增加Gzip功能</h4>
<p>不推荐，因为每次升级之后还要再修改一次，很麻烦，不做介绍。想做的话可以参考万戈：<a href="http://www.life-studio.cn/turn-on-gzip-speed-up-wordpress.html" target="_blank">开启GZIP，提速Wordpress</a>。</p>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/how-to-enable-gzip-for-ur-website/">http://kangzj.net/how-to-enable-gzip-for-ur-website/</a> |
<a href="http://kangzj.net/how-to-enable-gzip-for-ur-website/#comments">61 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/how-to-enable-gzip-for-ur-website/&title=如何开启Gzip压缩">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/apache/" rel="tag">apache</a>, <a href="http://kangzj.net/tag/cpanel/" rel="tag">cpanel</a>, <a href="http://kangzj.net/tag/direct-admin/" rel="tag">direct admin</a>, <a href="http://kangzj.net/tag/gzip/" rel="tag">gzip</a>, <a href="http://kangzj.net/tag/gzip-output/" rel="tag">GZIP Output</a>, <a href="http://kangzj.net/tag/gzippy/" rel="tag">gzippy</a>, <a href="http://kangzj.net/tag/htaccess/" rel="tag">htaccess</a>, <a href="http://kangzj.net/tag/http/" rel="tag">http</a>, <a href="http://kangzj.net/tag/nginx/" rel="tag">nginx</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://kangzj.net/tag/%e5%8a%a0%e9%80%9f/" rel="tag">加速</a>, <a href="http://kangzj.net/tag/%e5%8e%8b%e7%bc%a9/" rel="tag">压缩</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/how-to-enable-gzip-for-ur-website/feed/</wfw:commentRss>
		<slash:comments>61</slash:comments>
		</item>
		<item>
		<title>64M内存的VPS能干点什么？</title>
		<link>http://kangzj.net/what-can-a-64m-vps-do/</link>
		<comments>http://kangzj.net/what-can-a-64m-vps-do/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 16:58:46 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[服务器OS]]></category>
		<category><![CDATA[64M]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[OpenVZ]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-cgi]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[swap]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[wo]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[反向代理]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1196</guid>
		<description><![CDATA[64M内存的VPS能干的事情比你想象的多得多，在上篇日志中送了ssh账号，加上本篇日志中介绍的几个应用，现在这个VPS算是物尽其用了。]]></description>
			<content:encoded><![CDATA[<h3>1. VPS相关参数</h3>
<p>买的是HostingInside的VPS，参数：</p>
<ol>
<li>台湾人办的；</li>
<li>服务器位于Fullerton, LA，美国西岸，国内速度不错，HE的网络；</li>
<li>一个ipv4地址，两个ipv6地址（这是我看上它的重要原因）；</li>
<li>基于OpenVZ，64M内存，300MCPU，无Burst，不支持swap；</li>
</ol>
<h3>2.  配置Nginx+php跑WordPress</h3>
<p>10.21中午11点半买的，一个多小时之后开通，然后紧接着<em>该服务器所在机房网络出现故障，服务器离线2小时-__-</em>。安装了debian5，占资源少得让你吃惊：</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://kangzj.net/wp-content/uploads/images/200910/free.jpg" alt="" width="518" height="77" /></p>
<p>按照<a href="http://www.vpsee.com/2009/06/64mb-vps-optimize-debian5/" target="_blank">vpsee的方法</a>换了几个软件，裸系统只占不到10M的内存，比起Windows那个吃内存的劲，让人暗爽。</p>
<p><span id="more-1196"></span>由于只有64M内存，又没有交换区，所以用它来跑LNMP不太可能，更加不要说LAMP。只安装了Nginx, fastcgi方式php，跟<a href="http://www.jiucool.com/" target="_blank">JiuCool同学</a>借用了个数据库，试验跑WordPress。</p>
<p>启动php-cgi过程中显示内存不足，不过好在启动起来三个php-cgi的进程。这个时候还是不能跑WordPress，会out of memory，于是kill掉三个php-cgi，只剩下一个，空出不少内存，OK，WordPress跑得还挺快，估计一天10, 000个PV应该都不在话下，如果开启wp super cache的话，负载能力便更会有质的提高。</p>
<h3>3. IPv4/v6地址物尽其用</h3>
<p>然而，太不实在，万一这个php-cgi死掉，我的博客也就玩完了。所以博客没有放在该VPS上，但是独立IP可不能浪费，偶就做了最擅长的<a href="http://kangzj.net/tag/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/" target="_blank">反向代理</a>，呵呵~~</p>
<p>然后IPv6地址也不能浪费，一个给<a href="http://kangzj.net/" target="_blank">博客</a>，另一个就做一个<a href="http://proxy.kangzj.net/" target="_blank">IPv6在线代理</a>给教育网同学们用。</p>
<p>既然不做WordPress主机，那么php的mysql模块、gd模块便都没有用了，于是给remove掉了。</p>
<p>重新启动php-cgi，奇迹发生了，<strong>原先一个php-cgi进程要占掉20M+内存，现在一个进程只占2M内存</strong>！于是乎启动了四个php-cgi，还剩几十M内存，哇哈哈~~应该可以正常运行了:-D</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://kangzj.net/wp-content/uploads/images/200910/now.jpg" alt="" width="530" height="350" /></p>
<h3>4. 结语</h3>
<p>在上篇日志中送了ssh账号，加上本篇日志中介绍的几个应用，现在这个VPS算是物尽其用了，值了，呵呵呵呵:-)</p>
<p>64M内存的VPS其实可以干很多事情的，不是吗？</p>
<p>最后提醒下要买VPS的同志们，一定注意虚拟技术，如果是OpenVZ的，不支持swap，但是最好有burst内存，否则就像我这个，只要内存超过64M就会内存错误，啥也干不成了。基于Xen的可以设置swap，更方便些。</p>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/what-can-a-64m-vps-do/">http://kangzj.net/what-can-a-64m-vps-do/</a> |
<a href="http://kangzj.net/what-can-a-64m-vps-do/#comments">88 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/what-can-a-64m-vps-do/&title=64M内存的VPS能干点什么？">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/64m/" rel="tag">64M</a>, <a href="http://kangzj.net/tag/debian/" rel="tag">debian</a>, <a href="http://kangzj.net/tag/fastcgi/" rel="tag">fastcgi</a>, <a href="http://kangzj.net/tag/ipv6/" rel="tag">ipv6</a>, <a href="http://kangzj.net/tag/nginx/" rel="tag">nginx</a>, <a href="http://kangzj.net/tag/openvz/" rel="tag">OpenVZ</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/php-cgi/" rel="tag">php-cgi</a>, <a href="http://kangzj.net/tag/proxy/" rel="tag">proxy</a>, <a href="http://kangzj.net/tag/ssh/" rel="tag">ssh</a>, <a href="http://kangzj.net/tag/swap/" rel="tag">swap</a>, <a href="http://kangzj.net/tag/vps/" rel="tag">vps</a>, <a href="http://kangzj.net/tag/wo/" rel="tag">wo</a>, <a href="http://kangzj.net/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://kangzj.net/tag/%e5%8f%8d%e5%90%91%e4%bb%a3%e7%90%86/" rel="tag">反向代理</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/what-can-a-64m-vps-do/feed/</wfw:commentRss>
		<slash:comments>88</slash:comments>
		</item>
		<item>
		<title>Ubuntu Server覆盖安装Nginx并配置Etags &amp; Expires</title>
		<link>http://kangzj.net/setup-nginx-with-etags-and-expires-on-ubuntu-server/</link>
		<comments>http://kangzj.net/setup-nginx-with-etags-and-expires-on-ubuntu-server/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 19:30:14 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[服务器OS]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Etags]]></category>
		<category><![CDATA[expires]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[加速]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1128</guid>
		<description><![CDATA[介绍Ubuntu Server下从源码覆盖安装Nginx的方法，并介绍如何配置Etags和Expires以提高网站加载速度。]]></description>
			<content:encoded><![CDATA[<p><a href="http://kangzj.net/wp-content/uploads/images/200910/fa2c2ceb7808_122F5/image_3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" src="http://kangzj.net/wp-content/uploads/images/200910/fa2c2ceb7808_122F5/image_thumb_3.png" border="0" alt="image" width="67" height="61" align="right" /></a> Ubuntu是基于Debian的，继承了Debian的优良特性，apt就是其一。每次要装软件直接apt-get install解决问题，非常方便。但是源里的软件相对比较过时，并且缺乏定制性（比如软件的小插件等）。</p>
<p>Ubuntu 9.04里带的Nginx是0.6.32版，据Jiucool情报讲，有漏洞。当时就想编译安装一个，但是苦于缺少一些库又没时间一一添加而没有安装。今天Ubuntu源里的Nginx更新到了0.6.35，修正了Bug，偶直接给Upgrade了一下。</p>
<p>这两天又折腾加速，YSlow评级要想到A的话，须让Nginx给静态元素加Etags，需要加个插件。加插件的话就要重新编译Nginx，干脆一不做二不休，干掉现在的0.6，搞个0.7.62玩。</p>
<p>最方便就是覆盖掉现在的老版本的Nginx，服务那些脚本就都不用重写直接可以用了。<span id="more-1128"></span></p>
<h3>1. 首先覆盖安装Nginx (部分操作需要sudo)</h3>
<h4>(1) 安装编译需要的各种库（有些可能多余，最后可以autoremove）。</h4>
<pre lang="bash">apt-get install gcc libjpeg62-dev libjpeg62 libpng12-0 libpng12-dev libfreetype6 libfreetype6-dev libxml2 libxml2-dev zlib1g zlib1g-dev libglib2.0-0 libglib2.0-dev libbz2-1.0 libbz2-dev libncurses5 libncursesw5-dev libpcre3 libpcre3-dev libmhash-dev git-core</pre>
<h4>(2) 安装带Etags模块的Nginx，并把Nginx所有的配置设置成现在机器上老Nginx的配置。</h4>
<pre lang="bash">curl -O http://sysoev.ru/nginx/nginx-0.7.62.tar.gz

tar -zxvf ./nginx-0.7.62.tar.gz

git clone git://github.com/mikewest/nginx-static-etags.git ./nginx-static-etags

cd nginx-0.7.62/

./configure --add-module=../nginx-static-etags --prefix=/usr --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --user=www-data --group=www-data --with-http_stub_status_module --with-http_ssl_module --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi

make

make install</pre>
<p>效果：</p>
<pre lang="bash">  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"</pre>
<h3>2. 然后配置Nginx以打开Etags和Expires</h3>
<p>下面是一个server的一部分，把所有的静态元素加了Etags属性和Expires的时间。</p>
<pre lang="bash">location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|java|jar|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)$ {
      root /home/xq/kangzj.net/public_html/;
      FileETag on;
      expires 7d;
}</pre>
<p>于是咱的首页也达到YSlow的A等级了，除了CDN做不了，其它全部A，总分92！晒下：</p>
<p><a href="http://kangzj.net/wp-content/uploads/images/200910/fa2c2ceb7808_122F5/image.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" src="http://kangzj.net/wp-content/uploads/images/200910/fa2c2ceb7808_122F5/image_thumb.png" border="0" alt="image" width="575" height="68" /></a></p>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/setup-nginx-with-etags-and-expires-on-ubuntu-server/">http://kangzj.net/setup-nginx-with-etags-and-expires-on-ubuntu-server/</a> |
<a href="http://kangzj.net/setup-nginx-with-etags-and-expires-on-ubuntu-server/#comments">11 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/setup-nginx-with-etags-and-expires-on-ubuntu-server/&title=Ubuntu Server覆盖安装Nginx并配置Etags &#038; Expires">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/bash/" rel="tag">bash</a>, <a href="http://kangzj.net/tag/debian/" rel="tag">debian</a>, <a href="http://kangzj.net/tag/etags/" rel="tag">Etags</a>, <a href="http://kangzj.net/tag/expires/" rel="tag">expires</a>, <a href="http://kangzj.net/tag/nginx/" rel="tag">nginx</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/ubuntu/" rel="tag">ubuntu</a>, <a href="http://kangzj.net/tag/%e5%8a%a0%e9%80%9f/" rel="tag">加速</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/setup-nginx-with-etags-and-expires-on-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>对朋友隐藏广告-Ozh&#8217; Who Sees Ads</title>
		<link>http://kangzj.net/ozh-who-sees-ads-hide-ads-for-friends/</link>
		<comments>http://kangzj.net/ozh-who-sees-ads-hide-ads-for-friends/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 02:18:12 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[独立博客]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google adsense]]></category>
		<category><![CDATA[Ozh' Who Sees Ads]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1117</guid>
		<description><![CDATA[介绍一个对常来的朋友隐藏广告插件Ozh' Who Sees Ads的规则设置和调用方法，可以提高广告单价，增加广告收入。]]></description>
			<content:encoded><![CDATA[<p>为什么要对朋友隐藏广告呢：</p>
<p><strong>第一，减少展示次数，提高广告单价</strong>。常来的访客一般来说是不会点击广告的，他们对广告已经熟视无睹，过多的展示会降低每次点击的单价，对朋友隐藏广告有现实的必要性。<br />
<strong>第二，界面对常来的朋友更加友好。</strong>方便博友交流，去除广告的干扰，界面更清爽。</p>
<ul></ul>
<p>下面主角登场了，这款插件叫做：<strong>Ozh&#8217; Who Sees Ads</strong>。</p>
<p>怎样安装就不介绍了，下面介绍下它的使用。</p>
<p><span id="more-1117"></span></p>
<p><a href="http://kangzj.net/wp-content/uploads/images/200909/2a70a33b4e30_142A1/whoseeads.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="who-see-ads" src="http://kangzj.net/wp-content/uploads/images/200909/2a70a33b4e30_142A1/whoseeads_thumb.jpg" border="0" alt="who-see-ads" width="283" height="240" /></a> 可以设置多种规则来控制广告的显示包括：</p>
<ol>
<li>对搜索引擎来的访客是否显示广告</li>
<li>经常来的用户是否显示广告</li>
<li>发布超过多长时间的文章显示广告</li>
<li>是否对已登录用户显示广告</li>
<li>……</li>
</ol>
<p>各个规则可以调整顺序，“Who Sees Ads”从第一条规则开始匹配，找到匹配就执行相应策略。下面是我的显示广告的规则：</p>
<p><a href="http://kangzj.net/wp-content/uploads/images/200909/2a70a33b4e30_142A1/mywhoseesadsrules.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="my-who-sees-ads-rules" src="http://kangzj.net/wp-content/uploads/images/200909/2a70a33b4e30_142A1/mywhoseesadsrules_thumb.jpg" border="0" alt="my-who-sees-ads-rules" width="298" height="86" /></a> 效果是：</p>
<blockquote><p><strong>如果是从搜索引擎来的一定显示，如果是“常来用户”那么不显示，其它情况全部显示。</strong></p></blockquote>
<p>规则设置完毕之后，可以用下面的代码调用（postAd是广告的名称）：</p>
<p>在模板调用：<tt>&lt;?php wp_ozh_wsa("postAd");?&gt;</tt></p>
<p><tt>在编辑器调用：</tt><tt>&lt;!--wsa:postAd--&gt;</tt></p>
<p>设置界面下方还有其它设置，比如定义“常来朋友”和“点击保护”；</p>
<ul>
<li>“常来朋友”：定义在m天之内有m个PV以上的为“常来朋友”；</li>
<li>“点击保护”：为登录用户保护广告不被误点击以防止违反Google的协议。</li>
</ul>
<p><em>我这几个名词翻译的真烂。</em></p>
<p><span style="color: #800000;"> PS：</span>如果安装了页面静态化的插件，这个插件会失去作用。折中的考虑可以把DB Cache+Widget Cache配合使用，既可以加速，这个插件也不会失效，我的博客现在就是这样的。</p>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/ozh-who-sees-ads-hide-ads-for-friends/">http://kangzj.net/ozh-who-sees-ads-hide-ads-for-friends/</a> |
<a href="http://kangzj.net/ozh-who-sees-ads-hide-ads-for-friends/#comments">53 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/ozh-who-sees-ads-hide-ads-for-friends/&title=对朋友隐藏广告-Ozh&#8217; Who Sees Ads">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/google/" rel="tag">google</a>, <a href="http://kangzj.net/tag/google-adsense/" rel="tag">google adsense</a>, <a href="http://kangzj.net/tag/ozh-who-sees-ads/" rel="tag">Ozh' Who Sees Ads</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://kangzj.net/tag/%e6%8f%92%e4%bb%b6/" rel="tag">插件</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/ozh-who-sees-ads-hide-ads-for-friends/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>加速WordPress</title>
		<link>http://kangzj.net/methods-to-accelerate-wordpress/</link>
		<comments>http://kangzj.net/methods-to-accelerate-wordpress/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 06:22:15 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[乱七八糟]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[加速]]></category>
		<category><![CDATA[提速]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[浏览器]]></category>
		<category><![CDATA[静态]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1084</guid>
		<description><![CDATA[我将加速的方法依加速的方式分成以下几类：php代码层次加速，html代码层次加速，服务器层次加速几部分，让你的WordPress飞起来！]]></description>
			<content:encoded><![CDATA[<p>走动挺多的博友中有几个加速癖，以<a href="http://www.life-studio.cn/" target="_blank">万戈</a>、<a href="http://immmmm.com/" target="_blank">林木木</a>为首的几个家伙更是加速狂人，我要是不加加速岂不是太out了。于是乎，咱做起了科研，写了这篇文章。</p>
<p>用户网页加载时间分为三部分：</p>
<blockquote><p>网页执行时间+页面及页面元素加载时间+浏览器渲染网页时间</p></blockquote>
<p>针对这三部分时间，我将加速的方法依加速的方式分成以下几类：<a href="http://kangzj.net/to-accelerate-wordpress-on-php-level/" target="_blank">php代码层次加速</a>，<a href="http://kangzj.net/to-accelerate-wordpress-on-html-level/" target="_blank">html代码层次加速</a>，<a href="http://kangzj.net/to-accelerate-wordpress-on-server-level/" target="_blank">服务器层次加速 </a>，鼓励你的用户放弃IE <img src='http://kangzj.net/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> </p>
<p><span id="more-1084"></span></p>
<h3>1. <a href="http://kangzj.net/to-accelerate-wordpress-on-php-level" target="_blank">php代码层次加速WordPress</a></h3>
<p>所谓“php代码层次”是指php执行效率，执行查询数量层次上的优化。我将方法归纳了几点：</p>
<ol>
<li>控制插件数量</li>
<li>使用缓存插件
<ol>
<li>数据库查询缓存：DB Cache</li>
<li>静态页面缓存：WP Super Cache / Cos Html Cache</li>
<li>部分页面缓存：WP Widget Cache</li>
</ol>
</li>
<li>优化主题</li>
<li>启用Gzip压缩</li>
</ol>
<h3>2. <a href="http://kangzj.net/to-accelerate-wordpress-on-html-level/" target="_blank">html代码层次加速WordPress</a></h3>
<p>相比php代码层次加速WordPress，html层次上的优化更加重要一些。因为现在的服务器配置都很牛，php执行效率也很高，除非你的WordPress插件多得太离谱，在速度上一般是不会有太多大的影响的（基本上1m以内可以执行完）。而html代码决定了WordPress加载的速度，浏览你博客的速度在很大程度上是这个因素决定的（在同样的网络环境下），用户加载网页的时间有80%花在这上面。要想你的WordPress飞速跑起来，html层次的优化是非常必要的。</p>
<ol>
<li>Make Fewer HTTP Requests &#8211; 减少HTTP请求的数量 ※</li>
<li>Compress Components With Gzip &#8211; 用Gzip压缩网页 ※</li>
<li>Put CSS at Top &amp; Put Js at Bottom &#8211; 把CSS放在开头，把JS放在结尾 ※</li>
<li>Avoid CSS Expressions &#8211; CSS中不要使用表达式</li>
<li>Make CSS and JS External &#8211; 不要把CSS和js直接写入网页中，应加载外部</li>
<li>Reduce DNS Lookups &#8211; 减少DNS查询的数量 ※</li>
<li>Minify Javascript and CSS &#8211; 去除JS和CSS中的冗余</li>
<li>Avoid URL Redirecting &#8211; 减少重定向</li>
<li>Used Cookie Free Domains  &#8211; 用不会传递Cookie的域名 ※</li>
<li>外挂部分元素 ※</li>
</ol>
<h3>3. <a href="http://kangzj.net/to-accelerate-wordpress-on-server-level/" target="_blank">服务器层次加速WordPress</a></h3>
<p>部分博友有自己的服务器或者VPS，这一部分是针对VPS或者独立服务器的。</p>
<ol>
<li>使用轻量级、高性能的Nginx</li>
<li>PHP字节码缓存组件apc</li>
<li>为网页静态元素设置过期时间（以Nginx为例）</li>
<li>header中增加Etags和Expires</li>
<li>其它负载均衡方法</li>
</ol>
<h3>4. 鼓励你的用户放弃IE，间接加速WordPress</h3>
<p>鼓励他们使用FireFox、Opera、Chrome等高性能浏览器。 <img src='http://kangzj.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':grin:' class='wp-smiley' /> </p>
<p align="center"><span style="color: #800000;">你的WordPress飞起来没有？</span></p>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/methods-to-accelerate-wordpress/">http://kangzj.net/methods-to-accelerate-wordpress/</a> |
<a href="http://kangzj.net/methods-to-accelerate-wordpress/#comments">50 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/methods-to-accelerate-wordpress/&title=加速WordPress">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/html/" rel="tag">html</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://kangzj.net/tag/%e5%8a%a0%e9%80%9f/" rel="tag">加速</a>, <a href="http://kangzj.net/tag/%e6%8f%90%e9%80%9f/" rel="tag">提速</a>, <a href="http://kangzj.net/tag/%e6%9c%8d%e5%8a%a1%e5%99%a8/" rel="tag">服务器</a>, <a href="http://kangzj.net/tag/%e6%b5%8f%e8%a7%88%e5%99%a8/" rel="tag">浏览器</a>, <a href="http://kangzj.net/tag/%e9%9d%99%e6%80%81/" rel="tag">静态</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/methods-to-accelerate-wordpress/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>php代码层次加速WordPress</title>
		<link>http://kangzj.net/to-accelerate-wordpress-on-php-level/</link>
		<comments>http://kangzj.net/to-accelerate-wordpress-on-php-level/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 06:21:45 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[独立博客]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[GZIP Output]]></category>
		<category><![CDATA[gzippy]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[主题]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://kangzj.net/?p=1083</guid>
		<description><![CDATA[所谓“php代码”是指php执行效率，执行查询数量上的优化。我将方法归纳了几点，加速你的WordPress!]]></description>
			<content:encoded><![CDATA[<p>所谓“php代码”是指php执行效率，执行查询数量上的优化。我将方法归纳以下几点：</p>
<h3>1. 控制插件数量</h3>
<p>做过插件的朋友都知道，插件是通过添加一系列的filer或者action来实现功能的。比如大家很熟悉的All in one SEO，每个页面加载title完之后便会调用它的代码以显示页面的描述、关键字等信息。如果插件很多的话，每次调用都会有很大一个调用列表，程序执行时间自然会变得较长。</p>
<p>所以，控制插件数量在加速WordPress上有很大的作用（当然缓存类的插件除外）。看看大家都在用什么插件：</p>
<ol>
<li>万戈：<a href="http://www.life-studio.cn/my-wordpress-plugins-show.html" target="_blank">《我的 WordPress 插件秀》</a></li>
<li>蓝冰：<a href="http://vvvvvv.us/567.html" target="_blank">《我正在使用中的WP插件》</a>，蓝冰说换了好多了，权当参考就得了</li>
<li>Kangzj：《Kangzj正在使用的插件们》coming soon&#8230;</li>
</ol>
<p>万戈同学属加速狂类型的，他的原则是能不用插件则不用插件。对于这一点我是部分认同的部分反对的，个人觉得对于用插件应该：</p>
<ul>
<li>能修改主题代码可以实现的，可以不用插件实现（优点是速度相对快，缺点是换主题相当不方便）；如果要修改核心代码者，绝对要用插件实现（否则以后升级WordPress那是相当的麻烦）。</li>
</ul>
<p><span id="more-1083"></span></p>
<h3>2. 使用缓存插件</h3>
<p>缓存插件有多种，按按照缓存内容的不同可以分为三类：数据库查询缓存、静态页面缓存、部分页面缓存。下面介绍几个典型的缓存插件，大家可以参考使用。</p>
<h4>2.1. 数据库查询缓存：DB Cache</h4>
<p>DB Cache缓存数据库查询到文件中，减少数据库查询以达到加速的目的。</p>
<h4>2.2. 静态页面缓存：WP Super Cache / cos html cache</h4>
<p>WP Super Cache：WP Cach和Super Cache结合的产物，页面缓存用得最多的应该就是这个插件了。功能强大，还提供gzip压缩。</p>
<p>Cos Html Cache：国人cosbeta作品，缓存页面以加速。</p>
<h4>2.3. 部分页面缓存：WP Widget Cache</h4>
<p>WP Widget Cache：仅缓存Widget内容，对于Widget占用大量资源的情况很有效。</p>
<p>同学们可能会问，已经有了强大的静态页面缓存，为什么还要有数据库查询缓存、Widget Cache等这样的缓存插件呢？其实答案很简单，有部分的插件必须在动态页面才可以执行，在静态页面缓存中发挥不了作用，这样的时候DB Cache和Widget Cache就能派上用场了。举个例子：Ozh&#8217; Who Sees Ads，这个插件根据来源不同决定是否显示广告，只对从搜索引擎来的一次性访客显示广告（既经常访问的用户隐藏烦人的广告，又可以减少展示次数以提高单价）。</p>
<h3>3. 优化主题</h3>
<p>主题中有大量的类似于</p>
<pre lang="php">&lt; ?php bloginfo('charset'); ?&gt;</pre>
<p>的代码，可以用直接用实际值来替换，以减少代码的量以提高速度。</p>
<h3>4. 启用Gzip压缩</h3>
<p>WordPress2.5以前内置Gzip功能，后来去除了。启用Gzip压缩可以大大减少传输数据量（通常压缩率可以达到70%以上）。</p>
<ol>
<li><strong><a href="http://louishan.com/">Louis Han</a></strong>：《<a href="http://louishan.com/articles/enable-gzip-compress-for-wordpress-2-8.html">WordPress 2.8开启Gzip压缩功能</a>》，不但页面可以gzip，css，js也可以。</li>
<li>可用插件：GZIP Output 、CSS Compress、WP Super Cache内置。</li>
</ol>
<p>设置完毕之后可以到<a href="http://www.gidnetwork.com/tools/gzip-test.php">Gzip 检测页面</a>进行检测，看设置是否成功。</p>
<h3>5. 看看加速效果</h3>
<p>打开主题底部模板footer.php，加入这几行：</p>
<pre lang="php">Processed in &lt; ?php timer_stop(1); ?&gt; second(s), &lt; ?php echo get_num_queries(); ?&gt; queries.</pre>
<p><span style="color: #800000;"><strong>便可以看到优化的结果了，<em>数据查询</em>和<em>处理时间</em>是不是都减少了不少呢？</strong></span></p>
<p><strong><span style="color: #800000;">做完了这些，你的WordPress是否有“<em>飞一样的感觉</em>”了呢？</span></strong></p>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/to-accelerate-wordpress-on-php-level/">http://kangzj.net/to-accelerate-wordpress-on-php-level/</a> |
<a href="http://kangzj.net/to-accelerate-wordpress-on-php-level/#comments">13 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/to-accelerate-wordpress-on-php-level/&title=php代码层次加速WordPress">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/gzip/" rel="tag">gzip</a>, <a href="http://kangzj.net/tag/gzip-output/" rel="tag">GZIP Output</a>, <a href="http://kangzj.net/tag/gzippy/" rel="tag">gzippy</a>, <a href="http://kangzj.net/tag/php/" rel="tag">php</a>, <a href="http://kangzj.net/tag/wordpress/" rel="tag">wordpress</a>, <a href="http://kangzj.net/tag/%e4%b8%bb%e9%a2%98/" rel="tag">主题</a>, <a href="http://kangzj.net/tag/%e6%8f%92%e4%bb%b6/" rel="tag">插件</a>, <a href="http://kangzj.net/tag/%e7%bc%93%e5%ad%98/" rel="tag">缓存</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/to-accelerate-wordpress-on-php-level/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

