<?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>或零日志</title>
	<atom:link href="http://www.orzero.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.orzero.net</link>
	<description>OR&#039;ZERO BLOG</description>
	<lastBuildDate>Thu, 22 Dec 2011 02:18:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>新的开始</title>
		<link>http://www.orzero.net/2011/12/%e6%96%b0%e7%9a%84%e5%bc%80%e5%a7%8b.html</link>
		<comments>http://www.orzero.net/2011/12/%e6%96%b0%e7%9a%84%e5%bc%80%e5%a7%8b.html#comments</comments>
		<pubDate>Thu, 22 Dec 2011 02:18:18 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[host]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=132</guid>
		<description><![CDATA[vps出现问题所有数据被清空，并且无法启动服务器，节点故障，本以为无法恢复了，只有推到重来，最近一个月都没空备份，又是一件极其麻烦的事，发了Support Tickets，虽然等了10多个小时，结果出乎意料的给恢复了。 好好备份，服务器的设置，网站数据，真是怕了，以后一周备一次。 相关文章: 或零日志]]></description>
			<content:encoded><![CDATA[<p>vps出现问题所有数据被清空，并且无法启动服务器，节点故障，本以为无法恢复了，只有推到重来，最近一个月都没空备份，又是一件极其麻烦的事，发了Support Tickets，虽然等了10多个小时，结果出乎意料的给恢复了。</p>
<p>好好备份，服务器的设置，网站数据，真是怕了，以后一周备一次。<br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/12/%e6%96%b0%e7%9a%84%e5%bc%80%e5%a7%8b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FEEDIY.COM网站地图在线生成工具</title>
		<link>http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html</link>
		<comments>http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html#comments</comments>
		<pubDate>Fri, 02 Sep 2011 08:55:29 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[framework]]></category>
		<category><![CDATA[javascripty]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[orzero]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Free Online Sitemap Generator]]></category>
		<category><![CDATA[free sitemap]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[online sitemap]]></category>
		<category><![CDATA[online sitemap builder]]></category>
		<category><![CDATA[seo tools]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[sitemap.html]]></category>
		<category><![CDATA[sitemap.xml]]></category>
		<category><![CDATA[yii]]></category>
		<category><![CDATA[网站地图]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=127</guid>
		<description><![CDATA[使用说明 FeeDIY在线网站地图生成工具，感觉有用就请给QQ群里面的朋友推荐下:) 原理：通过PHP网络蜘蛛自动爬行并整理出网站的地图 程序会自动开始爬行网站页面 下面显示最近爬行的15条网址 请及时保存生成的网站地图，sitemap.feediy.com会定期清理缓存的内容 相关文章: 通过rpm方式安装lnmp和一键安装lnmp服务 CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程 squid配置 linux下查找文件内容 php中文手册]]></description>
			<content:encoded><![CDATA[<div id="content">
<h1>使用说明</h1>
<p><a href="http://www.feediy.com/">FeeDIY</a>在线网站地图生成工具，感觉有用就请给QQ群里面的朋友推荐下:)</p>
<p>原理：通过PHP网络蜘蛛自动爬行并整理出网站的地图</p>
<p><img src="http://www.feediy.com/images/1.jpg" alt="" /><br />
<strong>程序会自动开始爬行网站页面</strong></p>
<p><img src="http://www.feediy.com/images/2.jpg" alt="" /><br />
<strong>下面显示最近爬行的15条网址</strong></p>
<p><img src="http://www.feediy.com/images/3.jpg" alt="" /><br />
<strong>请及时保存生成的网站地图，<a href="http://sitemap.feediy.com/">sitemap.feediy.com</a>会定期清理缓存的内容</strong></p>
</div>
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html' title='通过rpm方式安装lnmp和一键安装lnmp服务'>通过rpm方式安装lnmp和一键安装lnmp服务</a></li>
<li><a href='http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html' title='CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程'>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</a></li>
<li><a href='http://www.orzero.net/2011/06/squid%e9%85%8d%e7%bd%ae.html' title='squid配置'>squid配置</a></li>
<li><a href='http://www.orzero.net/2011/04/linux%e4%b8%8b%e6%9f%a5%e6%89%be%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9.html' title='linux下查找文件内容'>linux下查找文件内容</a></li>
<li><a href='http://www.orzero.net/2011/04/php_manual_zh.html' title='php中文手册'>php中文手册</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript 去数组重复数据</title>
		<link>http://www.orzero.net/2011/08/javascript-%e5%8e%bb%e6%95%b0%e7%bb%84%e9%87%8d%e5%a4%8d%e6%95%b0%e6%8d%ae.html</link>
		<comments>http://www.orzero.net/2011/08/javascript-%e5%8e%bb%e6%95%b0%e7%bb%84%e9%87%8d%e5%a4%8d%e6%95%b0%e6%8d%ae.html#comments</comments>
		<pubDate>Fri, 26 Aug 2011 04:59:50 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=124</guid>
		<description><![CDATA[Array.prototype.distinct = function(){ var b=[]; var obj={}; for(var i=0;i]]></description>
			<content:encoded><![CDATA[<p><code>Array.prototype.distinct = function(){<br />
var b=[];<br />
var obj={};<br />
for(var i=0;i
<this .length;i++){<br />
    obj[this[i]]=this[i];<br />
}<br />
for(var a in obj){<br />
    if(obj[a]!=false){<br />
        b.push(obj[a]);<br />
    }<br />
}<br />
return b;<br />
};</code></this></code><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/08/javascript-%e5%8e%bb%e6%95%b0%e7%bb%84%e9%87%8d%e5%a4%8d%e6%95%b0%e6%8d%ae.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xampp for linux 下安装 Memcache 支持</title>
		<link>http://www.orzero.net/2011/08/xampp-for-linux-%e4%b8%8b%e5%ae%89%e8%a3%85-memcache-%e6%94%af%e6%8c%81.html</link>
		<comments>http://www.orzero.net/2011/08/xampp-for-linux-%e4%b8%8b%e5%ae%89%e8%a3%85-memcache-%e6%94%af%e6%8c%81.html#comments</comments>
		<pubDate>Fri, 19 Aug 2011 08:41:36 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[xammp]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=120</guid>
		<description><![CDATA[分别下载 xampp-linux-1.7.4.tar.gz ,xampp-linux-devel-1.7.4.tar.gz ,memcache-2.2.6.tgz(http://pecl.php.net/package/memcache) 1.将 xampp 解压至 /opt/ tar xvfz xampp-linux-1.7.4.tar.gz -C /opt 2.将 xampp 开发包解压至 /opt/ tar -zxvf xampp-linux-devel-1.7.4.tar.gz -C /opt/ 3.编译 memcache tar -zxvf memcache-2.2.6.tgz cd memcache-2.2.6 /opt/lampp/bin/phpize ./configure --with-zlib-dir=/opt/lampp --with-php-config=/opt/lampp/bin/php-config --enable-memcache make make install //注：编译成功，提示Installing shared extensions: /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/ 4.修改Php配置文件，启用Memcache vi /opt/lampp/etc/php.ini //找到Dynamic Extensions的位置，添加一行：extension="memcache.so" 5.重启Lampp： /opt/lampp/lampp restart 这时，使用phpinfo脚本查看时，会发现memcache的配置段，说明安装成功！ 此外： * 若重启 xampp 时提示： [...]]]></description>
			<content:encoded><![CDATA[<p>分别下载 xampp-linux-1.7.4.tar.gz ,xampp-linux-devel-1.7.4.tar.gz ,memcache-2.2.6.tgz(http://pecl.php.net/package/memcache)</p>
<p>1.将 xampp 解压至 /opt/</p>
<p><code>tar xvfz xampp-linux-1.7.4.tar.gz -C /opt</code></p>
<p>2.将 xampp 开发包解压至 /opt/<br />
<code>tar -zxvf xampp-linux-devel-1.7.4.tar.gz -C /opt/</code></p>
<p>3.编译 memcache<br />
<code><br />
tar -zxvf memcache-2.2.6.tgz<br />
cd memcache-2.2.6<br />
/opt/lampp/bin/phpize<br />
./configure --with-zlib-dir=/opt/lampp --with-php-config=/opt/lampp/bin/php-config --enable-memcache<br />
make<br />
make install<br />
</code></p>
<p>//注：编译成功，提示Installing shared extensions: /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/<br />
4.修改Php配置文件，启用Memcache<br />
<code><br />
vi /opt/lampp/etc/php.ini<br />
//找到Dynamic Extensions的位置，添加一行：extension="memcache.so"<br />
</code></p>
<p>5.重启Lampp：<br />
<code><br />
/opt/lampp/lampp restart<br />
</code></p>
<p>这时，使用phpinfo脚本查看时，会发现memcache的配置段，说明安装成功！</p>
<p>此外：<br />
<code><br />
    * 若重启 xampp 时提示：<br />
      Warning: PHP Startup: Unable to load dynamic library '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/memcache.so' - /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/memcache.so: wrong ELF class: ELFCLASS64 in Unknown on line 0</p>
<p>      说明您的操作系统是 64 位的，而 xampp 只对 32 位的系统提供支持。请下载如下压缩包替换对应的文件即可。</p>
<p>http://developerworks-ourplanet.googlecode.com/files/no-debug-non-zts-20090626.tar.gz</p>
<p>    * If your server have not installed memcached, you should installed memcache first. We suppose you are using ubuntu,<br />
      sudo apt-get install memcached<br />
</code><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/08/xampp-for-linux-%e4%b8%8b%e5%ae%89%e8%a3%85-memcache-%e6%94%af%e6%8c%81.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos下架设socks5服务</title>
		<link>http://www.orzero.net/2011/08/centos%e4%b8%8b%e6%9e%b6%e8%ae%besocks5%e6%9c%8d%e5%8a%a1.html</link>
		<comments>http://www.orzero.net/2011/08/centos%e4%b8%8b%e6%9e%b6%e8%ae%besocks5%e6%9c%8d%e5%8a%a1.html#comments</comments>
		<pubDate>Sat, 06 Aug 2011 12:37:25 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[socks5]]></category>
		<category><![CDATA[ss5]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=117</guid>
		<description><![CDATA[socks5代理的功能和作用这里我就不多说了。 1.配置编译环境，安装基础编译必须包 yum -y install gcc automake make 2.安装socks5必要的包 yum -y install pam-devel openldap-devel cyrus-sasl-devel 3.下载，编译安装ss5（socks5） wget http://www.linuxso.com/uploads/soft/101018/ss5-3.6.1-1.tar.gz tar zxvf ss5-3.6.1-1.tar.gz cd ss5-3.6.1 ./configure make make install #启动ss5服务 /etc/init.d/ss5 start 如果没办法启动，则是权限问题 chmod a+x /etc/init.d/ss5 就可以启动了。 4.配置用户权限 ss5 默认使用1080端口，并允许任何人使用。 我们可以修改 /etc/opt/ss5/ss5.conf 中的 # SHost SPort Authentication # auth 0.0.0.0/0 – - 为 # SHost SPort Authentication [...]]]></description>
			<content:encoded><![CDATA[<p>socks5代理的功能和作用这里我就不多说了。<br />
1.配置编译环境，安装基础编译必须包<br />
yum -y install gcc automake make<br />
2.安装socks5必要的包<br />
yum -y install pam-devel openldap-devel cyrus-sasl-devel<br />
3.下载，编译安装ss5（socks5）<br />
wget  http://www.linuxso.com/uploads/soft/101018/ss5-3.6.1-1.tar.gz<br />
tar zxvf ss5-3.6.1-1.tar.gz<br />
cd ss5-3.6.1<br />
./configure<br />
make<br />
make install</p>
<p>#启动ss5服务<br />
/etc/init.d/ss5 start</p>
<p>如果没办法启动，则是权限问题<br />
chmod a+x /etc/init.d/ss5 就可以启动了。<br />
4.配置用户权限<br />
ss5 默认使用1080端口，并允许任何人使用。 我们可以修改 /etc/opt/ss5/ss5.conf 中的<br />
#       SHost           SPort           Authentication<br />
#<br />
auth    0.0.0.0/0               –              -<br />
为<br />
#       SHost           SPort           Authentication<br />
#<br />
auth    0.0.0.0/0               –              u<br />
同时，把<br />
permit –       0.0.0.0/0       –       0.0.0.0/0       –       –       –       –       -<br />
改为<br />
permit u        0.0.0.0/0       –       0.0.0.0/0       –       –       –       –       -</p>
<p>在 /etc/opt/ss5/ss5.passwd 中添加 用户名和密码 如：<br />
testuser testpass<br />
使用用户验证，重启ss5服务<br />
/etc/init.d/ss5 restart<br />
5.进阶<br />
改启动文件，改日志不保存<br />
在ss5启动时添加一个-m的参数，这个参数使系统不再记录ss5的日志。<br />
改ss5端口，格式为-b ip地址:端口<br />
vi /etc/rc.d/init.d/ss5<br />
start)<br />
# Start daemon.<br />
echo -n “Starting ss5… “<br />
if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then<br />
/usr/sbin/ss5 -m -t -b 10.10.10.10:2080<br />
touch /var/lock/subsys/ss5<br />
else<br />
/usr/local/sbin/ss5 -m -t -b 10.10.10.10:2080<br />
fi<br />
echo “done”</p>
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html' title='通过rpm方式安装lnmp和一键安装lnmp服务'>通过rpm方式安装lnmp和一键安装lnmp服务</a></li>
<li><a href='http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html' title='CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程'>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</a></li>
<li><a href='http://www.orzero.net/2011/03/linux-centos-%e5%bf%ab%e9%80%9f%e5%ae%89%e8%a3%85-memcachedb.html' title='Linux（CentOS 5.x）快速安装 memcachedb '>Linux（CentOS 5.x）快速安装 memcachedb </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/08/centos%e4%b8%8b%e6%9e%b6%e8%ae%besocks5%e6%9c%8d%e5%8a%a1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PR值PHP查看源代码</title>
		<link>http://www.orzero.net/2011/08/pr%e5%80%bcphp%e6%9f%a5%e7%9c%8b%e6%ba%90%e4%bb%a3%e7%a0%81.html</link>
		<comments>http://www.orzero.net/2011/08/pr%e5%80%bcphp%e6%9f%a5%e7%9c%8b%e6%ba%90%e4%bb%a3%e7%a0%81.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 04:37:34 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=113</guid>
		<description><![CDATA[< ?php /** This code is released unto the public domain */ //header("Content-Type: text/plain; charset=utf-8"); define('GOOGLE_MAGIC', 0xE6359A60); //unsigned shift right function zeroFill($a, $b) { $z = hexdec(80000000); if ($z &#038; $a) { $a = ($a>>1); $a &#038;= (~$z); $a &#124;= 0x40000000; $a = ($a>>($b-1)); } else { $a = ($a>>$b); } return $a; } function [...]]]></description>
			<content:encoded><![CDATA[<p><code><br />
< ?php<br />
/**<br />
    This code is released unto the public domain<br />
*/<br />
//header("Content-Type: text/plain; charset=utf-8");<br />
define('GOOGLE_MAGIC', 0xE6359A60);</p>
<p>//unsigned shift right<br />
function zeroFill($a, $b)<br />
{<br />
    $z = hexdec(80000000);<br />
        if ($z &#038; $a)<br />
        {<br />
            $a = ($a>>1);<br />
            $a &#038;= (~$z);<br />
            $a |= 0x40000000;<br />
            $a = ($a>>($b-1));<br />
        }<br />
        else<br />
        {<br />
            $a = ($a>>$b);<br />
        }<br />
        return $a;<br />
}   </p>
<p>function mix($a,$b,$c) {<br />
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));<br />
  $b -= $c; $b -= $a; $b ^= ($a< &lt;8);<br />
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));<br />
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));<br />
  $b -= $c; $b -= $a; $b ^= ($a<&lt;16);<br />
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));<br />
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));<br />
  $b -= $c; $b -= $a; $b ^= ($a<&lt;10);<br />
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));</p>
<p>  return array($a,$b,$c);<br />
}</p>
<p>function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {<br />
    if(is_null($length)) {<br />
        $length = sizeof($url);<br />
    }<br />
    $a = $b = 0x9E3779B9;<br />
    $c = $init;<br />
    $k = 0;<br />
    $len = $length;<br />
    while($len >= 12) {<br />
        $a += ($url[$k+0] +($url[$k+1]< &lt;8) +($url[$k+2]<&lt;16) +($url[$k+3]<&lt;24));<br />
        $b += ($url[$k+4] +($url[$k+5]<&lt;8) +($url[$k+6]<&lt;16) +($url[$k+7]<&lt;24));<br />
        $c += ($url[$k+8] +($url[$k+9]<&lt;8) +($url[$k+10]<&lt;16)+($url[$k+11]<&lt;24));<br />
        $mix = mix($a,$b,$c);<br />
        $a = $mix[0]; $b = $mix[1]; $c = $mix[2];<br />
        $k += 12;<br />
        $len -= 12;<br />
    }</p>
<p>    $c += $length;<br />
    switch($len)              /* all the case statements fall through */<br />
    {<br />
        case 11: $c+=($url[$k+10]<&lt;24);<br />
        case 10: $c+=($url[$k+9]<&lt;16);<br />
        case 9 : $c+=($url[$k+8]<&lt;8);<br />
          /* the first byte of c is reserved for the length */<br />
        case 8 : $b+=($url[$k+7]<&lt;24);<br />
        case 7 : $b+=($url[$k+6]<&lt;16);<br />
        case 6 : $b+=($url[$k+5]<&lt;8);<br />
        case 5 : $b+=($url[$k+4]);<br />
        case 4 : $a+=($url[$k+3]<&lt;24);<br />
        case 3 : $a+=($url[$k+2]<&lt;16);<br />
        case 2 : $a+=($url[$k+1]<&lt;8);<br />
        case 1 : $a+=($url[$k+0]);<br />
         /* case 0: nothing left to add */<br />
    }<br />
    $mix = mix($a,$b,$c);<br />
    /*-------------------------------------------- report the result */<br />
    return $mix[2];<br />
}</p>
<p>//converts a string into an array of integers containing the numeric value of the char</p>
<p>function strord($string) {<br />
    for($i=0;$i<strlen($string);$i++) {<br />
        $result[$i] = ord($string{$i});<br />
    }<br />
    return $result;<br />
}<br />
// http://www.orzero.com/ - Checksum: 6540747202<br />
$url = 'info:'.$_GET['url'];<br />
$ch = GoogleCH(strord($url));<br />
$url='info:'.urlencode($_GET['url']);<br />
echo file_get_contents("http://www.google.com/search?client=navclient-auto&#038;ch=6$ch&#038;ie=UTF-8&#038;oe=UTF-8&#038;features=Rank&#038;q=$url");<br />
/* use curl send the user angent<br />
$curl = curl_init("http://www.google.com/search?client=navclient-auto&#038;ch=6$</p>
<p>ch&#038;ie=UTF-8&#038;oe=UTF-8&#038;features=Rank&#038;q=$url");<br />
curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;</p>
<p>GoogleToolbar 2.0.110-big; Windows 2000 5.0)");<br />
curl_exec($curl);<br />
*/<br />
?><br />
</code><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/08/pr%e5%80%bcphp%e6%9f%a5%e7%9c%8b%e6%ba%90%e4%bb%a3%e7%a0%81.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress 表结构简单分析</title>
		<link>http://www.orzero.net/2011/07/wordpress-%e8%a1%a8%e7%bb%93%e6%9e%84%e7%ae%80%e5%8d%95%e5%88%86%e6%9e%90.html</link>
		<comments>http://www.orzero.net/2011/07/wordpress-%e8%a1%a8%e7%bb%93%e6%9e%84%e7%ae%80%e5%8d%95%e5%88%86%e6%9e%90.html#comments</comments>
		<pubDate>Tue, 26 Jul 2011 05:17:43 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=107</guid>
		<description><![CDATA[wp_posts: 字段                    用途                                    举例                    有默认               必须    必须字段 ID                          自增ID                                         +                           x post_author                 作者ID                                         1                                                   Y        作者        1 post_date                   发表时间                                       0000-00-00 00:00:00         x                                                2011-06-28 13:04:22 post_date_gmt               发表时间(可以同上)                             0000-00-00 00:00:00         x                                                2011-06-28 13:04:22 post_content                内容                                           内容                                                Y        内容        [nggallery id=1] post_title                  标题                                           标题                                                Y        标题        Amy Reid,celeb,amy_reid-15 post_excerpt post_status                 状态                                           publish                     x                                                publish comment_status              评论状态                                       open                        x                                                [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.orzero.net/wp-content/uploads/2011/07/2b96ed892c89d59e0e244406.jpg"><img class="alignnone size-full wp-image-109" title="2b96ed892c89d59e0e244406" src="http://www.orzero.net/wp-content/uploads/2011/07/2b96ed892c89d59e0e244406.jpg" alt="" width="1024" height="881" /></a></p>
<p><strong>wp_posts:</strong><br />
字段                    用途                                    举例                    有默认               必须    必须字段<br />
ID                          自增ID                                         +                           x<br />
post_author                 作者ID                                         1                                                   Y        作者        1<br />
post_date                   发表时间                                       0000-00-00 00:00:00         x                                                2011-06-28 13:04:22<br />
post_date_gmt               发表时间(可以同上)                             0000-00-00 00:00:00         x                                                2011-06-28 13:04:22<br />
post_content                内容                                           内容                                                Y        内容        [nggallery id=1]<br />
post_title                  标题                                           标题                                                Y        标题        Amy Reid,celeb,amy_reid-15<br />
post_excerpt<br />
post_status                 状态                                           publish                     x                                                publish<br />
comment_status              评论状态                                       open                        x                                                open<br />
ping_status                 是否允许ping                                   open                        x                                                open<br />
post_password               文章密码<br />
post_name                   文章缩略名                                     116-revision                                        Y        缩略名        amy-reidcelebamy_reid-15<br />
to_ping<br />
pinged<br />
post_modified               修改时间                                        0000-00-00 00:00:00        x                                                2011-06-29 06:44:03<br />
post_modified_gmt           修改时间                                        0000-00-00 00:00:00        x                                                2011-06-29 06:44:03<br />
post_content_filtered       文章内容过滤<br />
post_parent                 父文章，主要用于PAGE，或者修订版身份定位        0                          x                                                0<br />
guid                        文章固定链接                                    http://www.orzero.net/2011/04/116-xx.html     Y        固定链接        http://www.xxer.info/?p=10<br />
menu_order                  排序ID                                          0                          x                                                0<br />
post_type                   文章类型（attachment/page/post/revision）       post                       x                                                post<br />
post_mime_type              MIME类型<br />
comment_count               回复数                                          0                          x                                                0</p>
<p>&nbsp;</p>
<p><span id="more-107"></span></p>
<p><strong>wp_postmeta</strong><br />
meta_id：自增唯一ID<br />
post_id：对应文章ID                   ID<br />
meta_key：键名                        (title,description,keywords应该有此三项)<br />
meta_value：键值                      value</p>
<p><strong>wp_terms</strong><br />
term_id：分类ID<br />
name：分类名                          分类名<br />
slug：缩略名                          短链接（全部小写，以“-”取代空格）<br />
term_group：未知                      0</p>
<p>&nbsp;</p>
<p><strong>wp_term_relationships</strong><br />
object_id：对应文章ID/链接ID                    (wp_posts:ID)<br />
term_taxonomy_id：对应分类方法ID                (term_taxonomy_id)<br />
term_order：排序                                 0</p>
<p><strong>wp_term_taxonomy</strong><br />
term_taxonomy_id：分类方法ID<br />
term_id：taxonomy：分类方法(category/post_tag/link_category)          标注terms的具体类型<br />
description：未知<br />
parent：所属父分类方法ID                                                0<br />
count：文章数统计</p>
<p><strong>相册插件（NextGEN Gallery ）：</strong><br />
<strong>wp_ngg_album</strong>，包含gallery<br />
相册，记录显示哪些画廊<br />
id<br />
name                 相册名                album1<br />
slug                 链接路径              album1<br />
previewpic           封面画廊id            0<br />
albumdesc            描述<br />
sortorder            图片列表              a:2:{i:0;s:1:&#8221;1&#8243;;i:1;s:1:&#8221;2&#8243;;}<br />
pageid               页号                  0</p>
<p><strong>wp_ngg_gallery</strong>，包含pictures<br />
画廊，包含具体的画廊信息<br />
gid<br />
name                 画廊名                gallery1<br />
slug                 画廊链接              gallery1<br />
path                 相对路径              wp-content/gallery/gallery1<br />
title                标题                  gallery1<br />
galdesc              描述<br />
pageid               页号                  0<br />
previewpic           封面图片id            1<br />
author               作者id                1</p>
<p>//exclude为1，description记录图片源src<br />
<strong>wp_ngg_pictures</strong><br />
图片，记录具体的图片信息<br />
pid<br />
image_slug           图片链接                water-lilies<br />
post_id              文章id                  0<br />
galleryid            画廊id                  1<br />
filename             存储文件名              water-lilies.jpg<br />
description          描述<br />
alttext              描点文本                water-lilies<br />
imagedate            生成日期                2011-06-17 07:19:12<br />
exclude              排除                    0<br />
sortorder            排序                    0<br />
meta_data            信息                    a:17:{i:0;b:0;s:8:&#8221;aperture&#8221;;b:0;s:6:&#8221;credit&#8221;;b:0;s:6:&#8221;camera&#8221;;b:0;s:7:&#8221;caption&#8221;;b:0;s:17:&#8221;created_timestamp&#8221;;b:0;s:9:&#8221;copyright&#8221;;b:0;s:12:&#8221;focal_length&#8221;;b:0;s:3:&#8221;iso&#8221;;b:0;s:13:&#8221;shutter_speed&#8221;;b:0;s:5:&#8221;flash&#8221;;b:0;s:5:&#8221;title&#8221;;b:0;s:8:&#8221;keywords&#8221;;b:0;s:5:&#8221;width&#8221;;i:800;s:6:&#8221;height&#8221;;i:600;s:5:&#8221;saved&#8221;;b:1;s:9:&#8221;thumbnail&#8221;;a:2:{s:5:&#8221;width&#8221;;i:100;s:6:&#8221;height&#8221;;i:75;}}</p>
<p>&nbsp;</p>
<p>&nbsp;<br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/07/wordpress-%e8%a1%a8%e7%bb%93%e6%9e%84%e7%ae%80%e5%8d%95%e5%88%86%e6%9e%90.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx rewrite for joomla</title>
		<link>http://www.orzero.net/2011/07/nginx-rewrite-joomla.html</link>
		<comments>http://www.orzero.net/2011/07/nginx-rewrite-joomla.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 02:04:43 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[joomla]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[nginx rewrite]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=102</guid>
		<description><![CDATA[第一个版本： server { listen 80 default; server_name localhost; access_log /var/log/nginx/localhost.access.log; root /var/www/nginx-default; location /wordpress { try_files $uri $uri/ @wordpress; } location /joomla { try_files $uri $uri/ @joomla; } # Configuración para instalaciones de WordPress location @wordpress { fastcgi_pass 127.0.0.1:9120; fastcgi_param SCRIPT_FILENAME $document_root/wordpress/index.php; include fastcgi_params; } # Configuración para instalaciones de Joomla! location @joomla { fastcgi_pass [...]]]></description>
			<content:encoded><![CDATA[<p>第一个版本：<br />
<code><br />
server {<br />
listen 80 default;<br />
server_name localhost;</code></p>
<p>access_log /var/log/nginx/localhost.access.log;</p>
<p>root /var/www/nginx-default;</p>
<p>location /wordpress {<br />
try_files $uri $uri/ @wordpress;<br />
}</p>
<p>location /joomla {<br />
try_files $uri $uri/ @joomla;<br />
}</p>
<p># Configuración para instalaciones de WordPress<br />
location @wordpress {<br />
fastcgi_pass 127.0.0.1:9120;<br />
fastcgi_param SCRIPT_FILENAME $document_root/wordpress/index.php;<br />
include fastcgi_params;<br />
}</p>
<p># Configuración para instalaciones de Joomla!<br />
location @joomla {<br />
fastcgi_pass 127.0.0.1:9120;<br />
fastcgi_param SCRIPT_FILENAME $document_root/joomla/index.php;<br />
include fastcgi_params;<br />
}</p>
<p># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000<br />
#<br />
location ~ \.php$ {<br />
fastcgi_pass 127.0.0.1:9120;<br />
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />
include fastcgi_params;<br />
}</p>
<p>}</p>
<p>另外一个版本：<br />
<span id="more-102"></span><br />
<code><br />
server {<br />
server_name example.com;<br />
rewrite ^ http://www.example.com$request_uri permanent;<br />
}<br />
server {<br />
server_name www.example.com;<br />
root /home/public_html/example.com/public;<br />
error_page 404 /404.html;<br />
try_files $uri $uri/ /index.php?q=$request_uri;</code></p>
<p>index index.php index.htm index.html;<br />
# serve static files directly<br />
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|html)$ {<br />
access_log off;<br />
expires 30d;<br />
}<br />
location 404.html{<br />
index /404.html;<br />
}<br />
location ~* \.php$ {<br />
# By all means use a different server for the fcgi processes if you need to<br />
fastcgi_pass 127.0.0.1:9000;<br />
include /etc/nginx/fastcgi_params;<br />
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />
fastcgi_param QUERY_STRING $query_string;<br />
fastcgi_param REQUEST_METHOD $request_method;<br />
fastcgi_param CONTENT_TYPE $content_type;<br />
fastcgi_param CONTENT_LENGTH $content_length;<br />
}<br />
location ~ /\.ht {<br />
deny all;<br />
}<br />
}<br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/07/nginx-rewrite-joomla.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git使用说明</title>
		<link>http://www.orzero.net/2011/07/git%e4%bd%bf%e7%94%a8%e8%af%b4%e6%98%8e.html</link>
		<comments>http://www.orzero.net/2011/07/git%e4%bd%bf%e7%94%a8%e8%af%b4%e6%98%8e.html#comments</comments>
		<pubDate>Thu, 14 Jul 2011 01:29:04 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=98</guid>
		<description><![CDATA[Linus为Linux Kernel Project发起的版本控制项目。 HEAD代表当前最新状态。 tag为某个状态的标签。 SHA1为每个提交日志的唯一标识。 install: apt-get install git-core git clone: git仓库可以使用git clone获得： git clone git://url 也可以通过浏览器浏览。 http://url/gitweb/ 通过git pull更新仓库，使用git init-db初始化自己的仓库。 config: 开发人员需要为git仓库配置相关信息，这样在提交代码时，这些信息会自动 反映在git仓库的日志中。 git config user.name "your name" git config user.email yourname@email_server git config core.editor vim git config core.paper "less -N" git config color.diff true git config alias.co checkout git config alias表示，可以用git co代表git [...]]]></description>
			<content:encoded><![CDATA[<p><code><br />
Linus为Linux Kernel Project发起的版本控制项目。<br />
HEAD代表当前最新状态。<br />
tag为某个状态的标签。<br />
SHA1为每个提交日志的唯一标识。</p>
<p>install:</p>
<p>apt-get install git-core</p>
<p>git clone:</p>
<p>git仓库可以使用git clone获得：<br />
git clone git://url</p>
<p>也可以通过浏览器浏览。</p>
<p>http://url/gitweb/</p>
<p>通过git pull更新仓库，使用git init-db初始化自己的仓库。</p>
<p>config:</p>
<p>开发人员需要为git仓库配置相关信息，这样在提交代码时，这些信息会自动<br />
反映在git仓库的日志中。</p>
<p>git config user.name "your name"<br />
git config user.email yourname@email_server<br />
git config core.editor vim<br />
git config core.paper "less -N"<br />
git config color.diff true<br />
git config alias.co checkout</p>
<p>git config alias表示，可以用git co代表git checkout。git var -l可以查看<br />
已经设置的配置。</p>
<p>diff:</p>
<p>开发人员在本地进行开发后，可以使用git diff查看改动。<br />
除了直接比较当前开发后的改动外，git diff还可以：</p>
<p>git diff tag                    比较tag和HEAD之间的不同。<br />
git diff tag file               比较一个文件在两者之间的不同。<br />
git diff tag1..tag2             比较两个tag之间的不同。<br />
git diff SHA11..SHA12           比较两个提交之间的不同。<br />
git diff tag1 tag2 file or<br />
git diff tag1:file tag2:file    比较一个文件在两个tag之间的不同。</p>
<p>ORIG_HEAD用于指向前一个操作状态，因此在git pull之后如果想得到pull的<br />
内容就可以：</p>
<p>git diff ORIG_HEAD</p>
<p>git diff --stat                 用于生成统计信息。<br />
git diff --stat ORIG_HEAD</p>
<p>apply:</p>
<p>git apply相当于patch命令。<br />
--check 检查能否正常打上补丁，-v verbose模式， -R reverse模式，反打补丁。</p>
<p>log:</p>
<p>git log file                    查看一个文件的改动。<br />
git log -p                      查看日志和改动。<br />
git log tag1..tag2              查看两个tag之间的日志。<br />
git log -p tag1..tag2 file      查看一个文件在两个tag之间的不同。<br />
git log tag..                   查看tag和HEAD之间的不同。</p>
<p>commit:</p>
<p>git commit -a -e        提交全部修改文件，并调用vim编辑提交日志。<br />
git reset HEAD^ or<br />
git reset HEAD~1        撤销最后一次提交。<br />
git reset --hard HEAD^  撤销最后一次提交并清除本地修改。<br />
git reset SHA1          回到SHA1对应的提交状态。</p>
<p>add/delete/ls:</p>
<p>git add -a              添加所有文件。除了.gitignore文件中的文件。<br />
git rm file             从git仓库中删除文件。<br />
git commit              添加或是删除后要提交。</p>
<p>git ls-files -m         显示修改过的文件。<br />
git ls-files            显示所有仓库中的文件。</p>
<p>git中有四种对象：blob、tree、commit、tag。<br />
blob代表文件，tree代表目录，commit代表提交历史，tag代表标签。<br />
这四种对象都是由SHA1值表示的。在仓库的.git目录中保存了git管理仓库<br />
所需要的全部信息。</p>
<p>git ls-tree HEAD file   显示file在HEAD中的SHA1值。<br />
git cat-file -t SHA1    显示一个SHA1的类型。<br />
git cat-file type SHA1  显示一个SHA1的内容。type是blob、tree、commit、tag之一。</p>
<p>patch:</p>
<p>git format-patch -1     生成最后一个提交对应的patch文件。<br />
git am < patch          把一个patch文件加入git仓库中。<br />
git am --resolved       如果有冲突，在解决冲突后执行。<br />
git am --skip           放弃当前git am所引入的patch。</p>
<p>conflict:</p>
<p>git merge               用于合并两个分支。<br />
git diff                如果有冲突，直接使用diff查看，<br />
                        冲突代码用<<<和>>>表示。手动修改冲突代码。<br />
git update-index        更新修改后的文件状态。<br />
git commit -a -e        提交为解决冲突而修改的代码。</p>
<p>branch:</p>
<p>git branch -a           查看所有分支。<br />
git branch new_branch   创建新的分支。<br />
git branch -d branch    删除分支。<br />
git checkout branch     切换当前分支。-f参数可以覆盖未提交内容。</p>
<p>daemon:</p>
<p>有时更新公共代码仓库使用patch的方式，或者直接<br />
用git pull git://ip/repo branch<br />
的方式更新每个人的代码。使用git pull的方式需要<br />
提交代码的机器运行：<br />
git daemon --verbose --export-all --enable=receive-pack --base-path=/repo</p>
<p>request-pull:</p>
<p>git request-pull start url      用于产生本次pull请求的统计信息。</p>
<p>clean:</p>
<p>git clean -dxf          用于清除未跟踪文件。<br />
git clean -dnf          可以显示需要删除的文件，但不包括被.gitignore忽略的。<br />
git reset --hard HEAD   用于清除跟踪文件的修改。</p>
<p></code><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/07/git%e4%bd%bf%e7%94%a8%e8%af%b4%e6%98%8e.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>通过rpm方式安装lnmp和一键安装lnmp服务</title>
		<link>http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html</link>
		<comments>http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html#comments</comments>
		<pubDate>Wed, 08 Jun 2011 05:16:07 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[orzero]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[lnmp]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=93</guid>
		<description><![CDATA[下面记录了两种安装方法，一种通过rpm方式，一种属于一键安装方式，可以自行测试。 推荐通过centmin脚本安装，比较完善，项目地址： http://www.btcentral.org.uk/projects/centmin/ Step 1. install yum repo //32 bit rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-6.ius.el5.noarch.rpm //64 bit rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm Step 2. install MySQL //Visit http://dev.mysql.com/downloads/mysql/5.5.html?current_os=7#downloads //You need to download 4 packages, they are: MySQL-client MySQL-server MySQL-shared-compat MySQL-shared //After you download them run: rpm -ivh *.rpm //change MySQL root password： service [...]]]></description>
			<content:encoded><![CDATA[<p>下面记录了两种安装方法，一种通过rpm方式，一种属于一键安装方式，可以自行测试。</p>
<p>推荐通过centmin脚本安装，比较完善，项目地址：</p>
<p>http://www.btcentral.org.uk/projects/centmin/</p>
<p><span id="more-93"></span><br />
<code></p>
<p>Step 1. install yum repo</p>
<p>    //32 bit<br />
    rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm<br />
    rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-6.ius.el5.noarch.rpm<br />
    //64 bit<br />
    rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm<br />
    rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm</p>
<p>Step 2. install MySQL</p>
<p>    //Visit http://dev.mysql.com/downloads/mysql/5.5.html?current_os=7#downloads<br />
    //You need to download 4 packages, they are:<br />
    MySQL-client MySQL-server MySQL-shared-compat MySQL-shared<br />
    //After you download them run:<br />
    rpm -ivh *.rpm<br />
    //change MySQL root password：<br />
    service mysql start<br />
    mysqladmin -u root password 'yourpasswd'<br />
    service mysql stop</p>
<p>Step 3. Add www account</p>
<p>    groupadd www<br />
    useradd -g www -d /home/www www<br />
    // We add www as user of nginx and php-fpm</p>
<p>Step 4. install php</p>
<p>    yum install php53u-cli php53u-common php53u php53u-devel php53u-mysql php53u-xmlrpc php53u-xml php53u-gd php53u-pdo php53u-tidy php53u-mcrypt php53u-mbstring php53u-pear php53u-pecl php53u-pecl-memcache php53u-pecl-apc php53u-fpm<br />
    //The current PHP version is 5.3.5-3, IUS' package's name is php53u<br />
    //You can run command blew to find out lastest version<br />
    yum list | grep -w \.ius\.</p>
<p>Step 5. configure php-fpm</p>
<p>    //setup php-fpm<br />
    vim /etc/php-fpm.d/www.conf<br />
    //Find Unix user/group of processes<br />
    //change user &#038; group to www</p>
<p>Step 6. Install Nginx</p>
<p>    //visit http://nginx.org/en/download.html to get lastest Nginx<br />
    //for example, we use http://nginx.org/download/nginx-0.9.5.tar.gz</p>
<p>    yum install pcre pcre-devel # these are depend by nginx<br />
    cd /tmp<br />
    wget http://nginx.org/download/nginx-0.9.5.tar.gz<br />
    tar -zxvf nginx-*.tar.gz<br />
    cd nginx-*<br />
    ./configure --user=www --group=www --conf-path=/etc/nginx/nginx.conf --with-http_stub_status_module --with-http_ssl_module<br />
    make<br />
    make install<br />
    //register nginx as a service<br />
    vim /etc/init.d/nginx<br />
    //paste the script blew then run: chmod 755 /etc/init.d/nginx</p>
<p>    #!/bin/sh<br />
    #<br />
    # nginx - this script starts and stops the nginx daemin<br />
    #<br />
    # chkconfig: - 85 15<br />
    # description: Nginx is an HTTP(S) server, HTTP(S) reverse \<br />
    # proxy and IMAP/POP3 proxy server<br />
    # processname: nginx<br />
    # config: /etc/nginx/nginx.conf<br />
    # pidfile: /usr/local/nginx/logs/nginx.pid<br />
    # Source function library.<br />
    . /etc/rc.d/init.d/functions<br />
    # Source networking configuration.<br />
    . /etc/sysconfig/network<br />
    # Check that networking is up.<br />
    [ "$NETWORKING" = "no" ] &#038;&#038; exit 0<br />
    nginx="/usr/local/nginx/sbin/nginx"<br />
    prog=$(basename $nginx)<br />
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"<br />
    [ -f /etc/sysconfig/nginx ] &#038;&#038; . /etc/sysconfig/nginx<br />
    lockfile=/var/lock/subsys/nginx<br />
    start() {<br />
    [ -x $nginx ] || exit 5<br />
    [ -f $NGINX_CONF_FILE ] || exit 6<br />
    echo -n $"Starting $prog: "<br />
    daemon $nginx -c $NGINX_CONF_FILE<br />
    retval=$?<br />
    echo<br />
    [ $retval -eq 0 ] &#038;&#038; touch $lockfile<br />
    return $retval<br />
    }<br />
    stop() {<br />
    echo -n $"Stopping $prog: "<br />
    killproc $prog<br />
    retval=$?<br />
    echo<br />
    [ $retval -eq 0 ] &#038;&#038; rm -f $lockfile<br />
    return $retval<br />
    }<br />
    restart() {<br />
    configtest || return $?<br />
    stop<br />
    start<br />
    }<br />
    reload() {<br />
    configtest || return $?<br />
    echo -n $"Reloading $prog: "<br />
    killproc $nginx -HUP<br />
    RETVAL=$?<br />
    echo<br />
    }<br />
    force_reload() {<br />
    restart<br />
    }<br />
    configtest() {<br />
    $nginx -t -c $NGINX_CONF_FILE<br />
    }<br />
    rh_status() {<br />
    status $prog<br />
    }<br />
    rh_status_q() {<br />
    rh_status >/dev/null 2>&#038;1<br />
    }<br />
    case "$1" in<br />
    start)<br />
    rh_status_q &#038;&#038; exit 0<br />
    $1<br />
    ;;<br />
    stop)<br />
    rh_status_q || exit 0<br />
    $1<br />
    ;;<br />
    restart|configtest)<br />
    $1<br />
    ;;<br />
    reload)<br />
    rh_status_q || exit 7<br />
    $1<br />
    ;;<br />
    force-reload)<br />
    force_reload<br />
    ;;<br />
    status)<br />
    rh_status<br />
    ;;<br />
    condrestart|try-restart)<br />
    rh_status_q || exit 0<br />
    ;;<br />
    *)<br />
    echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"<br />
    exit 2<br />
    esac</p>
<p>Step 7. Start at boot<br />
chkconfig mysql on<br />
chkconfig php-fpm on<br />
chkconfig nginx on</p>
<p>Step 8. Start services<br />
service mysql start<br />
service php-fpm start<br />
service nginx start</p>
<p>Finish<br />
</code></p>
<p>By the way, there is an easy solution which help you do the same, try LNMP Installer for RHEL &#038; CentOS：<br />
<code><br />
Features:</p>
<p>    Install and update LNMP easily and fast<br />
    Detect latest official releases automatically via Internet<br />
        Nginx from nginx.org<br />
        MySQL from mysql.com<br />
        PHP from iuscommunity.org</p>
<p>Requirements:</p>
<p>    CentOS / RHEL 5.5 (32 bit or 64 bit) or higher<br />
    root permission</p>
<p>ONE LINE INSTALL<br />
wget http://pub.easisee.com/p/lnmp/rhel/lnmp.sh&#038;&#038;sh lnmp.sh install depends mysql php nginx<br />
Step by Step Install</p>
<p>    Get the script:<br />
    wget http://pub.easisee.com/p/lnmp/rhel/lnmp.sh<br />
    Edit settings:<br />
    vim lnmp.sh<br />
    Install LNMP:<br />
    sh lnmp.sh install depends mysql php nginx</p>
<p>After install</p>
<p>    Setup MySQL:<br />
    ls /usr/share/mysql/ | grep .*.cnf<br />
    //You will get some suggested settings file,copy one of them to /etc/my.cnf<br />
    //For example:<br />
    cp /usr/share/mysql/my-medium.cnf /etc/my.cnf</p>
<p>    Change MySQL root password:<br />
    mysqladmin -u root password 'yourpasswd'</p>
<p>    Start LNMP:<br />
    service mysql start<br />
    service php-fpm start<br />
    service nginx start</p>
<p>    Start LNMP at boot:<br />
    chkconfig mysql on<br />
    chkconfig php-fpm on<br />
    chkconfig nginx on</p>
<p>Update LNMP</p>
<p>    Update LNMP:<br />
    sh lnmp.sh update mysql php nginx<br />
    Update LNMP Installer:<br />
    sh lnmp.sh update self<br />
</code><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html' title='CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程'>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</a></li>
<li><a href='http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html' title='FEEDIY.COM网站地图在线生成工具'>FEEDIY.COM网站地图在线生成工具</a></li>
<li><a href='http://www.orzero.net/2011/08/centos%e4%b8%8b%e6%9e%b6%e8%ae%besocks5%e6%9c%8d%e5%8a%a1.html' title='centos下架设socks5服务'>centos下架设socks5服务</a></li>
<li><a href='http://www.orzero.net/2011/05/%e6%b2%a1%e6%9c%89%e6%9c%80%e7%8c%9b%ef%bc%8c%e5%8f%aa%e6%9c%89%e6%9b%b4%e7%8c%9b%ef%bc%81.html' title='没有最猛，只有更猛！'>没有最猛，只有更猛！</a></li>
<li><a href='http://www.orzero.net/2011/04/mysql-5-1-zh-manual.html' title='mysql 5.1 中文参考手册'>mysql 5.1 中文参考手册</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</title>
		<link>http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html</link>
		<comments>http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html#comments</comments>
		<pubDate>Mon, 06 Jun 2011 18:37:03 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[memcachedb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[或零]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[lnmp]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=85</guid>
		<description><![CDATA[之前试用了一件安装包安装，安装完后结果一大堆的进程和账户，很臃肿，而且感觉不安全，并且无法体验到最新版本的性能和功能，还是自己手动安装，下面的步骤，仅作记录，欢迎测试和反馈，服务器版本： CentOS release 5.3 32位 演示使用软件版本： nginx-1.0.4.tar.gz php-5.3.6.tar.gz mysql-5.5.13.tar.gz 相关支持库： libiconv-1.13.1.tar.gz libmcrypt-2.5.8.tar.gz mcrypt-2.6.8.tar.gz memcache-2.2.6.tgz mhash-0.9.9.9.tar.gz pcre-8.12.tar.gz eaccelerator-0.9.6.1.tar.bz2 PDO_MYSQL-1.0.2.tgz ImageMagick-6.7.0-4.tar.gz imagick-3.0.0.tgz cmake-2.8.4.tar.gz 首先升级系统支持库以及依赖软件 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl [...]]]></description>
			<content:encoded><![CDATA[<p>之前试用了一件安装包安装，安装完后结果一大堆的进程和账户，很臃肿，而且感觉不安全，并且无法体验到最新版本的性能和功能，还是自己手动安装，下面的步骤，仅作记录，欢迎测试和反馈，服务器版本：<br />
CentOS release 5.3 32位</p>
<p>演示使用软件版本：<br />
nginx-1.0.4.tar.gz<br />
php-5.3.6.tar.gz<br />
mysql-5.5.13.tar.gz</p>
<p>相关支持库：<br />
libiconv-1.13.1.tar.gz<br />
libmcrypt-2.5.8.tar.gz<br />
mcrypt-2.6.8.tar.gz<br />
memcache-2.2.6.tgz<br />
mhash-0.9.9.9.tar.gz<br />
pcre-8.12.tar.gz<br />
eaccelerator-0.9.6.1.tar.bz2<br />
PDO_MYSQL-1.0.2.tgz<br />
ImageMagick-6.7.0-4.tar.gz<br />
imagick-3.0.0.tgz<br />
cmake-2.8.4.tar.gz</p>
<p>首先升级系统支持库以及依赖软件<br />
<code><br />
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers patch vixie-cron bison</p>
<p>yum -y install  gcc gcc++ gcc7 libxml2-devel libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel curl curl-devel pam-devel e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers<br />
</code></p>
<p>创建程序存放目录，取得相关软件包<br />
<code><br />
mkdir -p /data/software<br />
cd /data/software</p>
<p>wget http://nginx.org/download/nginx-1.0.4.tar.gz<br />
wget http://cn.php.net/get/php-5.3.6.tar.gz/from/am.php.net/mirror<br />
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.13.tar.gz/from/http://mysql.mirrors.hoobly.com/</p>
<p>wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz<br />
wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&#038;big_mirror=0"<br />
wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&#038;big_mirror=0"<br />
wget http://pecl.php.net/get/memcache-2.2.6.tgz<br />
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&#038;big_mirror=0"<br />
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz<br />
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2<br />
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz<br />
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.7.0-4.tar.gz<br />
wget http://pecl.php.net/get/imagick-3.0.0.tgz<br />
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz</p>
<p></code></p>
<p><span id="more-85"></span></p>
<p>nginx、php、mysql最新版本，可以从官方网站取得的，安装可能会遇到一些新问题，请google解决<br />
<code></p>
<p>http://nginx.org/</p>
<p>http://cn.php.net/get/php-5.3.6.tar.gz/from/a/mirror</p>
<p>#选择版本MySQL Community Server>>Source Code>>Generic Linux (Architecture Independent), Compressed TAR Archive</p>
<p>http://www.mysql.com/downloads/mysql/</p>
<p></code></p>
<p>先安装cmake,新版mysql已经采用cmake编译,使用它编译mysql几分钟即可完成<br />
<code><br />
tar zxvf cmake-2.8.4.tar.gz<br />
cd cmake-2.8.4<br />
./configure --prefix=/usr<br />
make<br />
make install<br />
cd ../<br />
</code></p>
<p>安装mysql<br />
<code><br />
/usr/sbin/groupadd mysql<br />
/usr/sbin/useradd -g mysql mysql</p>
<p>tar xvf mysql-5.5.13.tar.gz<br />
cd mysql-5.5.13</p>
<p>cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \<br />
-DMYSQL_DATADIR=/data/mysql/data \<br />
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \<br />
-DWITH_INNOBASE_STORAGE_ENGINE=1 \<br />
-DWITH_MYISAM_STORAGE_ENGINE=1 \<br />
-DENABLED_LOCAL_INFILE=1 \<br />
-DMYSQL_TCP_PORT=3306 \<br />
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \<br />
-DDEFAULT_CHARSET=utf8 \<br />
-DDEFAULT_COLLATION=utf8_general_ci \<br />
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \<br />
-DWITH_DEBUG=0 \<br />
-DWITH_READLINE=1 \<br />
-DWITH_SSL=yes \<br />
-DSYSCONFDIR=/data/mysql</p>
<p>make<br />
make install<br />
chmod +w /usr/local/mysql<br />
chown -R mysql:mysql /usr/local/mysql<br />
#根据安装成功的提示，复制启动脚本到相应的位置，设置权限，即可通过其正确的启动服务<br />
cp support-files/mysql.server /data/mysql.server<br />
chown mysql:mysql /data/mysql.server<br />
chmod 755 /data/mysql.server<br />
cd ../</p>
<p>#启动mysql，默认密码为空，请自行修改<br />
/data/mysql.server start<br />
#mysql客户端主程序所在位置如下，直接执行可以连接访问mysql服务<br />
/usr/local/mysql/bin/mysql</p>
<p></code></p>
<p>接下来开始安装繁琐的php<br />
编译安装PHP 5.3.6所需的支持库<br />
<code><br />
tar zxvf libiconv-1.13.1.tar.gz<br />
cd libiconv-1.13.1/<br />
./configure --prefix=/usr/local<br />
make<br />
make install<br />
cd ../</p>
<p>tar zxvf libmcrypt-2.5.8.tar.gz<br />
cd libmcrypt-2.5.8<br />
./configure<br />
make<br />
make install<br />
/sbin/ldconfig</p>
<p>cd libltdl/<br />
./configure --enable-ltdl-install<br />
make<br />
make install<br />
cd ../../</p>
<p>tar zxvf mhash-0.9.9.9.tar.gz<br />
cd mhash-0.9.9.9<br />
./configure<br />
make<br />
make install<br />
cd ../</p>
<p>#后续编译会用到的库<br />
ln -sf /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la<br />
ln -sf /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so<br />
ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4<br />
ln -sf /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8<br />
ln -sf /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config<br />
ln -sf /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2<br />
ln -sf /usr/local/lib/libmhash.a /usr/lib/libmhash.a<br />
ln -sf /usr/local/lib/libmhash.la /usr/lib/libmhash.la<br />
ln -sf /usr/local/lib/libmhash.so /usr/lib/libmhash.so<br />
ln -sf /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2<br />
ln -sf /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1<br />
yum -y  install libtool-ltdl-devel<br />
ln -sf /usr/lib64/libltdl.a /usr/local/lib/libltdl.a<br />
ln -s  /usr/local/bin/libmcrypt_config  /usr/bin/libmcrypt_config<br />
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18<br />
ldconfig</p>
<p>tar zxvf mcrypt-2.6.8.tar.gz<br />
cd mcrypt-2.6.8/<br />
/sbin/ldconfig<br />
./configure<br />
make<br />
make install<br />
cd ../<br />
</code></p>
<p>安装PHP<br />
<code><br />
tar xvf php-5.3.6.tar.gz<br />
cd php-5.3.6</p>
<p>./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \<br />
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config \<br />
--with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib \<br />
--with-libxml-dir=/usr --enable-xml --disable-rpath  --enable-safe-mode --enable-bcmath \<br />
--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers \<br />
--enable-mbregex  --enable-fpm  --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf \<br />
--with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc \<br />
--enable-zip --enable-soap --without-pear</p>
<p>make ZEND_EXTRA_LIBS='-liconv'</p>
<p>make install<br />
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm<br />
chmod a+x  /etc/init.d/php-fpm<br />
cp -f php.ini-production /usr/local/php/etc/php.ini</p>
<p>cd ../</p>
<p></code></p>
<p>安装PHP扩展<br />
<code><br />
tar xvf memcache-2.2.6.tgz<br />
cd memcache-2.2.6<br />
/usr/local/php/bin/phpize<br />
./configure --with-php-config=/usr/local/php/bin/php-config<br />
make<br />
make install<br />
cd ../</p>
<p>tar jxvf eaccelerator-0.9.6.1.tar.bz2<br />
cd eaccelerator-0.9.6.1/<br />
/usr/local/php/bin/phpize<br />
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config<br />
make<br />
make install<br />
cd ../</p>
<p>tar zxvf PDO_MYSQL-1.0.2.tgz<br />
cd PDO_MYSQL-1.0.2/<br />
/usr/local/php/bin/phpize<br />
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql<br />
make<br />
make install<br />
cd ../</p>
<p>tar xvf ImageMagick-6.7.0-4.tar.gz<br />
cd ImageMagick-6.7.0-4<br />
./configure<br />
make<br />
make install<br />
cd ../</p>
<p>tar zxvf imagick-3.0.0.tgz<br />
cd imagick-3.0.0/<br />
/usr/local/php/bin/phpize<br />
./configure --with-php-config=/usr/local/php/bin/php-config<br />
make<br />
make install<br />
cd ../<br />
</code><br />
      手工修改：查找/usr/local/php/etc/php.ini中的extension_dir = &#8220;./&#8221;<br />
　　修改为extension_dir = &#8220;/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/&#8221;<br />
　　并在此行后增加以下几行，然后保存：<br />
extension = &#8220;memcache.so&#8221;<br />
extension = &#8220;pdo_mysql.so&#8221;<br />
extension = &#8220;imagick.so&#8221;</p>
<p>　　再查找output_buffering = Off<br />
　　修改为output_buffering = On</p>
<p>　　再查找; cgi.fix_pathinfo=0<br />
　　修改为cgi.fix_pathinfo=0，防止Nginx文件类型错误解析漏洞。</p>
<p>mkdir -p /tmp/eaccelerator_cache<br />
vi /usr/local/php/etc/php.ini<br />
在末尾加入：<br />
<code><br />
[eaccelerator]<br />
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"<br />
eaccelerator.shm_size="64"<br />
eaccelerator.cache_dir="/tmp/eaccelerator_cache"<br />
eaccelerator.enable="1"<br />
eaccelerator.optimizer="1"<br />
eaccelerator.check_mtime="1"<br />
eaccelerator.debug="0"<br />
eaccelerator.filter=""<br />
eaccelerator.shm_max="0"<br />
eaccelerator.shm_ttl="3600"<br />
eaccelerator.shm_prune_period="3600"<br />
eaccelerator.shm_only="0"<br />
eaccelerator.compress="1"<br />
eaccelerator.compress_level="9"<br />
</code></p>
<p>安装nginx<br />
<code><br />
tar zxvf pcre-8.12.tar.gz<br />
cd pcre-8.12/<br />
./configure<br />
make &#038;&#038; make install<br />
cd ..</p>
<p>tar xvf nginx-1.0.4.tar.gz<br />
cd nginx-1.0.4/<br />
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module<br />
make &#038;&#038; make install<br />
cd ..<br />
</code></p>
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html' title='通过rpm方式安装lnmp和一键安装lnmp服务'>通过rpm方式安装lnmp和一键安装lnmp服务</a></li>
<li><a href='http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html' title='FEEDIY.COM网站地图在线生成工具'>FEEDIY.COM网站地图在线生成工具</a></li>
<li><a href='http://www.orzero.net/2011/08/centos%e4%b8%8b%e6%9e%b6%e8%ae%besocks5%e6%9c%8d%e5%8a%a1.html' title='centos下架设socks5服务'>centos下架设socks5服务</a></li>
<li><a href='http://www.orzero.net/2011/05/%e6%b2%a1%e6%9c%89%e6%9c%80%e7%8c%9b%ef%bc%8c%e5%8f%aa%e6%9c%89%e6%9b%b4%e7%8c%9b%ef%bc%81.html' title='没有最猛，只有更猛！'>没有最猛，只有更猛！</a></li>
<li><a href='http://www.orzero.net/2011/04/mysql-5-1-zh-manual.html' title='mysql 5.1 中文参考手册'>mysql 5.1 中文参考手册</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>squid配置</title>
		<link>http://www.orzero.net/2011/06/squid%e9%85%8d%e7%bd%ae.html</link>
		<comments>http://www.orzero.net/2011/06/squid%e9%85%8d%e7%bd%ae.html#comments</comments>
		<pubDate>Wed, 01 Jun 2011 08:50:56 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=74</guid>
		<description><![CDATA[简介 普通代理 透明代理 反向代理 故障处理 一个范例 一个限制访问的范例 官方网站：http://www.squid-cache.org/ 相关技术网站：http://www.visolve.com/ 一. 代理服务简介 返回 1. 什么是代理服务器(Proxy Server) 代理服务可以代表其它计算机传递数据包或信息,这些数据包和信息包括网页、电子邮件、多媒体文件和其它网络应用程序等。通过它的文件缓存和访问控制等功能，可以实现快速浏览和对用户访问的有效管理。 Web代理服务器(通常所说的代理服务器)是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时，浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求，由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。 而且，大部分代理服务器都具有缓冲的功能，就好象一个大的Cache，它有很大的存储空间，它不断将新取得数据储存到它本机的存储器上，如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的，那么它就不重新从Web服务器取数据，而直接将存储器上的数据传送给用户的浏览器，这样就能显著提高浏览速度和效率。 更重要的是：代理服务器是 Internet链路级网关所提供的一种重要的安全功能，它的工作主要在开放系统互联 (OSI) 模型的对话层。主要的功能有： 1、连接Internet与Intranet 充当firewall（防火墙）：因为所有内部网的用户通过代理服务器访问外界时，只映射为一个IP地址，所以外界不能直接访问到内部网；同时可以设置 IP地址过滤，限制内部网对外部的访问权限；另外，两个没有互联的内部网，也可以通过第三方的代理服务器进行互联来交换信息。 2、共享因特网连接，节省IP开销：如前面所讲，所有用户对外只占用一个IP，所以不必租用过多的IP地址，降低网络的维护成本。这样，局域局内没有与外网相连的众多机器就可以通过内网的一台代理服务器连接到外网，大大减少费用。当然也有它不利的一面，如许多网络黑客通过这种方法隐藏自己的真实IP地址，而逃过监视。 3、提高访问速度，节约通信带宽。而且通常代理服务器都设置一个较大的硬盘缓冲区（可能高达几个GB或更大），当有外界的信息通过时，同时也将其保存到缓冲区中，当其他用户再访问相同的信息时，则直接由缓冲区中取出信息，传给用户，从而达到提高访问速度的目的。 2. 代理服务器的硬件需求 代理服务器对于硬件的要求相当的高！因为我们架设代理服务器的目的就是希望能够加快网络的传输速度因此，虽然代理服务器几乎在任何的 Linux 系统上面都能跑，但是代理服务器最好还是有较高的硬件配置： CPU 足够好； RAM 足够大，这也是很重要的一个硬件参数 Hard Disk 最好能用 SCSI 接口的，因为速度与稳定度都比较好！如果不能的话，那么 IDE 接口的硬盘由于目前速度也越来越快，所以使用 IDE 也没有问题，但是最好是『多块硬盘』的架构，例如我总共需要 30 GB 的硬盘空间，那么最好是 10 GB 的硬盘三块这样的架构较佳。 最好在架设代理服务器时，将整体主机的规划做好，并且让代理服务器主机的服务单纯一点，最好只负责代理服务 每颗硬盘的容量不需要太大，此外，最好将硬盘分割一下，一个分区在 2~4 GB [...]]]></description>
			<content:encoded><![CDATA[<p><a name="top"></a><a href="#top">简介</a></p>
<p><a href="#conf">普通代理</a></p>
<p><a href="#transconf">透明代理</a></p>
<p><a href="#reverseconf">反向代理</a></p>
<p><a href="#troubleshoot">故障处理</a></p>
<p><a href="#example1">一个范例</a></p>
<p><a href="#example2">一个限制访问的范例</a></p>
<p>官方网站：http://www.squid-cache.org/</p>
<p>相关技术网站：http://www.visolve.com/</p>
<h2><a name="intro"></a>一. 代理服务简介</h2>
<p><a href="#top">返回</a></p>
<h3>1. 什么是代理服务器(Proxy Server)</h3>
<p>代理服务可以代表其它计算机传递数据包或信息,这些数据包和信息包括网页、电子邮件、多媒体文件和其它网络应用程序等。通过它的文件缓存和访问控制等功能，可以实现快速浏览和对用户访问的有效管理。</p>
<p>Web代理服务器(通常所说的代理服务器)是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时，浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求，由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。 而且，大部分代理服务器都具有缓冲的功能，就好象一个大的Cache，它有很大的存储空间，它不断将新取得数据储存到它本机的存储器上，如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的，那么它就不重新从Web服务器取数据，而直接将存储器上的数据传送给用户的浏览器，这样就能显著提高浏览速度和效率。</p>
<p>更重要的是：代理服务器是 Internet链路级网关所提供的一种重要的安全功能，它的工作主要在开放系统互联 (OSI) 模型的对话层。主要的功能有：</p>
<p>1、连接Internet与Intranet 充当firewall（防火墙）：因为所有内部网的用户通过代理服务器访问外界时，只映射为一个IP地址，所以外界不能直接访问到内部网；同时可以设置 IP地址过滤，限制内部网对外部的访问权限；另外，两个没有互联的内部网，也可以通过第三方的代理服务器进行互联来交换信息。</p>
<p>2、共享因特网连接，节省IP开销：如前面所讲，所有用户对外只占用一个IP，所以不必租用过多的IP地址，降低网络的维护成本。这样，局域局内没有与外网相连的众多机器就可以通过内网的一台代理服务器连接到外网，大大减少费用。当然也有它不利的一面，如许多网络黑客通过这种方法隐藏自己的真实IP地址，而逃过监视。</p>
<p>3、提高访问速度，节约通信带宽。而且通常代理服务器都设置一个较大的硬盘缓冲区（可能高达几个GB或更大），当有外界的信息通过时，同时也将其保存到缓冲区中，当其他用户再访问相同的信息时，则直接由缓冲区中取出信息，传给用户，从而达到提高访问速度的目的。</p>
<p><span id="more-74"></span></p>
<h3>2. 代理服务器的硬件需求</h3>
<p>代理服务器对于硬件的要求相当的高！因为我们架设代理服务器的目的就是希望能够加快网络的传输速度因此，虽然代理服务器几乎在任何的 Linux 系统上面都能跑，但是代理服务器最好还是有较高的硬件配置：</p>
<p>CPU 足够好；</p>
<p>RAM 足够大，这也是很重要的一个硬件参数</p>
<p>Hard Disk 最好能用 SCSI 接口的，因为速度与稳定度都比较好！如果不能的话，那么 IDE 接口的硬盘由于目前速度也越来越快，所以使用 IDE 也没有问题，但是最好是『多块硬盘』的架构，例如我总共需要 30 GB 的硬盘空间，那么最好是 10 GB 的硬盘三块这样的架构较佳。 最好在架设代理服务器时，将整体主机的规划做好，并且让代理服务器主机的服务单纯一点，最好只负责代理服务</p>
<p>每颗硬盘的容量不需要太大，此外，最好将硬盘分割一下，一个分区在 2~4 GB 之间即可，因为分太大的话资料的搜寻耗费时间较长，但是分区太小又可能造成空间的浪费</p>
<p>cache 是放置在某个目录下的，而最好一个目录底下就是独立的一个partition 。此外，由于 cache 所在的硬盘常常会有资料的存取，因此可能此一硬盘的损耗率会比较大，所以这个 cache 所在的硬盘最好不要跟重要数据文件，例如 /， /etc， /usr， /home 等等重要的系统文件放在一起！</p>
<p>也由于 cache 所在的硬盘资料存取太密集了，所以，硬盘的选择上面需要 (1)转速不能太低； (2)磁头的机械臂需要可以忍受频繁的动作；(3)发热量不可太大，或者可以考虑加装硬盘用风扇。</p>
<p>网络卡与网络周边最好使用 GBytes 的网络卡</p>
<h3>3. 使用squid的好处</h3>
<p>squid是开源软件，性能优秀。并仍在世界各地的squid开发者的共同努力下，不断发展。</p>
<p>快速响应，减少网络阻塞,Squid将远程Internet对象保存为本地拷贝。当本地用户再次访问这些对象时，Squid可以直接快速地提供对这些对象的访问，而不必再次占用带宽访问远程服务器上的对象。</p>
<p>增强访问控制，提高安全性。可以针对特定的的网站、用户、网络、数据类型实施访问控制</p>
<p>squid可以工作在普通代理模式、透明代理模式各反向代理模式</p>
<h3>4. squid的结构</h3>
<p>多个squid代理服务器可以通过icp协议相互沟通，形成树形层次关系（父代理、兄弟代理、子代理），构建代理服务器群。</p>
<h2><a name="conf"></a>二. squid.conf的典型配置（普通代理）</h2>
<p><a href="#top">返回</a></p>
<h3>1. 配置</h3>
<p>#vi /etc/squid/squid.conf</p>
<p>#http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128,除下面的形式外,也可以是http_port 192.168.63.50:3128</p>
<p>http_port 3128</p>
<p>icp_port 3130</p>
<p>#缓存目录的设置,可以设置多个缓存目录,语法为:&lt;cache_dir&gt; &lt;aufs|ufs&gt; &lt;目录所在&gt; &lt;MBytes大小&gt; &lt;dir1&gt; &lt;dir2&gt;</p>
<p>cache_dir ufs /var/spool/squid 1000 64 1024</p>
<p>#下面是关于日志文件的放置目录与文件名！</p>
<p>cache_access_log /var/log/squid/access.log</p>
<p>cache_log /var/log/squid/cache.log</p>
<p>cache_store_log /var/log/squid/store.log</p>
<p>pid_filename /var/run/squid.pid</p>
<p>#关闭认证机制，有些版本的　squid 会自动的加入代理认证机制，而普通情况下是不需要的,故找到包括auth_param的行，给它们加上注释</p>
<p>#auth_param basic children 5</p>
<p>#auth_param basic realm Squid proxy-caching web server</p>
<p>#auth_param basic credentialsttl 2 hours</p>
<p>#设置squid用户及用户组、管理员账号</p>
<p>cache_effective_user squid</p>
<p>cache_effective_group squid</p>
<p>cache_mgr youraccount@your.e.mail</p>
<p># 与内存有关的配置：因为我的系统内存很小，所以只给 8 MB！如果您的物理内存很大的情况下，例如 512 MB，可以考虑加大到 64 或 128 MB。</p>
<p>cache_mem 128 MB</p>
<p># 与磁盘容量有关的配置(注：下列的 90 与 95 是百分比 )，如果您的 cache_dir 所在磁盘很大时，可以考虑将 4096 改成 32768 KB</p>
<p>cache_swap_low 90</p>
<p>cache_swap_high 95</p>
<p>maximum_object_size 4096 KB</p>
<p># 与内存保存资料有关的配置</p>
<p>maximum_object_size_in_memory 8 KB</p>
<p>#定义acl(访问控制列表), 语法为:acl&lt;acl&gt; &lt;acl名称&gt; &lt;acl类型&gt; &lt;配置的内容&gt;</p>
<p>#黑体为用户自定义部分</p>
<p>acl All src 0/0</p>
<p>acl Manager proto cache_object</p>
<p>acl Localhost src 127.0.0.1/32</p>
<p>acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535</p>
<p>acl SSL_ports 443 563</p>
<p>acl CONNECT method CONNECT</p>
<p><strong>acl MyNetwork src 192.168.0.0/16</strong></p>
<p>#利用前面定义的acl,定义访问控制规则</p>
<p>http_access allow Manager Localhost</p>
<p>http_access deny Manager</p>
<p>http_access deny !Safe_ports</p>
<p>http_access deny CONNECT !SSL_ports</p>
<p><strong>http_access allow MyNetwork</strong></p>
<p>http_access deny All</p>
<p>#定义与其它代理服务器的关系,语法: &lt;cache_peer&gt; &lt;主机名称&gt; &lt;类别&gt; &lt;http_port&gt; &lt;icp_port&gt; &lt;其它参数&gt;</p>
<p>cache_peer 192.168.60.6 parent 4480 7 no-query default</p>
<p>#设置与其它代理服务器的关系:</p>
<p># &lt;cache_peer_access&gt; &lt;上层 Proxy &gt; &lt;allow|deny&gt; &lt;acl名称&gt;</p>
<p>#cache_peer_access 192.168.60.6 allow aclxxx</p>
<p>#cache_peer_access 192.168.60.6 deny !aclxxx</p>
<p>coredump_dir /var/spool/squid</p>
<h3>2. 激活squid</h3>
<p>1). 在开启squid之前，你应该验证其配置文件是否正确。运行如下命令即可：</p>
<p># squid -k parse</p>
<p>假如你看不到输出，配置文件有效，你能继续后面的步骤。然而，如果配置文件包含错误，squid会告诉你：</p>
<p>2). 初始化cache目录.即建立缓存目录的存储格式</p>
<p>只需在第一次启动squid服务之前执行(在初次运行squid之前，或者无论何时你增加了新的cache_dir，你必须初始化cache目录。)</p>
<p># squid -z</p>
<p>cache目录初始化可能花费一些时间，依赖于cache目录的大小和数量，以及磁盘驱动器的速度。假如你想观察这个过程，请使用-X选项：</p>
<p># squid -zX</p>
<p>3). 启动squid服务</p>
<p># service squid start</p>
<p>假定squid安装在/usr/local/squid目录下,也可以</p>
<p># /usr/local/squid/sbin/squid -sD</p>
<p>4). 停止squid</p>
<p>最安全的停止squid的方法是使用squid -k shutdown命令：</p>
<p># squid -k shutdown</p>
<p>5). 重配置运行中的squid进程</p>
<p>在你了解了更多关于squid的知识后，你会发现对squid.conf文件做了许多改动。为了让新设置生效，你可以关闭和重启squid,或者在squid运行时，重配置它。</p>
<p>重配置运行中的squid最好的方法是使用squid -k reconfigure命令：</p>
<p># squid -k reconfigure</p>
<p>6). 滚动日志文件</p>
<p>除非你在squid.conf里禁止，squid会写大量的日志文件。你必须周期性的滚动日志文件，以阻止它们变得太大。squid将大量的重要信息写入日志，假如写不进去了，squid会发生错误并退出。为了合理控制磁盘空间消耗，在cron里使用如下命令：</p>
<p>%squid -k rotate</p>
<p>例如，如下任务接口在每天的早上4点滚动日志：</p>
<p>0 4 * * * /usr/local/squid/sbin/squid -k rotate</p>
<p>该命令做两件事。首先，它关闭当前打开的日志文件。然后，通过在文件名后加数字扩展名，它重命名cache.log,store.log,和 access.log。例如，cache.log变成cache.log.0,cache.log.0变成cache.log.1,如此继续，滚动到 logfile_rotate选项指定的值。</p>
<p>squid仅仅保存每个日志文件的最后logfile_rotate版本。更老的版本在重命名过程中被删除。假如你想保存更多的拷贝，你需要增加logfile_rotate限制，或者编写脚本用于将日志文件移动到其他位置。 请见13.7章关于滚动日志的其他信息。</p>
<h3>3. 访问控制示例</h3>
<p>1) 禁止访问某个网站</p>
<p>在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件</p>
<p>acl sina dstdomain .sina.com.cn .sina.com</p>
<p>http_access deny sina</p>
<p>或</p>
<p>acl sina dst  58.63.236.26 58.63.236.27 58.63.236.28 58.63.236.29<br />
58.63.236.30 58.63.236.31 58.63.236.32 58.63.236.33 58.63.236.34 58.63.236.35 58.63.236.36 58.63.236.37 58.63.236.38 58.63.236.39<br />
58.63.236.49 58.63.236.50</p>
<p>http_access deny sina</p>
<p>或</p>
<p>acl sina dst www.sina.com.cn</p>
<p>http_access deny sina</p>
<p>2) 禁止来自某些IP地址的访问</p>
<p>在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件</p>
<p>acl zhang src 192.168.63.6/32</p>
<p>http_access deny zhang</p>
<p>3) 禁止在某些时段访问</p>
<p>acl Working_hours MTWHF 08:00-17:00</p>
<p>http_access allow Working_hours</p>
<p>http_access deny !Working_hours</p>
<p>4) 禁止某个代理客户建立过多连接</p>
<p>acl OverConnLimit maxconn 4</p>
<p>http_access deny OverConnLimit</p>
<h2><a name="transconf"></a>三. 透明代理</h2>
<p><a href="#top">返回</a></p>
<p>让我们现在来想象一个联机状态，就是你有一整组内部网络，而这个内部网络都是透过 NAT 主机联机出去的。那么我们谈过，就是在一个内部网很大的情况下，使用 Proxy 是一个很不错的选择，因为至少他可以减轻带宽负荷！不过，遗憾的是，架设 Proxy 的时候，也要使用者在浏览器上面设置代理！那么有没有办法在『使用者不需要在浏览器上面进行任何配置，就可以实现以 Proxy 帮助使用者联接Internet？当然有啦！那就是 Transparent Proxy 啦！也有人翻译成『透明代理服务器』，其原理是：</p>
<p>当使用者经过 NAT 服务器来联机进入 Internet 时，假如使用的 Internet 协议为 80 (也就是 WWW) ，那么就将这个要求交给 Proxy 来工作，以达到代理服务器的功能。</p>
<p>呵呵！也就是说，当使用者是经过 NAT 主机联机出去时，只要让 NAT 主机发现『咦！你是要去读取 www 的资料对吧！好！那么这个动作由 Proxy 主机帮你搞定！』如此一来，使用者根本就不需要在浏览器上面配置 Proxy 的相关资料，因为这个动作是『由 NAT 主机自己决定的』，所以只要在 NAT 主机上面配置妥当即可，使用者不必配置任何资料呢！那么要怎么进行呢？只要两个步骤即可：</p>
<h3>1. 配置 Proxy 主机：</h3>
<p>1) 如果是squid 2.5,需要更改squid配置文件中的下列指令:</p>
<p>[root@test root]# vi /etc/squid/squid.conf</p>
<p>！</p>
<p>httpd_accel_host virtual # 告诉web加速器,针对所有的URL</p>
<p>httpd_accel_port 80 # 告诉web加速器，要监听的端口是80！</p>
<p>httpd_accel_with_proxy on # 这个很重要！因为配置 httpd_accel_host 之后， cache 的配置会自动被终止，必须要加上这个配置为 on 之后，才能提供 cache 的功能！</p>
<p>httpd_accel_uses_host_header on</p>
<p>2) 如果是squid 2.6,则只需要更改squid配置文件中的一个指令:</p>
<p>http_port 192.168.63.50:3128 transparent #192.168.63.50 就是squid服务器的地址</p>
<p>[root@test root]#  squid -k reconfigure</p>
<h3>2. 配置 NAT 主机的 port map ：</h3>
<p>再来让我们到 NAT 主机上面看看先，因为需要将 80 这个 port 交给 Proxy 的 3128 来帮忙协助，所以你的防火墙 script 必须要加入这一段才行：</p>
<p>#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 &#8211;dport 80 -j REDIRECT &#8211;to-ports 3128</p>
<p>注意一下，那个 eth0 是『你的 NAT 对内的网卡』，至于 192.168.62.0/24 则是你的内部网域，请依照你的主机实际状态来配置！这样一来，您的 client 端完全不需要进行任何的配置，立刻就可以使用 Proxy 的好处啰</p>
<h3>3. 配置转发</h3>
<p>#echo 1 &gt; /proc/sys/net/ipv4/ip_forward</p>
<p>或：</p>
<p>#vi /etc/sysctl.conf</p>
<p>net_ipv4_forword=1</p>
<p>#vi /etc/sysconfig/network</p>
<p>FORWARD_IPV4=yes</p>
<p>#service network restart</p>
<h3>4. 配置客户端</h3>
<p>将另外一台计算机作为客户机进行测试，需要将网关、首选DNS服务器指向设置透明代理的服务器，清除客户端的浏览器代理设置。</p>
<h2><a name="reverseconf"></a>四. 反向代理</h2>
<p><a href="#top">返回</a></p>
<p>代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式，使用代理上网可以节约紧缺的IP地址资源，而且可以阻断外部主机对内部主机的访问，使内部网主机免受外部网主机的攻击。但是，如果想让互联网上的主机访问内部网的主机资源（例如：Web站点），又想使内部网主机免受外部网主机攻击，一般的代理服务是不能实现的，需要使用反向代理来实现。</p>
<p>什么是反向代理呢？其实，反向代理也就是通常所说的WEB服务器加速，它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器（即：WEB反向代理服务器）来降低实际的WEB服务器的负载。典型的结构如下图所示：</p>
<p>Web服务器加速（反向代理）是针对Web服务器提供加速功能的。它作为代理Cache，但并不针对浏览器用户，而针对一台或多台特定Web服务器（这也是反向代理名称的由来）。实施反向代理（如上图所示），只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时，通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器，浏览器可以与它连接，无需再直接与Web服务器相连。因此，大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患，而且能够很大程度上减轻web服务器的负担，提高访问速度。</p>
<p>1． Squid反向代理单个后台WEB服务器</p>
<p><span style="font-size: 9.0pt; font-family: Verdana;" lang="EN-US"><a href="http://www.orzero.net/wp-content/uploads/2011/06/reverse_mult.gif"></a><a href="http://www.orzero.net/wp-content/uploads/2011/06/reverse_typical.gif"><img class="alignnone size-full wp-image-76" title="reverse_typical" src="http://www.orzero.net/wp-content/uploads/2011/06/reverse_typical.gif" alt="" width="230" height="260" /></a></span></p>
<p>1) 如果WEB服务器和反向代理服务器是两台单独的机器（一般的反向代理应该有两块网卡分别连接了内外部网络）。那么，应该修改下面的内容来设置反向代理服务。</p>
<p>http_port 80 #squid监听的端口</p>
<p>httpd_accel_host 172.16.250.250 #内部WEB服务器的IP地址</p>
<p>httpd_accel_port 80 #WEB服务的端口号</p>
<p>httpd_accel_single_host on #转发没有缓冲的请求到一台单独的机器，squid被设置成仅对单一的web服务器作反向代理</p>
<p>httpd_accel_with_proxy on #如果希望squid既作反向代理服务器又作本地机器的上网代理，需要将此设为on，默认是off</p>
<p>httpd_accel_uses_host_header off　#在HTTP协议1.1中，HTTP请求包括一个主机头信息，指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。</p>
<p>2) 如果WEB服务器和反向代理服务器是同一台机器。那么，应该设置WEB服务器的监听端口为非80端口（比如：81端口）。要修改的内容如下：</p>
<p>http_port 80 #squid监听的端口</p>
<p>httpd_accel_host localhost #内部WEB服务器的IP地址</p>
<p>httpd_accel_port 81 #WEB服务器的端口号</p>
<p>httpd_accel_single_host on</p>
<p>httpd_accel_with_proxy on</p>
<p>httpd_accel_uses_host_header off</p>
<p>2．Squid反向代理多个后台WEB服务器</p>
<p>我们可以用Squid反向代理多个后台WEB服务器。例如：我们可以配置squid同时反向代理www.abc.com, www.xyz.com, www.lmn.com三个后台WEB服务器，示意图如下：</p>
<p><span style="font-size: 9.0pt; font-family: Verdana;" lang="EN-US"><a href="http://www.orzero.net/wp-content/uploads/2011/06/reverse_mult1.gif"><img class="alignnone size-full wp-image-77" title="reverse_mult" src="http://www.orzero.net/wp-content/uploads/2011/06/reverse_mult1.gif" alt="" width="230" height="260" /></a></span></p>
<p>Squid的配置如下：</p>
<p>httpd_accel_host virtual</p>
<p>httpd_accel_port 80</p>
<p>httpd_accel_single_host off</p>
<p>httpd_accel_uses_host_header on</p>
<p>（注意:编译Squid时需激活Internal DNS选项）</p>
<p>然后设置设置反响代理需要的域名解析（Internet用户通过这里解析三个网站的域名）如下：</p>
<p>www.abc.com 202.102.240.74</p>
<p>www.xyz.com 202.102.240.74</p>
<p>www.lmn.com 202.102.240.74</p>
<p>使三个域名都指向反向代理服务器的IP地址202.102.240.74。</p>
<p>下面设置反向代理所需要的DNS入口信息（即设置内部DNS，仅仅是squid在内部使用，Internet用户不可见）。有两种方法可以设置内部DNS，使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。</p>
<p>使用内部DNS服务器的资源记录如下：</p>
<p>www.abc.com IN A 192.168.62.2</p>
<p>www.xyz.com IN A 192.168.62.3</p>
<p>www.lmn.com IN A 192.168.62.4</p>
<p>如果使用/etc/hosts文件来实现内部DNS（编译时应使用disable internal dns选项）,编辑/etc/hosts文件添加如下条目：</p>
<p>192.168.62.2 www.abc.com</p>
<p>192.168.62.3 www.xyz.com</p>
<p>192.168.62.4 www.lmn.com</p>
<p>结论：通过本文中的论述和相关实例，可以看出，反向代理方式不单是一种WEB服务器加速器，而且使也一种对外提供Web发布时使用的有效的防火墙技术，使用它不但能节约紧缺的IP地址资源，加速WEB服务器的访问速度，而且能够保护WEB主机，因此能够适应多种应用场合。</p>
<h2><a name="troubleshoot"></a>五. 故障处理</h2>
<p><a href="#top">返回</a></p>
<p>1. 如果在启动squid时出现下述信息:</p>
<p>% squid -Nd1</p>
<p>FATAL: Could not determine fully qualified hostname. Please set &#8216;visible_hostname&#8217;</p>
<p>则需要在squid的配置文件中设置visible_hostname,如:</p>
<p>visible_hostname squid.packet-pushers.net</p>
<p>2. 如果在配置squid代理后,客户访问出现以下提示:</p>
<p>ERROR</p>
<p>The requested URL could not be retrieved</p>
<p>While trying to retrieve the URL: http://&#8230;/</p>
<p>可能需要在squid配置文件中加入以下指令:</p>
<p>always_direct allow all</p>
<h2><a name="example1"></a>六. 一个范例</h2>
<p><a href="#top">返回</a></p>
<p>http_port 3128</p>
<p>icp_port 0</p>
<p>cache_mem 64 MB</p>
<p>cache_swap_low 80</p>
<p>cache_swap_high 85</p>
<p>maximum_object_size 32000 KB</p>
<p>cache_dir ufs /var/spool/squid 500 64 1024</p>
<p>cache_access_log /var/log/squid/access.log</p>
<p>cache_log /var/log/squid/cache.log</p>
<p>cache_store_log /var/log/squid/store.log</p>
<p>pid_filename /var/run/squid.pid</p>
<p>acl all src 0.0.0.0/0.0.0.0</p>
<p>acl alldst dst 0.0.0.0/0.0.0.0</p>
<p>acl manager proto cache_object</p>
<p>acl localhost src 127.0.0.1/255.255.255.255</p>
<p>acl to_localhost dst 127.0.0.0/8</p>
<p>acl 163 url_regex 163.com</p>
<p>acl sina url_regex sina.com.cn</p>
<p>acl myclient src 192.168.6.0/24</p>
<p>http_access allow 163</p>
<p>http_access allow sina</p>
<p>http_access deny !sina</p>
<p>http_access deny !163</p>
<p>cache_peer 192.168.1.8 parent 8080 7 no-query default</p>
<p>cache_effective_user squid</p>
<p>cache_effective_group squid</p>
<p>cache_mgr root@net03.org</p>
<p>coredump_dir /var/spool/squid</p>
<h2><a name="example2"></a>七. 一个限制访问的范例</h2>
<p><a href="#top">返回</a></p>
<p>http_port 3128</p>
<p>icp_port 0</p>
<p>cache_mem 64 MB</p>
<p>cache_swap_low 80</p>
<p>cache_swap_high 85</p>
<p>maximum_object_size 32000 KB</p>
<p>cache_dir ufs /var/spool/squid 500 64 1024</p>
<p>cache_access_log /var/log/squid/access.log</p>
<p>cache_log /var/log/squid/cache.log</p>
<p>cache_store_log /var/log/squid/store.log</p>
<p>pid_filename /var/run/squid.pid</p>
<p>acl all src 0.0.0.0/0.0.0.0</p>
<p>acl manager proto cache_object</p>
<p>acl localhost src 127.0.0.1/255.255.255.255</p>
<p>acl to_localhost dst 127.0.0.0/8</p>
<p>acl SSL_ports port 443 563</p>
<p>acl Safe_ports port 80 # http</p>
<p>acl Safe_ports port 21 # ftp</p>
<p>acl Safe_ports port 443 563 # https, snews</p>
<p>acl Safe_ports port 70 # gopher</p>
<p>acl Safe_ports port 210 # wais</p>
<p>acl Safe_ports port 1025-65535 # unregistered ports</p>
<p>acl Safe_ports port 280 # http-mgmt</p>
<p>acl Safe_ports port 488 # gss-http</p>
<p>acl Safe_ports port 591 # filemaker</p>
<p>acl Safe_ports port 777 # multiling http</p>
<p>acl CONNECT method CONNECT</p>
<p>acl myclient src 192.168.6.0/24</p>
<p>acl 163 url_regex 163.com</p>
<p>acl sina url_regex sina.com.cn</p>
<p># Only allow cachemgr access from localhost</p>
<p>http_access allow manager localhost</p>
<p>http_access deny manager</p>
<p># Deny requests to unknown ports</p>
<p>http_access deny !Safe_ports</p>
<p># Deny CONNECT to other than SSL ports</p>
<p>http_access deny CONNECT !SSL_ports</p>
<p>cache_peer 192.168.1.8 parent 8080 7 no-query default</p>
<p>acl ip_acl src 192.168.6.0/24</p>
<p>acl time_acl time M T W H F A S 9:00-19:00</p>
<p>http_access allow ip_acl time_acl</p>
<p>cache_peer_access 192.168.1.8 allow 163</p>
<p>cache_peer_access 192.168.1.8 deny !163</p>
<p>cache_peer_access 192.168.1.8 allow sina</p>
<p>cache_peer_access 192.168.1.8 deny !sina</p>
<p>cache_effective_user squid</p>
<p>cache_effective_group squid</p>
<p>cache_mgr root@net03.org</p>
<p>coredump_dir /var/spool/squid</p>
<p>#acl pl800_arp arp 00:08:c7:9f:34:41</p>
<p>#http_access allow pl800_arp<br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html' title='FEEDIY.COM网站地图在线生成工具'>FEEDIY.COM网站地图在线生成工具</a></li>
<li><a href='http://www.orzero.net/2011/04/linux%e4%b8%8b%e6%9f%a5%e6%89%be%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9.html' title='linux下查找文件内容'>linux下查找文件内容</a></li>
<li><a href='http://www.orzero.net/2011/03/linux-centos-%e5%bf%ab%e9%80%9f%e5%ae%89%e8%a3%85-memcachedb.html' title='Linux（CentOS 5.x）快速安装 memcachedb '>Linux（CentOS 5.x）快速安装 memcachedb </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/06/squid%e9%85%8d%e7%bd%ae.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>很囧的招聘启示</title>
		<link>http://www.orzero.net/2011/05/%e5%be%88%e5%9b%a7%e7%9a%84%e6%8b%9b%e8%81%98%e5%90%af%e7%a4%ba.html</link>
		<comments>http://www.orzero.net/2011/05/%e5%be%88%e5%9b%a7%e7%9a%84%e6%8b%9b%e8%81%98%e5%90%af%e7%a4%ba.html#comments</comments>
		<pubDate>Tue, 31 May 2011 04:26:06 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[javascripty]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[招聘]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=70</guid>
		<description><![CDATA[var 或零 = {}, please = true; 或零.prototype = { 'Professional': '精通Web前端开发技术(HTML/CSS/Javascript等)', 'Geeky': '喜欢各种新鲜有趣的东西，乐于尝试，热爱学习', 'Lazy': '绝不动手做机器能够做的事情', 'Crazy': '一个拥有数种新型浏览器但也不忘(WTF)IE，纠结并快乐的人' } for (var key in 或零.prototype) { if (!YOU.prototype[key]) { please = false; } } if (please) { //Just for Fun, Don't try ,The email Non-existent ! alert('mailto:empty@orzero.com'); } 相关文章: 或零日志]]></description>
			<content:encoded><![CDATA[<p><code><br />
var 或零 = {},<br />
    please = true;</p>
<p>或零.prototype = {<br />
    'Professional': '精通Web前端开发技术(HTML/CSS/Javascript等)',<br />
    'Geeky': '喜欢各种新鲜有趣的东西，乐于尝试，热爱学习',<br />
    'Lazy': '绝不动手做机器能够做的事情',<br />
    'Crazy': '一个拥有数种新型浏览器但也不忘(WTF)IE，纠结并快乐的人'<br />
}</p>
<p>for (var key in 或零.prototype) {<br />
    if (!YOU.prototype[key]) {<br />
        please = false;<br />
    }<br />
}</p>
<p>if (please) {<br />
    //Just for Fun, Don't try ,The email Non-existent !<br />
    alert('mailto:empty@orzero.com');<br />
}<br />
</code><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/05/%e5%be%88%e5%9b%a7%e7%9a%84%e6%8b%9b%e8%81%98%e5%90%af%e7%a4%ba.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>没有最猛，只有更猛！</title>
		<link>http://www.orzero.net/2011/05/%e6%b2%a1%e6%9c%89%e6%9c%80%e7%8c%9b%ef%bc%8c%e5%8f%aa%e6%9c%89%e6%9b%b4%e7%8c%9b%ef%bc%81.html</link>
		<comments>http://www.orzero.net/2011/05/%e6%b2%a1%e6%9c%89%e6%9c%80%e7%8c%9b%ef%bc%8c%e5%8f%aa%e6%9c%89%e6%9b%b4%e7%8c%9b%ef%bc%81.html#comments</comments>
		<pubDate>Tue, 31 May 2011 02:30:01 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[orzero]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[网络蜘蛛]]></category>
		<category><![CDATA[采集]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=66</guid>
		<description><![CDATA[没搞懂咋回事，虽然一直没限制搜索引擎的采集，但一直也没什么流量，今天服务器居然停止响应了，登上机器一查询，300多个连接进程，俺vps根本吃不消，看来配置还有待优化，重启服务后，流量还是洪水般的涌来，懒得限制了，这个月流量还有不少，痛并快乐着！ 看看把我机器搞死的“罪魁祸首”，大部分都是微软的蜘蛛，I服了U，你丫能不能少开点进程采啊！ 分享一条命令行，查看当前网页端口连接ip以及连接数： netstat -nt &#124; grep [你的服务器IP] &#124; awk '{print $5}' &#124; awk -F":" '{print $1}'&#124; sort &#124; uniq -c &#124; sort -r -n 我在服务器上执行上面的命令，得到如下结果： 14 65.52.110.26 13 157.55.16.229 12 65.52.110.22 12 207.46.194.45 11 207.46.199.51 10 65.52.110.23 10 207.46.199.50 10 207.46.199.220 10 207.46.195.229 10 207.46.13.40 10 207.46.13.141 9 65.52.110.88 9 65.52.110.29 9 207.46.13.147 8 [...]]]></description>
			<content:encoded><![CDATA[<p>没搞懂咋回事，虽然一直没限制搜索引擎的采集，但一直也没什么流量，今天服务器居然停止响应了，登上机器一查询，300多个连接进程，俺vps根本吃不消，看来配置还有待优化，重启服务后，流量还是洪水般的涌来，懒得限制了，这个月流量还有不少，痛并快乐着！</p>
<p>看看把我机器搞死的“罪魁祸首”，大部分都是微软的蜘蛛，I服了U，你丫能不能少开点进程采啊！</p>
<p>分享一条命令行，查看当前网页端口连接ip以及连接数：<br />
<code>netstat -nt | grep [你的服务器IP] | awk '{print $5}' | awk -F":" '{print $1}'| sort | uniq -c | sort -r -n </code><br />
我在服务器上执行上面的命令，得到如下结果：<br />
<span id="more-66"></span><br />
<code><br />
     14 65.52.110.26<br />
     13 157.55.16.229<br />
     12 65.52.110.22<br />
     12 207.46.194.45<br />
     11 207.46.199.51<br />
     10 65.52.110.23<br />
     10 207.46.199.50<br />
     10 207.46.199.220<br />
     10 207.46.195.229<br />
     10 207.46.13.40<br />
     10 207.46.13.141<br />
      9 65.52.110.88<br />
      9 65.52.110.29<br />
      9 207.46.13.147<br />
      8 65.52.110.55<br />
      7 207.46.13.143<br />
      6 65.52.110.45<br />
      6 65.52.110.31<br />
      6 125.71.215.101<br />
      5 65.52.110.56<br />
      5 65.52.110.44<br />
      5 65.52.108.60<br />
      5 220.181.125.72<br />
      5 207.46.204.138<br />
      5 207.46.13.85<br />
      5 207.46.13.142<br />
      5 207.46.12.239<br />
      5 207.46.12.238<br />
      4 65.52.110.32<br />
      4 65.52.110.24<br />
      4 65.52.110.15<br />
      4 65.52.108.12<br />
      4 220.181.94.226<br />
      4 220.181.125.70<br />
      4 207.46.204.194<br />
      4 207.46.199.48<br />
      4 207.46.13.98<br />
      4 207.46.13.52<br />
      4 207.46.13.50<br />
      4 207.46.13.49<br />
      4 207.46.13.42<br />
      4 207.46.13.145<br />
      4 207.46.13.100<br />
      3 65.52.110.89<br />
      3 65.52.110.79<br />
      3 65.52.110.51<br />
      3 65.52.110.34<br />
      3 65.52.110.33<br />
      3 65.52.110.13<br />
      3 220.181.94.237<br />
      3 220.181.94.229<br />
      3 220.181.94.222<br />
      3 220.181.94.218<br />
      3 220.181.94.215<br />
      3 220.181.93.8<br />
      3 220.181.93.6<br />
      3 220.181.93.3<br />
      3 220.181.93.1<br />
      3 220.181.125.67<br />
      3 207.46.204.244<br />
      3 207.46.204.227<br />
      3 207.46.199.46<br />
      3 207.46.199.44<br />
      3 207.46.195.242<br />
      3 207.46.195.223<br />
      3 207.46.195.105<br />
      3 207.46.194.39<br />
      3 207.46.13.99<br />
      3 207.46.13.89<br />
      3 207.46.13.87<br />
      3 207.46.13.47<br />
      3 207.46.13.148<br />
      3 207.46.13.131<br />
      2 65.52.110.91<br />
      2 65.52.110.80<br />
      2 65.52.110.78<br />
      2 65.52.110.73<br />
      2 65.52.110.65<br />
      2 65.52.110.48<br />
      2 65.52.110.47<br />
      2 65.52.110.43<br />
      2 65.52.110.36<br />
      2 65.52.110.27<br />
      2 65.52.110.20<br />
      2 65.52.108.14<br />
      2 61.155.149.231<br />
      2 61.155.149.228<br />
      2 61.155.149.216<br />
      2 61.155.149.214<br />
      2 61.155.149.212<br />
      2 61.155.149.207<br />
      2 61.155.149.203<br />
      2 61.155.149.196<br />
      2 58.209.16.83<br />
      2 220.181.94.235<br />
      2 220.181.93.5<br />
      2 220.181.125.162<br />
      2 207.46.204.243<br />
      2 207.46.204.242<br />
      2 207.46.204.235<br />
      2 207.46.204.234<br />
      2 207.46.204.230<br />
      2 207.46.204.229<br />
      2 207.46.204.196<br />
      2 207.46.204.192<br />
      2 207.46.204.189<br />
      2 207.46.204.187<br />
      2 207.46.199.52<br />
      2 207.46.199.45<br />
      2 207.46.199.42<br />
      2 207.46.199.40<br />
      2 207.46.199.39<br />
      2 207.46.195.233<br />
      2 207.46.195.232<br />
      2 207.46.194.87<br />
      2 207.46.194.81<br />
      2 207.46.194.78<br />
      2 207.46.194.72<br />
      2 207.46.194.64<br />
      2 207.46.194.135<br />
      2 207.46.194.101<br />
      2 207.46.13.91<br />
      2 207.46.13.90<br />
      2 207.46.13.84<br />
      2 207.46.13.41<br />
      2 207.46.13.146<br />
      2 207.46.13.138<br />
      2 207.46.13.134<br />
      2 207.46.13.132<br />
      2 157.55.17.104<br />
      2 157.55.112.235<br />
      2 157.55.112.223<br />
      2 119.188.14.239<br />
      2 116.237.134.106<br />
      2 114.219.94.112<br />
      2 114.216.27.241<br />
      1 95.108.249.30<br />
      1 90.231.253.55<br />
      1 78.132.141.222<br />
      1 67.166.98.43<br />
      1 65.52.110.92<br />
      1 65.52.110.87<br />
      1 65.52.110.86<br />
      1 65.52.110.85<br />
      1 65.52.110.75<br />
      1 65.52.110.74<br />
      1 65.52.110.71<br />
      1 65.52.110.68<br />
      1 65.52.110.67<br />
      1 65.52.110.66<br />
      1 65.52.110.64<br />
      1 65.52.110.50<br />
      1 65.52.110.49<br />
      1 65.52.110.46<br />
      1 65.52.110.37<br />
      1 65.52.110.28<br />
      1 65.52.110.19<br />
      1 65.52.110.18<br />
      1 65.52.109.61<br />
      1 65.52.108.58<br />
      1 65.52.108.13<br />
      1 61.155.149.245<br />
      1 61.155.149.244<br />
      1 61.155.149.241<br />
      1 61.155.149.239<br />
      1 61.155.149.237<br />
      1 61.155.149.227<br />
      1 61.155.149.220<br />
      1 61.155.149.219<br />
      1 61.155.149.217<br />
      1 61.155.149.215<br />
      1 61.155.149.211<br />
      1 61.155.149.209<br />
      1 61.155.149.208<br />
      1 61.155.149.206<br />
      1 61.135.249.213<br />
      1 59.60.118.59<br />
      1 59.58.187.133<br />
      1 59.58.112.88<br />
      1 59.38.45.234<br />
      1 27.23.15.76<br />
      1 220.181.94.216<br />
      1 220.181.125.68<br />
      1 220.181.108.187<br />
      1 220.181.108.171<br />
      1 220.161.154.51<br />
      1 219.142.137.86<br />
      1 207.46.204.36<br />
      1 207.46.204.31<br />
      1 207.46.204.241<br />
      1 207.46.204.239<br />
      1 207.46.204.238<br />
      1 207.46.204.237<br />
      1 207.46.204.236<br />
      1 207.46.204.197<br />
      1 207.46.204.195<br />
      1 207.46.204.193<br />
      1 207.46.204.188<br />
      1 207.46.204.186<br />
      1 207.46.204.182<br />
      1 207.46.204.181<br />
      1 207.46.204.180<br />
      1 207.46.204.135<br />
      1 207.46.204.127<br />
      1 207.46.199.55<br />
      1 207.46.199.53<br />
      1 207.46.199.49<br />
      1 207.46.199.43<br />
      1 207.46.199.38<br />
      1 207.46.199.37<br />
      1 207.46.199.250<br />
      1 207.46.199.249<br />
      1 207.46.199.244<br />
      1 207.46.199.228<br />
      1 207.46.199.227<br />
      1 207.46.199.226<br />
      1 207.46.199.214<br />
      1 207.46.195.241<br />
      1 207.46.195.239<br />
      1 207.46.195.231<br />
      1 207.46.195.228<br />
      1 207.46.195.224<br />
      1 207.46.195.214<br />
      1 207.46.194.77<br />
      1 207.46.194.71<br />
      1 207.46.194.68<br />
      1 207.46.194.66<br />
      1 207.46.194.51<br />
      1 207.46.194.48<br />
      1 207.46.194.35<br />
      1 207.46.194.149<br />
      1 207.46.194.145<br />
      1 207.46.194.142<br />
      1 207.46.13.96<br />
      1 207.46.13.95<br />
      1 207.46.13.86<br />
      1 207.46.13.46<br />
      1 207.46.13.45<br />
      1 207.46.13.43<br />
      1 207.46.13.140<br />
      1 207.46.13.137<br />
      1 207.46.13.101<br />
      1 207.46.12.61<br />
      1 207.46.12.28<br />
      1 207.46.12.240<br />
      1 207.46.12.237<br />
      1 207.46.12.236<br />
      1 207.46.12.207<br />
      1 207.46.12.166<br />
      1 207.46.12.163<br />
      1 207.46.12.14<br />
      1 207.46.12.109<br />
      1 180.174.118.82<br />
      1 173.3.48.61<br />
      1 157.55.17.103<br />
      1 157.55.16.230<br />
      1 124.115.1.7<br />
      1 121.205.52.109<br />
      1 120.85.223.230<br />
      1 120.32.61.119<br />
      1 119.188.14.246<br />
      1 119.188.14.245<br />
      1 119.188.14.243<br />
      1 119.188.14.242<br />
      1 119.188.14.241<br />
      1 119.188.14.240<br />
      1 119.188.14.236<br />
      1 119.188.14.231<br />
      1 119.188.14.226<br />
      1 119.188.14.212<br />
      1 119.188.14.210<br />
      1 117.26.201.159<br />
      1 116.252.232.11<br />
      1 110.88.40.195<br />
      1 110.75.171.99<br />
</code></p>
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html' title='通过rpm方式安装lnmp和一键安装lnmp服务'>通过rpm方式安装lnmp和一键安装lnmp服务</a></li>
<li><a href='http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html' title='CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程'>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</a></li>
<li><a href='http://www.orzero.net/2011/03/wordpress-rewrite-for-nginx.html' title='全面的针对nginx的wordpress rewrite规则'>全面的针对nginx的wordpress rewrite规则</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/05/%e6%b2%a1%e6%9c%89%e6%9c%80%e7%8c%9b%ef%bc%8c%e5%8f%aa%e6%9c%89%e6%9b%b4%e7%8c%9b%ef%bc%81.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql 5.1 中文参考手册</title>
		<link>http://www.orzero.net/2011/04/mysql-5-1-zh-manual.html</link>
		<comments>http://www.orzero.net/2011/04/mysql-5-1-zh-manual.html#comments</comments>
		<pubDate>Fri, 15 Apr 2011 08:35:20 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[orzero]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[mysql refman]]></category>
		<category><![CDATA[mysql5.1]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[zh]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=57</guid>
		<description><![CDATA[网上只能找到此版本，比较老了，也是官方发布的，英文不错可以去官网看英文原文：http://dev.mysql.com/doc/index.html mysql5.1中文参考手册在线：http://www.orzero.net/mysql/mysql-5.1-zh-manual/ mysql5.1中文参考手册下载：http://www.orzero.net/mysql/refman-5.1-zh.html-chapter.tar.gz 相关文章: 通过rpm方式安装lnmp和一键安装lnmp服务 CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程 Zend Framework 1.8.2 zh manual php中文手册]]></description>
			<content:encoded><![CDATA[<p>网上只能找到此版本，比较老了，也是官方发布的，英文不错可以去官网看英文原文：<a title="mysql manual" href="http://dev.mysql.com/doc/index.html" target="_blank">http://dev.mysql.com/doc/index.html</a></p>
<p>mysql5.1中文参考手册在线：<a title="mysql5.1中文参考手册在线" href="http://www.orzero.net/mysql/mysql-5.1-zh-manual/" target="_blank">http://www.orzero.net/mysql/mysql-5.1-zh-manual/</a></p>
<p>mysql5.1中文参考手册下载：<a title="mysql5.1中文参考手册下载" href="http://www.orzero.net/mysql/refman-5.1-zh.html-chapter.tar.gz" target="_blank">http://www.orzero.net/mysql/refman-5.1-zh.html-chapter.tar.gz</a><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html' title='通过rpm方式安装lnmp和一键安装lnmp服务'>通过rpm方式安装lnmp和一键安装lnmp服务</a></li>
<li><a href='http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html' title='CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程'>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</a></li>
<li><a href='http://www.orzero.net/2011/04/zend-framework-1-8-2-zh-manual.html' title='Zend Framework 1.8.2 zh manual'>Zend Framework 1.8.2 zh manual</a></li>
<li><a href='http://www.orzero.net/2011/04/php_manual_zh.html' title='php中文手册'>php中文手册</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/04/mysql-5-1-zh-manual.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.8.2 zh manual</title>
		<link>http://www.orzero.net/2011/04/zend-framework-1-8-2-zh-manual.html</link>
		<comments>http://www.orzero.net/2011/04/zend-framework-1-8-2-zh-manual.html#comments</comments>
		<pubDate>Fri, 15 Apr 2011 06:25:44 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[framework]]></category>
		<category><![CDATA[orzero]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zh manual]]></category>

		<guid isPermaLink="false">http://www.orzero.net/2011/04/zend-framework-1-8-2-zh-manual.html</guid>
		<description><![CDATA[Zend Framework 1.8.2 中文手册地址在线：http://www.orzero.net/php/ZendFramework-1.8.2-manual-zh/ 打包下载：http://www.orzero.net/php/ZendFramework-1.8.2-manual-zh.zip &#160; 相关文章: mysql 5.1 中文参考手册]]></description>
			<content:encoded><![CDATA[<p>Zend Framework 1.8.2 中文手册地址在线：<a title="zend framework zh manual online,zend framework中文手册在线" href="http://www.orzero.net/php/ZendFramework-1.8.2-manual-zh/" target="_blank">http://www.orzero.net/php/ZendFramework-1.8.2-manual-zh/</a></p>
<p>打包下载：<a title="zend framework zh manual 下载" href="http://www.orzero.net/php/ZendFramework-1.8.2-manual-zh.zip" target="_blank">http://www.orzero.net/php/ZendFramework-1.8.2-manual-zh.zip</a></p>
<p>&nbsp;<br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/04/mysql-5-1-zh-manual.html' title='mysql 5.1 中文参考手册'>mysql 5.1 中文参考手册</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/04/zend-framework-1-8-2-zh-manual.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yii framework manual</title>
		<link>http://www.orzero.net/2011/04/yii-framework-manual.html</link>
		<comments>http://www.orzero.net/2011/04/yii-framework-manual.html#comments</comments>
		<pubDate>Fri, 15 Apr 2011 03:34:12 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[framework]]></category>
		<category><![CDATA[orzero]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[天涯]]></category>
		<category><![CDATA[或零]]></category>
		<category><![CDATA[orzero.com]]></category>
		<category><![CDATA[yii api]]></category>
		<category><![CDATA[yii chm]]></category>
		<category><![CDATA[yii framework]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=52</guid>
		<description><![CDATA[版本：yii-1.1.7.r3135 api参考手册在线版：http://www.orzero.net/yii/docs/1.1.7/api/ 博客快速设计向导：http://www.orzero.net/yii/docs/1.1.7/yii-blog-1.1.7.pdf api参考手册chm版：http://www.orzero.net/yii/docs/1.1.7/yii-api-1.1.7.chm 相关文章: 或零日志]]></description>
			<content:encoded><![CDATA[<p>版本：yii-1.1.7.r3135</p>
<p>api参考手册在线版：<a title="yii framework api 参考手册,yii-api-1.1.7 在线版" href="http://www.orzero.net/yii/docs/1.1.7/api/" target="_blank">http://www.orzero.net/yii/docs/1.1.7/api/</a></p>
<p>博客快速设计向导：<a title="yii framework 博客快速设计向导" href="http://www.orzero.net/yii/docs/1.1.7/yii-blog-1.1.7.pdf" target="_blank">http://www.orzero.net/yii/docs/1.1.7/yii-blog-1.1.7.pdf</a></p>
<p>api参考手册chm版：<a title="yii framework api 参考手册 chm版" href="http://www.orzero.net/yii/docs/1.1.7/yii-api-1.1.7.chm" target="_blank">http://www.orzero.net/yii/docs/1.1.7/yii-api-1.1.7.chm</a></p>
<hr />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li>或零日志</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/04/yii-framework-manual.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下查找文件内容</title>
		<link>http://www.orzero.net/2011/04/linux%e4%b8%8b%e6%9f%a5%e6%89%be%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9.html</link>
		<comments>http://www.orzero.net/2011/04/linux%e4%b8%8b%e6%9f%a5%e6%89%be%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9.html#comments</comments>
		<pubDate>Fri, 15 Apr 2011 02:54:16 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[文件内容]]></category>
		<category><![CDATA[查找]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=45</guid>
		<description><![CDATA[find ./ -type f -name &#8216;*.php&#8217; &#124; xargs grep &#8216;关键词&#8217; 说明：在当前目录找到.php后缀的文件，然后再显示包含有‘关键词’的文件当前行 相关文章: FEEDIY.COM网站地图在线生成工具 Linux（CentOS 5.x）快速安装 memcachedb]]></description>
			<content:encoded><![CDATA[<p>find ./ -type f -name &#8216;*.php&#8217; | xargs grep &#8216;关键词&#8217;</p>
<p>说明：在当前目录找到.php后缀的文件，然后再显示包含有‘关键词’的文件当前行<br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html' title='FEEDIY.COM网站地图在线生成工具'>FEEDIY.COM网站地图在线生成工具</a></li>
<li><a href='http://www.orzero.net/2011/03/linux-centos-%e5%bf%ab%e9%80%9f%e5%ae%89%e8%a3%85-memcachedb.html' title='Linux（CentOS 5.x）快速安装 memcachedb '>Linux（CentOS 5.x）快速安装 memcachedb </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/04/linux%e4%b8%8b%e6%9f%a5%e6%89%be%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php中文手册</title>
		<link>http://www.orzero.net/2011/04/php_manual_zh.html</link>
		<comments>http://www.orzero.net/2011/04/php_manual_zh.html#comments</comments>
		<pubDate>Fri, 15 Apr 2011 02:09:16 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[orzero]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[chm]]></category>
		<category><![CDATA[manual]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=46</guid>
		<description><![CDATA[最新在线版：http://www.orzero.net/php_manual_zh/ 离线chm版：http://www.orzero.net/php_manual_zh/php_manual_zh.chm 相关文章: FEEDIY.COM网站地图在线生成工具 通过rpm方式安装lnmp和一键安装lnmp服务 CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程 mysql 5.1 中文参考手册 PHP常见笔试题汇总]]></description>
			<content:encoded><![CDATA[<p>最新在线版：<a title="PHP中文手册在线" href="http://www.orzero.net/php_manual_zh/" target="_blank">http://www.orzero.net/php_manual_zh/</a></p>
<p>离线chm版：<a title="php中文chm手册" href="http://www.orzero.net/php_manual_zh/php_manual_zh.chm" target="_blank">http://www.orzero.net/php_manual_zh/php_manual_zh.chm</a><br />
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html' title='FEEDIY.COM网站地图在线生成工具'>FEEDIY.COM网站地图在线生成工具</a></li>
<li><a href='http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html' title='通过rpm方式安装lnmp和一键安装lnmp服务'>通过rpm方式安装lnmp和一键安装lnmp服务</a></li>
<li><a href='http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html' title='CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程'>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</a></li>
<li><a href='http://www.orzero.net/2011/04/mysql-5-1-zh-manual.html' title='mysql 5.1 中文参考手册'>mysql 5.1 中文参考手册</a></li>
<li><a href='http://www.orzero.net/2011/04/php%e5%b8%b8%e8%a7%81%e7%ac%94%e8%af%95%e9%a2%98%e6%b1%87%e6%80%bb.html' title='PHP常见笔试题汇总'>PHP常见笔试题汇总</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/04/php_manual_zh.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP常见笔试题汇总</title>
		<link>http://www.orzero.net/2011/04/php%e5%b8%b8%e8%a7%81%e7%ac%94%e8%af%95%e9%a2%98%e6%b1%87%e6%80%bb.html</link>
		<comments>http://www.orzero.net/2011/04/php%e5%b8%b8%e8%a7%81%e7%ac%94%e8%af%95%e9%a2%98%e6%b1%87%e6%80%bb.html#comments</comments>
		<pubDate>Thu, 14 Apr 2011 08:42:38 +0000</pubDate>
		<dc:creator>oz</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[笔试]]></category>
		<category><![CDATA[答案]]></category>

		<guid isPermaLink="false">http://www.orzero.net/?p=41</guid>
		<description><![CDATA[欢迎回帖补充 1. 用PHP打印出前一天的时间,格式是2006-5-10 22:21:21 < ?php echo date(“Y-m-d H:i:s”,time()-60*60*24); echo date(“Y-m-d H:i:s”,strtotime(“-1 day”)); ?> 2. echo(),print(),print_r()的区别 echo 是语言结构，无返回值；print 功能和echo基本相同，不同的是print是函数，有返回值；print_r 是递归打印，用于输出数组对象。 3. 能够使HTML和PHP分离开使用的模板引擎 PHP 模板引擎和框架是PHP面试题里面必考的一些知识点，总的来说，了解smarty或者国内比较不错的ThinkPHP都可以应对这类的问题，其实PHP这门语言本身也就是一个模板引擎。当然对实际应用的来说，大量使用正则的PHP模板引擎会提高后他开发和前端开发的效率，但是肯定会牺牲首次加载的效率。我在一位大牛的文章中看到过Blitz这个模板引擎，据说是使用C++写的PHP扩展，号称是速度最快的模板引擎，有兴趣的可以去了解一下。 4. 如何实现字符串翻转？ PHP本身就有字符串翻转的函数:strrev()，当然也可以定义简单的函数来完成，下面的方法一和方法二只能翻转非汉字字符串，方法三用来翻转字符串。 < ?php //方法一：PHP系统函数 echo strrev(“ABCDEF”).“”; //方法二：自定义函数，不能翻转汉字。 function myStrrev($str) { $newStr = “”; for($i=0; $i=0; $j–) { $newcnStr .= $cnStr[$j]; } echo $newcnStr; ?> 5. 执行程序段将输出__？ < ?php //参考手册》语言参考》运算符》算术运算符》%为取模运算,输出0 [...]]]></description>
			<content:encoded><![CDATA[<p>欢迎回帖补充</p>
<p>1. 用PHP打印出前一天的时间,格式是2006-5-10 22:21:21</p>
<pre class="brush:php">
< ?php echo date(“Y-m-d H:i:s”,time()-60*60*24); echo date(“Y-m-d H:i:s”,strtotime(“-1 day”)); ?>
</pre>
<p><span id="more-41"></span><br />
2. echo(),print(),print_r()的区别</p>
<p>echo 是语言结构，无返回值；print 功能和echo基本相同，不同的是print是函数，有返回值；print_r 是递归打印，用于输出数组对象。<br />
3. 能够使HTML和PHP分离开使用的模板引擎</p>
<p>PHP 模板引擎和框架是PHP面试题里面必考的一些知识点，总的来说，了解smarty或者国内比较不错的ThinkPHP都可以应对这类的问题，其实PHP这门语言本身也就是一个模板引擎。当然对实际应用的来说，大量使用正则的PHP模板引擎会提高后他开发和前端开发的效率，但是肯定会牺牲首次加载的效率。我在一位大牛的文章中看到过Blitz这个模板引擎，据说是使用C++写的PHP扩展，号称是速度最快的模板引擎，有兴趣的可以去了解一下。<br />
4. 如何实现字符串翻转？</p>
<p>PHP本身就有字符串翻转的函数:strrev()，当然也可以定义简单的函数来完成，下面的方法一和方法二只能翻转非汉字字符串，方法三用来翻转字符串。</p>
<pre class="brush:php">
< ?php

//方法一：PHP系统函数

echo strrev(“ABCDEF”).“”;

//方法二：自定义函数，不能翻转汉字。

function myStrrev($str)

{

$newStr = “”;

for($i=0; $i<strlen ($str); $i++)

{

$newStr = $str[$i].$newStr;

}

return $newStr;

}

echo myStrrev(“ABCDEF”).“”;

//方法三，翻转汉字

$newcnStr = “”;

$cnStr = str_split(“我爱你”,3); //每个汉字占3个字节

//也可以使用array_reverse()翻转后输出

for($j=count($cnStr)-1; $j>=0; $j–)

{

$newcnStr .= $cnStr[$j];

}

echo $newcnStr;

?>
</pre>
<p>5. 执行程序段将输出__？</p>
<pre class="brush:php">
< ?php

//参考手册》语言参考》运算符》算术运算符》%为取模运算,输出0

echo 8%(-2).“”;

//取模 $a % $b 在 $a 为负值时的结果也是负值。输出-2

echo ((-8)%3).“”;

//输出2

echo (8%(-3)).“”;

?>
</pre>
<p>6. 语句 include 和 require 都能把另外一个文件包含到当前文件中，它们的区别是____；为了避免多次包含同一文件，可以用语句____来代替它们？</p>
<p>答：在如何处理失败时，include() 产生一个警告而 require() 则导致一个致命错误;require_once()/include_once()<br />
7. 写一个函数，能够遍历一个文件夹下的所有文件和子文件夹。</p>
<p>别人写的代码，已经足够简洁和给力了。</p>
<pre class="brush:php">
< ?php

function my_scandir($dir)

{

$files=array();

if(is_dir($dir))

{

if($handle=opendir($dir))

{

while(($file=readdir($handle))!==false)

{

if($file!=“.” &#038;&#038; $file!=“..”)

{

if(is_dir($dir.“/”.$file))

{

$files[$file]=my_scandir($dir.“/”.$file);

}

else

{

$files[]=$dir.“/”.$file;

}

}

}

closedir($handle);

return $files;

}

}

}

print_r(my_scandir(“D:\PHP\htdocs”));

?>
</pre>
<p>8. 你如何利用 PHP 解决 HTTP 的无状态本质？</p>
<p>最主要的俩各选择是session和cookie。使用session的方法是在每一页的开始加上 session_start()，然后利用$_SESSION散列表来储存session变量。至于cookie你只需记着一个原则：在输出任何文字之前调用set_cookie()函式，可以参考PHP会话管理之Cookie的使用，此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 变量。</p>
<p>还有一个不那么可靠的方法，就是利用访客的 IP 地址，这个方法有特定的危险性。<br />
9. 有一个一维数组，里面存储整形数据，请写一个函数，将他们按从大到小的顺序排列，要求执行效率高，并说明如何改善执行效率（该函数必须自己实现，不能使用php函数）。</p>
<p>学习C语言的时候各种排序方法是必须掌握的基本概念，尤其是冒泡排序法是程序员都很熟悉的算法，其他的可以查看这篇很古老的文章：http://blog.csdn.net/rerli/archive/2003/12/15/19040.aspx，显然C/C++里面的指针和堆可以实现一些快速高效但是不稳定的算法，PHP里面保守一些还是采用稳定性比较好，算法时间复杂度适中的冒泡排序法。</p>
<pre class="brush:php">
< ?php

function BubbleSort(&#038;$arr)

{

$cnt=count($arr);

$flag=1;

for($i=0;$i<$cnt;$i++)

{

if($flag==0)

{

return;

}

$flag=0;

for($j=0;$j<$cnt-$i-1;$j++) { if($arr[$j]>$arr[$j+1])

{

$tmp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$tmp;

$flag=1;

}

}

}

}

$test=array(1,3,6,8,2,7);

BubbleSort($test);

var_dump($test);

?>
</pre>
<p>10. 以下哪一句不会把 John 新增到 users 阵列？</p>
<p>PHP中一些数组函数和字符串函数是基础中的基础。</p>
<pre class="brush:php">
< ?php $users[] = “john”; //成功把 John 新增到阵列 users。 array_add($users, “john”); //函式 array_add() 无定义。 array_push($users,“john”); //成功把 John 新增到阵列 users，参考array_push()函数。 $users ||= “john”; //语法错误，不存在这个运算符。 ?>
</pre>
<h3 class='related_post_title'>相关文章:</h3>
<ul class='related_post'>
<li><a href='http://www.orzero.net/2011/09/feediy-com%e7%bd%91%e7%ab%99%e5%9c%b0%e5%9b%be%e5%9c%a8%e7%ba%bf%e7%94%9f%e6%88%90%e5%b7%a5%e5%85%b7.html' title='FEEDIY.COM网站地图在线生成工具'>FEEDIY.COM网站地图在线生成工具</a></li>
<li><a href='http://www.orzero.net/2011/06/%e9%80%9a%e8%bf%87rpm%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85lnmp%e5%92%8c%e4%b8%80%e9%94%ae%e5%ae%89%e8%a3%85lnmp%e6%9c%8d%e5%8a%a1.html' title='通过rpm方式安装lnmp和一键安装lnmp服务'>通过rpm方式安装lnmp和一键安装lnmp服务</a></li>
<li><a href='http://www.orzero.net/2011/06/centos-lnmp-nginx-php-mysql.html' title='CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程'>CentOS 5.x lnmp环境 : Nginx 1.0.x + PHP 5.3.6 + Mysql 5.5.x 服务环境搭建一体流程</a></li>
<li><a href='http://www.orzero.net/2011/04/php_manual_zh.html' title='php中文手册'>php中文手册</a></li>
<li><a href='http://www.orzero.net/2011/03/php-ini-%e9%85%8d%e7%bd%ae%e4%b8%ad%e6%96%87%e8%af%b4%e6%98%8e.html' title='php.ini 配置中文说明'>php.ini 配置中文说明</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.orzero.net/2011/04/php%e5%b8%b8%e8%a7%81%e7%ac%94%e8%af%95%e9%a2%98%e6%b1%87%e6%80%bb.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

