<?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>思维 &#187; 优化</title>
	<atom:link href="http://blog.acmind.com/archives/tag/%e4%bc%98%e5%8c%96/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.acmind.com</link>
	<description>Acme of Mind</description>
	<lastBuildDate>Mon, 19 Apr 2010 02:23:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Super Cache Plus &#8211; 内存级的 Wordpress 缓存插件</title>
		<link>http://blog.acmind.com/archives/568</link>
		<comments>http://blog.acmind.com/archives/568#comments</comments>
		<pubDate>Mon, 01 Jun 2009 01:19:08 +0000</pubDate>
		<dc:creator>笑谈</dc:creator>
				<category><![CDATA[博建专区]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[内存]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[缓存]]></category>
		<category><![CDATA[super cache plus]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://blog.acmind.com/?p=568</guid>
		<description><![CDATA[不知从什么时候开始，就一直研究最佳的Wordpress缓存方案（可能是因为Wordpress本身弱，不加插件不行。都来插件多了，就慢了）。
后来，和Flygo在讨论中，提到了APC等PHP缓存。于是突发奇想：能不能把Wordpress的静态缓存放到内存里呢？？恰好在Google的时候。忽然发现了这款插件–Super Cache Plus。
简单介绍
Super Cache Plus的作者是Murmatron。是一个以WP Super Cache为基础进行改造的插件。主要特色是能够配合APC/Zend Cache/eAccelerator等PHP加速程序进行缓存。
为什么说Super Cache Plus快？
这个要从服务器层面说起。大家可能不知道，在服务器中，为什么APC这一类的“占内存”大户反而可以“加速”呢？其实，在服务器的运行中，一般的性能瓶颈都在于硬盘的速度，内存速度起码为硬盘速度的几百倍。在没有APC一类程序的情况下。每次运行一个PHP文件。都需要从硬盘中读取。大大影响了运行的速度。添加了APC一类程序之后。php编译后的版本可以常驻内存。需要的时候直接输出，又快又省事。
Super Cache Plus工作原理
Super Cache Plus的工作原理和WP Super Cache基本相同。如果你的服务器安装了eAccelerator/Memcached/APC/Xcache/Zend cache的话（可以使用PHPINFO查看）。就可以安装者个插件。当你正确设置之后（在插件的WP-Cache Storage Engine选择正确的缓存引擎）。它可以把你缓存的文件提交到内存里。当别人访问的时候，就直接访问内存的文件。而无须读取硬盘了。
特点

Super Cache Plus的特色有： 
非常智能的过期文件处理机制。完全无须人工干预。 
应该是目前唯一在Wordpress上能够进行内存缓存的插件。 
强大的功能和配置（你也可以理解为过于复杂） 

不过目前官方更新速度比较慢，最新是0.7.5.1版。但你也可以透过SVN获取最新的开发版。
&#160;
摘自：http://wpchina.org/wordpress-cache-plus-plugin-499/
]]></description>
			<content:encoded><![CDATA[<p>不知从什么时候开始，就一直研究最佳的<a href="http://l-wy.cn/tag/wordpress">Wordpress</a>缓存方案（可能是因为<a href="http://l-wy.cn/tag/wordpress">Wordpress</a>本身弱，不加插件不行。都来插件多了，就慢了）。</p>
<p>后来，和Flygo在讨论中，提到了APC等PHP缓存。于是突发奇想：能不能把<a href="http://l-wy.cn/tag/wordpress">Wordpress</a>的静态缓存放到内存里呢？？恰好在Google的时候。忽然发现了这款插件–Super Cache Plus。</p>
<h5>简单介绍</h5>
<p>Super Cache Plus的作者是<a href="http://murmatrons.armadillo.homeip.net">Murmatron</a>。是一个以WP Super Cache为基础进行改造的插件。主要特色是能够配合APC/Zend Cache/eAccelerator等PHP加速程序进行缓存。</p>
<h5>为什么说Super Cache Plus快？</h5>
<p>这个要从服务器层面说起。大家可能不知道，在服务器中，为什么APC这一类的“占内存”大户反而可以“加速”呢？其实，在服务器的运行中，一般的性能瓶颈都在于硬盘的速度，内存速度起码为硬盘速度的几百倍。在没有APC一类程序的情况下。每次运行一个PHP文件。都需要从硬盘中读取。大大影响了运行的速度。添加了APC一类程序之后。php编译后的版本可以常驻内存。需要的时候直接输出，又快又省事。</p>
<h5>Super Cache Plus工作原理</h5>
<p>Super Cache Plus的工作原理和WP Super Cache基本相同。如果你的服务器安装了eAccelerator/Memcached/APC/Xcache/Zend cache的话（可以使用PHPINFO查看）。就可以安装者个插件。当你正确设置之后（在插件的WP-Cache Storage Engine选择正确的缓存引擎）。它可以把你缓存的文件提交到内存里。当别人访问的时候，就直接访问内存的文件。而无须读取硬盘了。</p>
<h5>特点</h5>
<ul>
<li>Super Cache Plus的特色有： </li>
<li>非常智能的过期文件处理机制。完全无须人工干预。 </li>
<li>应该是目前唯一在<a href="http://l-wy.cn/tag/wordpress">Wordpress</a>上能够进行内存缓存的插件。 </li>
<li>强大的功能和配置（你也可以理解为过于复杂） </li>
</ul>
<p>不过目前官方更新速度比较慢，最新是0.7.5.1版。但你也可以透过SVN获取最新的开发版。</p>
<p>&#160;</p>
<p>摘自：<a title="http://wpchina.org/wordpress-cache-plus-plugin-499/" href="http://wpchina.org/wordpress-cache-plus-plugin-499/">http://wpchina.org/wordpress-cache-plus-plugin-499/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.acmind.com/archives/568/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Super Cache 安装指南</title>
		<link>http://blog.acmind.com/archives/567</link>
		<comments>http://blog.acmind.com/archives/567#comments</comments>
		<pubDate>Mon, 01 Jun 2009 01:13:00 +0000</pubDate>
		<dc:creator>笑谈</dc:creator>
				<category><![CDATA[博建专区]]></category>
		<category><![CDATA[安装]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[缓存]]></category>
		<category><![CDATA[wp super cache]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://blog.acmind.com/?p=567</guid>
		<description><![CDATA[最近有几个网友咨询 WP Super Cache 插件的使用办法，今天我们给大家介绍一下。WP Super Cache 是 WordPress 的重要缓存插件，使用 WordPress Super Cache 插件可以减少你的博客对主机资源的占用。对于访问量高的博客来说，这是一个非常有用的插件。
以下内容翻译自 WP Super Cache 插件的官方安装文档：

你的主机应当支持 Apache 的 mod mime 和 mod rewrite 模块，并启用 WordPress 永久链接（或固定链接）功能，PHP 的安全模式应当关闭。如果这些条件不能完全具备，那么你只能使用这个插件的 WP-Cache 部分功能。 
如果你已经安装了 WP-Cache 插件，请关闭。编辑 wp-config.php 文件，确认删除 WP_CACHE 的定义，将 wp-content/wp-cache-config.php 文件和 wp-content/advanced-cache.php 移走。当你安装本插件的时候，这些内容还会被创建。 
上传此目录到 plugins 目录。它会建立一个 “wp-content/plugins/wp-super-cache/” 目录。 
如果你是使用 WordPress MU ，你需要安装这个插件在 “wp-content/mu-plugins/wp-super-cache” 目录，并必须将文件 wp-cache.php 文件复制到 [...]]]></description>
			<content:encoded><![CDATA[<p>最近有几个网友咨询 <b>WP Super Cache</b> 插件的使用办法，今天我们给大家介绍一下。<b><i>WP Super Cache</i></b> 是 <a href="http://wpchina.org/">WordPress</a> 的重要缓存插件，使用 WordPress Super Cache 插件可以减少你的博客对主机资源的占用。对于访问量高的博客来说，这是一个非常有用的插件。</p>
<p>以下内容翻译自 <a href="http://wordpress.org/extend/plugins/wp-super-cache/">WP Super Cache</a> 插件的官方<a href="http://wordpress.org/extend/plugins/wp-super-cache/installation/">安装文档</a>：</p>
<ol>
<li>你的主机应当支持 Apache 的 mod mime 和 mod rewrite 模块，并启用 WordPress 永久链接（或固定链接）功能，PHP 的安全模式应当关闭。如果这些条件不能完全具备，那么你只能使用这个插件的 WP-Cache 部分功能。 </li>
<li>如果你已经安装了 WP-Cache 插件，请关闭。编辑 wp-config.php 文件，确认删除 WP_CACHE 的定义，将 wp-content/wp-cache-config.php 文件和 wp-content/advanced-cache.php 移走。当你安装本插件的时候，这些内容还会被创建。 </li>
<li>上传此目录到 plugins 目录。它会建立一个 “wp-content/plugins/wp-super-cache/” 目录。 </li>
<li>如果你是使用 WordPress MU ，你需要安装这个插件在 “wp-content/mu-plugins/wp-super-cache” 目录，并必须将文件 wp-cache.php 文件复制到 mu-plugins 目录。 </li>
<li>WordPress 用户去（管理后台的）插件页并启用“WP Super Cache”插件。 </li>
<li>现在去（管理后台的）设置-&gt; WP Super Cache ，并启用缓存功能。如果你得到一条错误信息或者空白屏幕，你需要修复下。查看此使用说明的“<a href="http://wordpress.org/extend/plugins/wp-super-cache/faq/">FAQ</a>”部分。 </li>
<li>mod_rewrite 规则插入到你的 .htaccess 文件。查看你的网站根目录下的此文件。看起来应该像是这样：
<pre class="mycode"> 1. -----------------.htaccess-----------------
 2. RewriteEngine On
 3. RewriteBase /
 4.
 5. RewriteCond %{REQUEST_METHOD} !=POST
 6. RewriteCond %{QUERY_STRING} !.*=.*
 7. RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
 8. RewriteCond %{HTTP:Accept-Encoding} gzip
 9. RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
10. RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]
11.
12. RewriteCond %{REQUEST_METHOD} !=POST
13. RewriteCond %{QUERY_STRING} !.*=.*
14. RewriteCond %{QUERY_STRING} !.*attachment_id=.*
15. RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
16. RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f
17. RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]
18.
19. RewriteCond %{REQUEST_FILENAME} !-f
20. RewriteCond %{REQUEST_FILENAME} !-d
21. RewriteRule . /index.php [L]
22. -----------------.htaccess-----------------</pre>
<p>    <a href="http://11011.net/software/vspaste"></a></li>
<li>启用此插件后，找到 “wp-content/cache/.htaccess” 文件。如果没有，你可以自己创建一个。内容是：
<pre class="mycode"> 1. # BEGIN supercache
 2. &lt;IfModule mod_mime.c&gt;
 3.   AddEncoding gzip .gz
 4.   AddType text/html .gz
 5. &lt;/IfModule&gt;
 6. &lt;IfModule mod_deflate.c&gt;
 7.   SetEnvIfNoCase Request_URI \.gz$ no-gzip
 8. &lt;/IfModule&gt;
 9. &lt;IfModule mod_headers.c&gt;
10.   Header set Cache-Control <span style="color: #a31515">'max-age=300, must-revalidate'
</span>11. &lt;/IfModule&gt;
12. &lt;IfModule mod_expires.c&gt;
13.   ExpiresActive On
14.   ExpiresByType text/html A300
15. &lt;/IfModule&gt;
16.
17. # END supercache</pre>
<p>    <a href="http://11011.net/software/vspaste"></a></li>
<li>Apache 必须配置好，允许使用上述设置。如果匿名访问者访问时出现 “500 internal error” （500内部错误），你要进一步配置你的 Apache 配置我呢见。以下设置可以在我的虚拟主机上工作：
<pre class="mycode">1. &lt;Directory /home/www/&gt;
2. AllowOverride All
3. &lt;/Directory&gt;</pre>
<p>    <a href="http://11011.net/software/vspaste"></a></li>
<li>wp-content/advanced-cache.php 启动缓存引擎。这个文件是由插件生成的。确定 include_once() 中的路径是正确的。 </li>
</ol>
<p>译者注：以上插件在我们的 <a href="http://wpchina.org/hosting/">WordPress 主机空间</a>配置通过，用户使用的时候需要细心设置。此外，.htaccess 文件为纯文本文件，用户可使用任何文本编辑器（比如 Windows 的记事本，或者 UltraEdit, Ededitor, Notepad++ 等）创建编辑。</p>
<p>&#160;</p>
<p>摘自：<a title="http://wpchina.org/wordpress-super-cache-installation-504/" href="http://wpchina.org/wordpress-super-cache-installation-504/">http://wpchina.org/wordpress-super-cache-installation-504/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.acmind.com/archives/567/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress 手动提速 &#8211; 缓存优化</title>
		<link>http://blog.acmind.com/archives/566</link>
		<comments>http://blog.acmind.com/archives/566#comments</comments>
		<pubDate>Mon, 01 Jun 2009 00:56:38 +0000</pubDate>
		<dc:creator>笑谈</dc:creator>
				<category><![CDATA[博建专区]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[缓存]]></category>
		<category><![CDATA[提速]]></category>
		<category><![CDATA[手动]]></category>

		<guid isPermaLink="false">http://blog.acmind.com/?p=566</guid>
		<description><![CDATA[由于大多数的 wordpress 博客都架设在与他人共享的虚拟主机上，所以速度和优化便成了 blogger 们经久不哀的话题。为了优化，我也看过不少的文章。看来看去，很多人只是老调重弹地讲了 WP Super Cache 插件；以及有些空泛地提出要去除不必要插件、优化 javascript 等，可惜这只说明了方向问题却没有点明该如何朝这个方向去做。只好依自己生平所学，手动地折腾了一把 Wordpress 优化。
服务器端缓存机制
虚拟主机用户一般无法更改服务器的配置，我们也就不能在这方面有很大的期望。不过“缓存”这一手段仍然是一种相对可行的底层优化方法。Wordpress 有众多的缓存插件来支持这一行为，包括 WP Cache、WP Super Cache、DB Cache 等。
WP Cache 和 WP Super Cache 这样的插件通过生成 HTML 静态页面来降低服务器负荷，达到提速的目的。我个人却不太喜欢这样的方式。其原因有：一，这样做会丧失动态网站的灵活性。特别是那些根据客户端不同会作出不同响应的功能。比如我的主题中有一个 is_bot() 函数，用来针对搜索引擎的机器人作出一些 SEO 的调整。一旦我启用了静态缓存插件，便丧失了这种灵活性。有人说这些功能可以改成 Javascript 实现，但真要改动起来也比较麻烦，有些得不偿失。二，某些个人博客的瓶颈并不在PHP执行这个环节，而是客户与服务器之间的网络线路。甚至我认为，个人博客没有上万的 PV 完全没有必要采用静态化的策略。
DB Cache 插件我觉得可以试试，因为它的原理是缓存数据库查询，特别是虚拟主机中数据库服务器不是本机(localhost)时，这个插件会提高响应速度。但必须注意的一点是很多虚拟主机对于每用户可占用的内存是有限制的，如果这个值太低，那么这个插件也不太适用。
把缓存交给用户
与其在服务器上费力地设置缓存，更好的办法其实是“把缓存交给用户”。我用 Firebug + Yslow 分析自己博客的时候，发现它提示我的博客没有给静态内容设置缓存。于是用 cURL 连接到网站上通过观察 HTTP Header 来分析了缓存的机制。我的博客上 Apache 会发送“Last-modified”和“E-Tag” Header，这似乎也是大多数博客虚拟主机的配置。这样浏览器在请求的时候会发出“If-modified-since”请求，让服务器判断请求的内容（比如图片）是否在某个时间（通常是浏览器缓存的时间）以后发生变化。如果没有变化，服务器返回 HTTP 304 Not Modified 响应，浏览器则可以放心地使用本地缓存，从而降低了 [...]]]></description>
			<content:encoded><![CDATA[<p>由于大多数的 wordpress 博客都架设在与他人共享的虚拟主机上，所以速度和优化便成了 blogger 们经久不哀的话题。为了优化，我也看过不少的文章。看来看去，很多人只是老调重弹地讲了 WP Super Cache 插件；以及有些空泛地提出要去除不必要插件、优化 javascript 等，可惜这只说明了方向问题却没有点明该如何朝这个方向去做。只好依自己生平所学，手动地折腾了一把 Wordpress 优化。</p>
<h5>服务器端缓存机制</h5>
<p>虚拟主机用户一般无法更改服务器的配置，我们也就不能在这方面有很大的期望。不过“缓存”这一手段仍然是一种相对可行的底层优化方法。Wordpress 有众多的缓存插件来支持这一行为，包括 WP Cache、WP Super Cache、DB Cache 等。</p>
<p>WP Cache 和 WP Super Cache 这样的插件通过生成 HTML 静态页面来降低服务器负荷，达到提速的目的。我个人却不太喜欢这样的方式。其原因有：一，这样做会丧失动态网站的灵活性。特别是那些根据客户端不同会作出不同响应的功能。比如我的主题中有一个 is_bot() 函数，用来针对搜索引擎的机器人作出一些 SEO 的调整。一旦我启用了静态缓存插件，便丧失了这种灵活性。有人说这些功能可以改成 Javascript 实现，但真要改动起来也比较麻烦，有些得不偿失。二，某些个人博客的瓶颈并不在PHP执行这个环节，而是客户与服务器之间的网络线路。甚至我认为，个人博客没有上万的 PV 完全没有必要采用静态化的策略。</p>
<p>DB Cache 插件我觉得可以试试，因为它的原理是缓存数据库查询，特别是虚拟主机中数据库服务器不是本机(localhost)时，这个插件会提高响应速度。但必须注意的一点是很多虚拟主机对于每用户可占用的内存是有限制的，如果这个值太低，那么这个插件也不太适用。</p>
<h5>把缓存交给用户</h5>
<p>与其在服务器上费力地设置缓存，更好的办法其实是“<strong>把缓存交给用户</strong>”。我用 Firebug + Yslow 分析自己博客的时候，发现它提示<a href="http://blog.xiaoding.org">我的博客</a>没有给静态内容设置缓存。于是用 cURL 连接到网站上通过观察 HTTP Header 来分析了缓存的机制。我的博客上 Apache 会发送“Last-modified”和“E-Tag” Header，这似乎也是大多数博客虚拟主机的配置。这样浏览器在请求的时候会发出“If-modified-since”请求，让服务器判断请求的内容（比如图片）是否在某个时间（通常是浏览器缓存的时间）以后发生变化。如果没有变化，服务器返回 HTTP 304 Not Modified 响应，浏览器则可以放心地使用本地缓存，从而降低了 HTTP 请求开销。</p>
<p>Yslow 建议给静态内容设置一个“<strong>永久</strong>”的缓存。这个永久通常是设置一年甚至更长的缓存期来实现的。设置缓存以后，服务器在对请求作出响应的时候会附加一个 Expires Header，告诉浏览器这个东西在多长时间内不会过期。这样浏览器就可以放心地使用缓存，甚至连 If-modified-since 请求和一个 HTTP 304 响应也不必要了。这样就大大地节省了在网络上的开销。访问者只是在第一次访问时会请求动态内容，接下来则会直接使用缓存的内容，达到了“<strong>把缓存交给用户</strong>”的目的。</p>
<h5>实现方法</h5>
<p>要做到这个也是件很容易的事情，对于 Apache 服务器来说，使用 mod_expire 就能轻松地设置缓存期。在 .htaccess 文件中加入以下内容：</p>
<pre class="mycode"> 1. &lt;IfModule mod_expires.c&gt;
 2. # 启用缓存机制
 3. ExpiresActive On
 4.
 5. # 图片缓存时间为 1 年
 6. ExpiresByType image/gif <span style="color: #a31515">&quot;now plus 1 year&quot;
 </span>7. ExpiresByType image/jpeg <span style="color: #a31515">&quot;now plus 1 year&quot;
 </span>8. ExpiresByType image/x-icon <span style="color: #a31515">&quot;now plus 1 year&quot;
 </span>9. ExpiresByType image/png <span style="color: #a31515">&quot;now plus 1 year&quot;
</span>10.
11. # Javascript, CSS 缓存时间为 12 小时
12. ExpiresByType text/css <span style="color: #a31515">&quot;now plus 12 hours&quot;
</span>13. ExpiresByType text/javascript <span style="color: #a31515">&quot;now plus 12 hours&quot;
</span>14. ExpiresByType application/javascript <span style="color: #a31515">&quot;now plus 12 hours&quot;
</span>15. &lt;/IfModule&gt;</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>有人要说，如果我的内容改变了怎么办呢？因为这样设置以后浏览器并不会向服务器询问是否有新的内容，而是老老实实地相信自己的缓存内容了。</p>
<p>如果你的改动是少数的几个图片，那么只需要在图片的 URL 后面自己加上一个任意的 query string 即可。比如说原来的图片 URL 是</p>
<pre class="mycode">http:<span style="color: green">//blog.xiaoding.org/wordpress/wp-includes/images/smilies/icon_smile.gif</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>现在只需要在原地址后面加上一个 query 参数即可，此参数对于静态内容可以任意构造，我此处写的是 AnyQueryString</p>
<pre class="mycode">http:<span style="color: green">//blog.xiaoding.org/wordpress/wp-includes/images/smilies/icon_smile.gif?AnyQueryString</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>这样浏览器会认为此时的图片与原来的不同，将再一次下载它。于是我们就达到了更新的目的。</p>
<p>&#160;</p>
<p>摘自：<a title="http://wpchina.org/boost-wordpress-manually-using-cache-525/" href="http://wpchina.org/boost-wordpress-manually-using-cache-525/">http://wpchina.org/boost-wordpress-manually-using-cache-525/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.acmind.com/archives/566/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

