<?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>LAVA WORLD &#187; apache</title>
	<atom:link href="http://www.vpnall.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vpnall.com</link>
	<description>又一个森林Q群:52130297(IT聊天群)</description>
	<lastBuildDate>Fri, 03 Sep 2010 06:42:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Centos上YUM安装Apache+php+Mysql+phpMyAdmin</title>
		<link>http://www.vpnall.com/2010/03/centos%e4%b8%8ayum%e5%ae%89%e8%a3%85apachephpmysqlphpmyadmin/</link>
		<comments>http://www.vpnall.com/2010/03/centos%e4%b8%8ayum%e5%ae%89%e8%a3%85apachephpmysqlphpmyadmin/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 12:45:54 +0000</pubDate>
		<dc:creator>lava</dc:creator>
				<category><![CDATA[系统]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.vpnall.com/?p=687</guid>
		<description><![CDATA[Centos 里的 yum 在线安装很慢.以下是替换为中国CentOS镜像服务器!
中国官方镜像网站: http://centos.ustc.edu.cn/
/* 使用说明 */
cd /etc/yum.repos.d[进入yum.repos.d目录]
mv CentOS-Base.repo  CentOS-Base.repo.save[修改... ]]></description>
			<content:encoded><![CDATA[<p>Centos 里的 yum 在线安装很慢.以下是替换为中国CentOS镜像服务器!<br />
中国官方镜像网站: <a href="http://centos.ustc.edu.cn/">http://centos.ustc.edu.cn/<br />
</a>/* 使用说明 */<br />
cd /etc/yum.repos.d[进入yum.repos.d目录]<br />
mv CentOS-Base.repo  CentOS-Base.repo.save[修改源文件名称备份]<br />
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5[下载]<br />
mv CentOS-Base.repo.5 CentOS-Base.repo[下载后的文件更名]</p>
<p>1. 更新系统内核到最新.<br />
yum -y update<br />
系统更新后,如果yum安装时提示错误信息,请执行以下命令修复.<br />
rpm –import  /etc/pki/rpm-gpg/RPM-GPG-KEY*</p>
<p>2. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件</p>
<p>yum -y install httpd php mysql mysql-server php-mysql</p>
<p><em>//安装mysql扩展<br />
</em>yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql<br />
<em>//安装php的扩展</em><br />
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc<br />
<em>//安装apache扩展<br />
</em>yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql<br />
<strong><br />
一次性粘贴安装:<br />
</strong>yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql</p>
<p>3. 启动服务配置</p>
<p>/sbin/chkconfig httpd on [设置apache为自启动]<br />
/sbin/chkconfig –-add mysqld [mysql服务]<br />
/sbin/chkconfig mysqld on [mysqld服务]</p>
<p>/sbin/service httpd start [自启动 httpd 服务]<br />
/sbin/service mysqld start [自启动mysqld服务]</p>
<p>4.设置mysql数据库root帐号密码。<br />
mysqladmin -u root password ‘新密码’ [引号内填密码]</p>
<p>让mysql数据库更安全</p>
<p>复制内容到剪贴板</p>
<p>代码:</p>
<p>mysql -u root -p [此时会要求你输入刚刚设置的密码，输入后回车即可</p>
<p>mysql&gt; DROP DATABASE test; [删除test数据库]</p>
<p>mysql&gt; DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]</p>
<p>mysql&gt; FLUSH PRIVILEGES; [重载权限]</p>
<p>5. 防火墙配置<br />
a.添加.允许访问端口{21: ftp, 80: http}.<br />
iptables -I RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT<br />
iptables -I RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT<br />
郁闷.请把上面复制到记事本里,然后把–state这段–改成小写的,再操作.否则粘贴时会出现乱码.<br />
b.关闭防火墙{不推荐}.<br />
service iptables stop<br />
c.重置加载防火墙<br />
service iptables restart</p>
<p>6. 安装phpMyAdmin<br />
进入<a href="http://www.phpmyadmin.net/" target="_blank">phpMyAdmin</a>官方下载最新版本后，上传到你的网站目录下，然后进行配置。只需几步即可搞定。<br />
a. config.sample.inc.php更名为config.inc.php;<br />
b. 打开config.inc.php文件，进行以下修改;<br />
// $cfg['Servers'][$i]['controluser'] = ‘pma’;<br />
// $cfg['Servers'][$i]['controlpass'] = ‘pmapass’;<br />
// $cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;<br />
// $cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;<br />
// $cfg['Servers'][$i]['relation'] = ‘pma_relation’;<br />
// $cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;<br />
// $cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;<br />
// $cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;<br />
// $cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;<br />
// $cfg['Servers'][$i]['history'] = ‘pma_history’;<br />
// $cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;</p>
<p>去掉每行前面的//;<br />
c.$cfg['blowfish_secret'] = ”; |修改为|  $cfg['blowfish_secret'] = ‘http’;<br />
d.$cfg['Servers'][$i]['controluser'] = ‘pma’; |把’pma’修改为你的帐号|<br />
e.$cfg['Servers'][$i]['controlpass'] = ‘pmapass’;  |把’pmapass设置为你的mysql登录密码|<br />
f. $cfg['blowfish_secret'] = ”; | 添加短语密码例如：$cfg['blowfish_secret'] = ‘onohot’|</p>
<p>参考网站：<a href="http://www.fengyihot.com/blog/?p=169">http://www.fengyihot.com/blog/?p=169</a></p>
<p><a href="http://www.zeevin.cn/?p=113">http://www.zeevin.cn/?p=113</a></p>

	标签：<a href="http://www.vpnall.com/tag/apache/" title="apache" rel="tag">apache</a>, <a href="http://www.vpnall.com/tag/centos/" title="centos" rel="tag">centos</a>, <a href="http://www.vpnall.com/tag/mysql/" title="mysql" rel="tag">mysql</a>, <a href="http://www.vpnall.com/tag/php/" title="php" rel="tag">php</a>, <a href="http://www.vpnall.com/tag/phpmyadmin/" title="phpMyAdmin" rel="tag">phpMyAdmin</a>, <a href="http://www.vpnall.com/tag/yum/" title="yum" rel="tag">yum</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.vpnall.com/2009/03/nginx_apache_mysql_php_memcached_squid/" title="[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站 (2009-03-09)">[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/04/yum%e9%94%99%e8%af%afmetadata-file-does-not-match-checksum%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/" title="YUM错误Metadata file does not match checksum解决方法 (2009-04-07)">YUM错误Metadata file does not match checksum解决方法</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/02/php%e5%8d%95%e4%be%8b%e6%a8%a1%e5%bc%8f%e7%9a%84mysql%e6%95%b0%e6%8d%ae%e8%ae%bf%e9%97%ae%e7%b1%bb/" title="php单例模式的mysql数据访问类 (2010-02-08)">php单例模式的mysql数据访问类</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/ssh2-install-centos-xampp/" title="Centos+XAMPP下编译ssh2.so支持 (2009-03-04)">Centos+XAMPP下编译ssh2.so支持</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/about-yii-php-framework/" title="高性能的PHP框架：Yii PHP Framework (2009-03-18)">高性能的PHP框架：Yii PHP Framework</a> (5)</li>
	<li><a href="http://www.vpnall.com/2009/05/%e9%98%b2%e6%ad%a2mysql%e8%bf%9e%e6%8e%a5%e6%95%b0%e8%bf%87%e5%a4%9a%e5%af%bc%e8%87%b4%e5%b4%a9%e6%ba%83/" title="防止mysql连接数过多导致崩溃 (2009-05-07)">防止mysql连接数过多导致崩溃</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/04/%e9%85%8d%e7%bd%aersync%e5%81%9a%e7%b3%bb%e7%bb%9f%e8%87%aa%e5%8a%a8%e5%bc%82%e5%9c%b0%e5%a4%87%e4%bb%bd/" title="配置rsync做系统自动异地备份 (2009-04-06)">配置rsync做系统自动异地备份</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/04/%e8%bd%ac-centos%e9%87%8c%e9%9d%a2%e7%9a%84eth0-bak%e9%97%ae%e9%a2%98/" title="转 Centos里面的eth0.bak问题 (2010-04-24)">转 Centos里面的eth0.bak问题</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.vpnall.com/2010/03/centos%e4%b8%8ayum%e5%ae%89%e8%a3%85apachephpmysqlphpmyadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RewriteRule重写规则的语法：Apache的Mod_rewrite</title>
		<link>http://www.vpnall.com/2010/03/rewriterule%e9%87%8d%e5%86%99%e8%a7%84%e5%88%99%e7%9a%84%e8%af%ad%e6%b3%95%ef%bc%9aapache%e7%9a%84mod_rewrite/</link>
		<comments>http://www.vpnall.com/2010/03/rewriterule%e9%87%8d%e5%86%99%e8%a7%84%e5%88%99%e7%9a%84%e8%af%ad%e6%b3%95%ef%bc%9aapache%e7%9a%84mod_rewrite/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 05:58:44 +0000</pubDate>
		<dc:creator>lava</dc:creator>
				<category><![CDATA[代码]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Mod_rewrite]]></category>
		<category><![CDATA[RewriteRule]]></category>
		<category><![CDATA[重写]]></category>

		<guid isPermaLink="false">http://www.vpnall.com/?p=683</guid>
		<description><![CDATA[很少用,有人问,顺便看了一下
一条RewriteRule指令，定义一条重写规则，规则间的顺序非常重要。对Apache1.2及以后的版本，模板(pattern)是一个POSIX正则式，用以匹配当前的URL。当前的URL不一定是用... ]]></description>
			<content:encoded><![CDATA[<p>很少用,有人问,顺便看了一下</p>
<p>一条RewriteRule指令，定义一条重写规则，规则间的顺序非常重要。对Apache1.2及以后的版本，模板(pattern)是一个POSIX正则式，用以匹配当前的URL。当前的URL不一定是用记最初提交的URL，因为可能用一些规则在此规则前已经对URL进行了处理。<br />
对mod_rewrite来说，！是个合法的模板前缀，表示“非”的意思，这对描述“不满足某种匹配条件”的情况非常方便，或用作最后一条默认规则。当使用！时，不能在模板中有分组的通配符，也不能做后向引用。<br />
当匹配成功后，Substitution会被用来替换相应的匹配，它除了可以是普通的字符串以外，还可以包括：<br />
1. $N,引用RewriteRule模板中匹配的相关字串，N表示序号,N=0..9<br />
2. %N,引用最后一个RewriteCond模板中匹配的数据，N表示序号<br />
3. %{VARNAME},服务器变量<br />
4. ${mapname:key|default},映射函数调用<br />
这些特殊内容的扩展，按上述顺序进行。<br />
一个URL的全部相关部分都会被Substitution替换，而且这个替换过程会一直持续到所有的规则都被执行完，除非明确地用L标志中断处理过程。<br />
当susbstitution有”-”前缀时，表示不进行替换，只做匹配检查。<br />
利用RewriteRule，可定义含有请求串(Query String)的URL，此时只需在Sustitution中加入一个？，表示此后的内容放入QUERY_STRING变量中。如果要清空一个QUERY_STRING变量，只需要以？结束Substitution串即可。<br />
如果给一个Substitution增加一个</p>
<p><span style="font-family: Verdana; font-size: x-small;"><br />
1. &#8217;redirect|R [=code]&#8216; (强制重定向)<br />
给当前的URI增加前缀</p>
<p><span style="font-family: Verdana; font-size: x-small;"><br />
2. &#8217;forbidden|F&#8217; (强制禁止访问URL所指的资源)<br />
立即返回状态值403 (FORBIDDEN)的应答包。将这个标志与合适的RewriteConds 联合使用，可以阻断访问某些URL。<br />
3. &#8217;gone|G&#8217; (强制返回URL所指资源为不存在(gone))<br />
立即返回状态值410 (GONE)的应答包。用这个标志来标记URL所指的资源永久消失了.<br />
4. # &#8216;proxy|P&#8217; (强制将当前URL送往代理模块（proxy module）)<br />
这个标志，强制将substitution当作一个发向代理模块的请求，并立即将共送往代理模块。因此，必须确保substitution串是一个合法的URI (如, 典型的情况是以</p>
<p><span style="font-family: Verdana; font-size: x-small;"><br />
5. &#8217;last|L&#8217; (最后一条规则)<br />
中止重写流程，不再对当前URL施加更多的重写规则。这相当于perl的last命令或C的break命令。<br />
6. &#8217;next|N&#8217; (下一轮)<br />
重新从第一条重写规则开始执行重写过程，新开的过程中的URL不应当与最初的URL相同。 这相当于Perl的next命令或C的continue命令. 千万小心不要产生死循环。<br />
7. # &#8216;chain|C&#8217; (将当前的规则与其后续规则綑绑(chained))<br />
当规则匹配时，处理过程与没有綑绑一样；如果规则不匹配，则綑绑在一起的后续规则也不在检查和执行。<br />
8. &#8217;type|T=MIME-type&#8217; (强制MIME类型)<br />
强制将目标文件的MIME-type为某MIME类型。例如，这可用来模仿mod_alias模块对某目录的ScriptAlias指定，通过强制将该目录下的所有文件的类型改为 “application/x-httpd-cgi”.<br />
9. &#8217;nosubreq|NS&#8217; (used only if no internal sub-request )<br />
这个标志强制重写引擎跳过为内部sub-request的重写规则.例如，当mod_include试图找到某一目录下的默认文件时 (index.xxx)，sub-requests 会在Apache内部发生. Sub-requests并非总是有用的，在某些情况下如果整个规则集施加到它上面，会产生错误。利用这个标志可排除执行一些规则。<br />
10. &#8217;nocase|NC&#8217; (模板不区分大小写)</p>
<p>这个标志会使得模板匹配当前URL时忽略大小写的差别。<br />
11. &#8217;qsappend|QSA&#8217; (追加请求串(query string))<br />
这个标志，强制重写引擎为Substitution的请求串追加一部分串，则不是替换掉原来的。借助这个标志，可以使用一个重写规则给请求串增加更多的数据。<br />
12. &#8217;noescape|NE&#8217; (不对输出结果中的特殊字符进行转义处理)<br />
通常情况下，mod_write的输出结果中，特殊字符（如&#8217;%', &#8216;$&#8217;, &#8216;;&#8217;, 等)会转义为它们的16进制形式(如分别为&#8217;%25&#8242;, &#8216;%24&#8242;, and &#8216;%3B&#8217;）。这个标志会禁止mod_rewrite对输出结果进行此类操作。 这个标志只能在 Apache 1.3.20及以后的版本中使用。<br />
13. &#8217;passthrough|PT&#8217; (通过下一个处理器)<br />
这个标志强制重写引擎用filename字段的值来替换内部request_rec数据结构中uri字段的值。. 使用这个标志，可以使后续的其它URI－to-filename转换器的Alias、ScriptAlias、Redirect等指令，也能正常处理RewriteRule指令的输出结果。用一个小例子来说明它的语义：如果要用mod_rewrite的重写引擎将/abc转换为/def,然后用mod_alas将/def重写为ghi，则要：<br />
RewriteRule ^/abc(.*) /def$1 [PT]<br />
Alias /def /ghi<br />
如果PT标志被忽略，则mod_rewrite也能很好完成工作,如果., 将 uri=/abc/&#8230; 转换为filename=/def/&#8230; ，完全符合一个URI-to-filename转换器的动作。接下来 mod_alias 试图做 URI-to-filename 转换时就会出问题。<br />
注意:如果要混合都含有URL－to-filename转换器的不同的模块的指令，必须用这个标志。最典型的例子是mod_alias和mod_rewrite的使用。<br />
14. &#8217;skip|S=num&#8217; (跳过后面的num个规则)<br />
当前规则匹配时，强制重写引擎跳过后续的num个规则。用这个可以来模仿if-then-else结构：then子句的最后一条rule的标志是skip=N，而N是else子句的规则条数。<br />
15. &#8217;env|E=VAR:VAL&#8217; (设置环境变量)<br />
设置名为VAR的环境变量的值为VAL,其中VAL中可以含有正则式的后向引用($N或%N)。这个标志可以使用多次，以设置多个环境变量。这儿设置的变量，可以在多种情况下被引用，如在XSSI或CGI中。另外，也可以在RewriteCond模板中以%{ENV:VAR}的形式被引用。<br />
16.</p>
<p><span style="font-family: Verdana; font-size: x-small;"> 注意：一定不要忘记，在服务器范围内的配置文件中，模板(pattern)用以匹配整个URL;而在目录范围内的配置文件中，目录前缀总是被自动去掉后再进行模板匹配的，且在替换完成后自动再加上这个前缀。这个功能对很多种类的重写是非常重要的，因为如果没有去前缀，则要进行父目录的匹配，而父目录的信息并不是总能得到的。一个例外是，当substitution中有http://打头时，则不再自动增加前缀了，如果P标志出现，则会强制转向代理。<br />
</span></p>
<p><span style="font-family: Verdana; font-size: x-small;">注意：如果要在某个目录范围内启动重写引擎，则需要在相应的目录配置文件中设置“RewriteEngine on”，且目录的“Options FollowSymLinks”必须设置。如果管理员由于安全原因没有打开FollowSymLinks，则不能使用重写引擎。</span></p>
<p></span></span></span></p>
<p><span style="font-family: Verdana; font-size: x-small;">http://hostname</span><span style="font-family: Verdana; font-size: x-small;">开头)，否则会从代理模块得到一个错误. 这个标志，是ProxyPass指令的一个更强劲的实现，将远程请求(remote stuff)映射到本地服务器的名字空间(namespace)中来。<br />
注意，使用这个功能必须确保代理模块已经编译到Apache 服务器程序中了. 可以用“httpd -l ”命令，来检查输出中是否含有mod_proxy.c来确认一下。如果没有，而又需要使用这个功能，则需要重新编译&#8220;httpd&#8221;程序并使用mod_proxy有效。</span><span style="font-family: Verdana; font-size: x-small;">http://thishost[:thisport]/</span><span style="font-family: Verdana; font-size: x-small;">， 从而生成一个新的URL，强制生成一个外部重定向(external redirection，指生的URL发送到客户端，由客户端再次以新的URL发出请求，虽然新URL仍指向当前的服务器). 如果没有指定的code值，则HTTP应答以状态值302 (MOVED TEMPORARILY)，如果想使用300-400（不含400）间的其它值可以通过在code的位置以相应的数字指定，也可以用标志名指定： temp (默认值), permanent, seeother.</span></p>
<p><span style="font-family: Verdana; font-size: x-small;">注意，当使用这个标志时，要确实substitution是个合法的URL，这个标志只是在URL前增加<span style="font-family: Verdana; font-size: x-small;">http://thishost[:thisport]/</span><span style="font-family: Verdana; font-size: x-small;">前缀而已，重写操作会继续进行。如果要立即将新URL重定向，用L标志来中重写流程。 </span><span style="font-family: Verdana; font-size: x-small;">http://thishost[:port</span><span style="font-family: Verdana; font-size: x-small;">]的前缀，则mod_rewrite会自动将此前缀去掉。因此，利用</span><span style="font-family: Verdana; font-size: x-small;">http://thisthost</span><span style="font-family: Verdana; font-size: x-small;">做一个无条件的重定向到自己，将难以奏效。要实现这种效果，必须使用R标志。<br />
Flags是可选参数，当有多个标志同时出现时，彼此间以逗号分隔。</span></span></p>

	标签：<a href="http://www.vpnall.com/tag/apache/" title="apache" rel="tag">apache</a>, <a href="http://www.vpnall.com/tag/mod_rewrite/" title="Mod_rewrite" rel="tag">Mod_rewrite</a>, <a href="http://www.vpnall.com/tag/rewriterule/" title="RewriteRule" rel="tag">RewriteRule</a>, <a href="http://www.vpnall.com/tag/%e9%87%8d%e5%86%99/" title="重写" rel="tag">重写</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.vpnall.com/2010/01/%e8%a7%a3%e5%86%b3apache%e5%90%af%e5%8a%a8-os-10022%e6%8f%90%e4%be%9b%e4%ba%86%e4%b8%80%e4%b8%aa%e6%97%a0%e6%95%88%e7%9a%84%e5%8f%82%e6%95%b0/" title="解决Apache启动 (OS 10022)提供了一个无效的参数 (2010-01-25)">解决Apache启动 (OS 10022)提供了一个无效的参数</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/nginx_apache_mysql_php_memcached_squid/" title="[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站 (2009-03-09)">[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/03/centos%e4%b8%8ayum%e5%ae%89%e8%a3%85apachephpmysqlphpmyadmin/" title="Centos上YUM安装Apache+php+Mysql+phpMyAdmin (2010-03-10)">Centos上YUM安装Apache+php+Mysql+phpMyAdmin</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.vpnall.com/2010/03/rewriterule%e9%87%8d%e5%86%99%e8%a7%84%e5%88%99%e7%9a%84%e8%af%ad%e6%b3%95%ef%bc%9aapache%e7%9a%84mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决Apache启动 (OS 10022)提供了一个无效的参数</title>
		<link>http://www.vpnall.com/2010/01/%e8%a7%a3%e5%86%b3apache%e5%90%af%e5%8a%a8-os-10022%e6%8f%90%e4%be%9b%e4%ba%86%e4%b8%80%e4%b8%aa%e6%97%a0%e6%95%88%e7%9a%84%e5%8f%82%e6%95%b0/</link>
		<comments>http://www.vpnall.com/2010/01/%e8%a7%a3%e5%86%b3apache%e5%90%af%e5%8a%a8-os-10022%e6%8f%90%e4%be%9b%e4%ba%86%e4%b8%80%e4%b8%aa%e6%97%a0%e6%95%88%e7%9a%84%e5%8f%82%e6%95%b0/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 04:29:56 +0000</pubDate>
		<dc:creator>lava</dc:creator>
				<category><![CDATA[系统]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[winsock]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://www.vpnall.com/?p=608</guid>
		<description><![CDATA[今天打开apache,访问不了.telnet localhost 80,不通.
打开error log如下:
[Mon Jan 25 11:30:39 2010] [notice] Apache/2.2.8 (Win32) PHP/5.2.5 configured &#8212; resuming normal operations
[Mon Jan 25 11:30:39 2010] [notice] Server built: Jan 18 2... ]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">今天打开apache,访问不了.telnet localhost 80,不通.</div>
<div id="_mcePaste">打开error log如下:</div>
<div id="_mcePaste">[Mon Jan 25 11:30:39 2010] [notice] Apache/2.2.8 (Win32) PHP/5.2.5 configured &#8212; resuming normal operations</div>
<div id="_mcePaste">[Mon Jan 25 11:30:39 2010] [notice] Server built: Jan 18 2008 00:37:19</div>
<div id="_mcePaste">[Mon Jan 25 11:30:39 2010] [notice] Parent: Created child process 4340</div>
<div id="_mcePaste">[Mon Jan 25 11:30:39 2010] [notice] Child 4340: Child process is running</div>
<div id="_mcePaste">[Mon Jan 25 11:30:39 2010] [crit] (OS 10022)提供了一个无效的参数。  : Child 4340: setup_inherited_listeners(), WSASocket failed to open the inherited socket.</div>
<div id="_mcePaste">[Mon Jan 25 11:30:39 2010] [crit] Parent: child process exited with status 3 &#8212; Aborting.</div>
<div id="_mcePaste">网上找了一下,说修复winsock，在运行里输入：netsh winsock reset</div>
<div id="_mcePaste">还不用重启电脑,然后重启apache就行了..</div>

	标签：<a href="http://www.vpnall.com/tag/apache/" title="apache" rel="tag">apache</a>, <a href="http://www.vpnall.com/tag/winsock/" title="winsock" rel="tag">winsock</a>, <a href="http://www.vpnall.com/tag/%e9%94%99%e8%af%af/" title="错误" rel="tag">错误</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.vpnall.com/2009/03/nginx_apache_mysql_php_memcached_squid/" title="[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站 (2009-03-09)">[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/04/yum%e9%94%99%e8%af%afmetadata-file-does-not-match-checksum%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/" title="YUM错误Metadata file does not match checksum解决方法 (2009-04-07)">YUM错误Metadata file does not match checksum解决方法</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/03/rewriterule%e9%87%8d%e5%86%99%e8%a7%84%e5%88%99%e7%9a%84%e8%af%ad%e6%b3%95%ef%bc%9aapache%e7%9a%84mod_rewrite/" title="RewriteRule重写规则的语法：Apache的Mod_rewrite (2010-03-09)">RewriteRule重写规则的语法：Apache的Mod_rewrite</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/mysql-error-1267/" title="mysql错误1267的解决方法 (2009-03-03)">mysql错误1267的解决方法</a> (2)</li>
	<li><a href="http://www.vpnall.com/2010/03/centos%e4%b8%8ayum%e5%ae%89%e8%a3%85apachephpmysqlphpmyadmin/" title="Centos上YUM安装Apache+php+Mysql+phpMyAdmin (2010-03-10)">Centos上YUM安装Apache+php+Mysql+phpMyAdmin</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.vpnall.com/2010/01/%e8%a7%a3%e5%86%b3apache%e5%90%af%e5%8a%a8-os-10022%e6%8f%90%e4%be%9b%e4%ba%86%e4%b8%80%e4%b8%aa%e6%97%a0%e6%95%88%e7%9a%84%e5%8f%82%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]利用nginx+apache+mysql+php+memcached+squid搭建门户网站</title>
		<link>http://www.vpnall.com/2009/03/nginx_apache_mysql_php_memcached_squid/</link>
		<comments>http://www.vpnall.com/2009/03/nginx_apache_mysql_php_memcached_squid/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 01:48:55 +0000</pubDate>
		<dc:creator>lava</dc:creator>
				<category><![CDATA[系统]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://www.vpnall.com/?p=63</guid>
		<description><![CDATA[转自城市胡同,我的几个站点现在日PV都不足6W,最高峰也不足20W,这个套东西当然是用不上了.XAMPP已经足够了,希望终有一天我用得上.百万PV不是梦&#8230;
服务器的大用户量的承载方案
一、前言
二... ]]></description>
			<content:encoded><![CDATA[<p>转自<a accesskey="1" href="http://www.wujianrong.com/">城市胡同</a>,我的几个站点现在日PV都不足6W,最高峰也不足20W,这个套东西当然是用不上了.XAMPP已经足够了,希望终有一天我用得上.百万PV不是梦&#8230;</p>
<p>服务器的大用户量的承载方案<br />
一、前言<br />
二、编译安装<br />
三、 安装MySQL、memcache<br />
四、 安装Apache、PHP、eAccelerator、php-memcache<br />
五、 安装Squid<br />
六、后记</p>
<p>一、前言，准备工作<br />
当前，LAMP开发模式是WEB开发的首选，如何搭建一个高效、可靠、稳定的WEB服务器一直是个热门主题，本文就是这个主题的一次尝试。<br />
我们采用的架构图如下：<br />
引用&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;<br />
| 客户端 | ===&gt; |负载均衡器| ===&gt; |反向代理/缓存| ===&gt; |WEB服务器| ===&gt; |数据库服务器|<br />
&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;<br />
Nginx Squid Apache,PHP MySQL<br />
eAccelerator/memcache准备工作：<br />
引用服务器： Intel(R) Xeon(TM) CPU 3.00GHz * 2, 2GB mem, SCISC 硬盘<br />
操作系统：CentOs4.4，内核版本2.6.9-22.ELsmp，gcc版本3.4.4<br />
软件：<br />
Apache 2.2.3（能使用MPM模式）<br />
PHP 5.2.0（选用该版本是因为5.2.0的引擎相对更高效）<br />
eAccelerator 0.9.5（加速PHP引擎，同时也可以加密PHP源程序）<br />
memcache 1.2.0（用于高速缓存常用数据）<br />
libevent 1.2a（memcache工作机制所需）<br />
MySQL 5.0.27（选用二进制版本，省去编译工作）<br />
Nginx 0.5.4（用做负载均衡器）<br />
squid-2.6.STABLE6（做反向代理的同时提供专业缓存功能）<br />
二、编译安装<br />
一、) 安装Nginx<br />
1.) 安装<br />
Nginx发音为[engine x]，是由俄罗斯人Igor Sysoev建立的项目,基于BSD许可。据说他当初是F5的成员之一，英文主页：http://nginx.net。俄罗斯的一些大网站已经使用它超过两年多了，一直表现不凡。<br />
Nginx的编译参数如下：<br />
[root@localhost]#./configure &#8211;prefix=/usr/local/server/nginx &#8211;with-openssl=/usr/include \<br />
&#8211;with-pcre=/usr/include/pcre/ &#8211;with-http_stub_status_module &#8211;without-http_memcached_module \<br />
&#8211;without-http_fastcgi_module &#8211;without-http_rewrite_module &#8211;without-http_map_module \<br />
&#8211;without-http_geo_module &#8211;without-http_autoindex_module<br />
在这里，需要说明一下，由于Nginx的配置文件中我想用到正则，所以需要 pcre 模块的支持。我已经安装了 pcre 及 pcre-devel 的rpm包，但是 Ngxin 并不能正确找到 .h/.so/.a/.la 文件，因此我稍微变通了一下：<br />
[root@localhost]#mkdir /usr/include/pcre/.libs/<br />
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a<br />
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la<br />
然后，修改 objs/Makefile 大概在908行的位置上，注释掉以下内容：<br />
./configure &#8211;disable-shared<br />
接下来，就可以正常执行 make 及 make install 了。<br />
2.) 修改配置文件 /usr/local/server/nginx/conf/nginx.conf<br />
以下是我的 nginx.conf 内容，仅供参考：<br />
#运行用户<br />
user nobody nobody;<br />
#启动进程<br />
worker_processes 2;<br />
#全局错误日志及PID文件<br />
error_log logs/error.log notice;<br />
pid logs/nginx.pid;<br />
#工作模式及连接数上限<br />
events {<br />
use epoll;<br />
worker_connections 1024;<br />
}<br />
#设定http服务器，利用它的反向代理功能提供负载均衡支持<br />
http {<br />
#设定mime类型<br />
include conf/mime.types;<br />
default_type application/octet-stream;<br />
#设定日志格式<br />
log_format main &#8216;$remote_addr &#8211; $remote_user [$time_local] &#8216;<br />
&#8216;&#8221;$request&#8221; $status $bytes_sent &#8216;<br />
&#8216;&#8221;$http_referer&#8221; &#8220;$http_user_agent&#8221; &#8216;<br />
&#8216;&#8221;$gzip_ratio&#8221;&#8216;;<br />
log_format download &#8216;$remote_addr &#8211; $remote_user [$time_local] &#8216;<br />
&#8216;&#8221;$request&#8221; $status $bytes_sent &#8216;<br />
&#8216;&#8221;$http_referer&#8221; &#8220;$http_user_agent&#8221; &#8216;<br />
&#8216;&#8221;$http_range&#8221; &#8220;$sent_http_content_range&#8221;&#8216;;<br />
#设定请求缓冲<br />
client_header_buffer_size 1k;<br />
large_client_header_buffers 4 4k;<br />
#开启gzip模块<br />
gzip on;<br />
gzip_min_length 1100;<br />
gzip_buffers 4 8k;<br />
gzip_types text/plain;<br />
output_buffers 1 32k;<br />
postpone_output 1460;<br />
#设定access log<br />
access_log logs/access.log main;<br />
client_header_timeout 3m;<br />
client_body_timeout 3m;<br />
send_timeout 3m;<br />
sendfile on;<br />
tcp_nopush on;<br />
tcp_nodelay on;<br />
keepalive_timeout 65;<br />
#设定负载均衡的服务器列表<br />
upstream mysvr {<br />
#weigth参数表示权值，权值越高被分配到的几率越大<br />
#本机上的Squid开启3128端口<br />
server 192.168.8.1:3128 weight=5;<br />
server 192.168.8.2:80 weight=1;<br />
server 192.168.8.3:80 weight=6;<br />
}<br />
#设定虚拟主机<br />
server {<br />
listen 80;<br />
server_name 192.168.8.1 www.enew.com.cn;<br />
charset gb2312;<br />
#设定本虚拟主机的访问日志<br />
access_log logs/www.enew.com.cn.access.log main;<br />
#如果访问 /img/*, /js/*, /css/* 资源，则直接取本地文件，不通过squid<br />
#如果这些文件较多，不推荐这种方式，因为通过squid的缓存效果更好<br />
location ~ ^/(img|js|css)/ {<br />
root /data3/Html;<br />
expires 24h;<br />
}<br />
#对 &#8220;/&#8221; 启用负载均衡<br />
location / {<br />
proxy_pass http://mysvr;<br />
proxy_redirect off;<br />
proxy_set_header Host $host;<br />
proxy_set_header X-Real-IP $remote_addr;<br />
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />
client_max_body_size 10m;<br />
client_body_buffer_size 128k;<br />
proxy_connect_timeout 90;<br />
proxy_send_timeout 90;<br />
proxy_read_timeout 90;<br />
proxy_buffer_size 4k;<br />
proxy_buffers 4 32k;<br />
proxy_busy_buffers_size 64k;<br />
proxy_temp_file_write_size 64k;<br />
}<br />
#设定查看Nginx状态的地址<br />
location /NginxStatus {<br />
stub_status on;<br />
access_log on;<br />
auth_basic &#8220;NginxStatus&#8221;;<br />
auth_basic_user_file conf/htpasswd;<br />
}<br />
}<br />
}<br />
备注：conf/htpasswd 文件的内容用 apache 提供的 htpasswd 工具来产生即可，内容大致如下：<br />
3.) 查看 Nginx 运行状态<br />
输入地址 http://192.168.8.1/NginxStatus/，输入验证帐号密码，即可看到类似如下内容：<br />
Active connections: 328<br />
server accepts handled requests<br />
9309 8982 28890<br />
Reading: 1 Writing: 3 Waiting: 324<br />
第一行表示目前活跃的连接数<br />
第三行的第三个数字表示Nginx运行到当前时间接受到的总请求数，如果快达到了上限，就需要加大上限值了。<br />
第四行是Nginx的队列状态<br />
三、 安装MySQL、memcache</p>
<p>1.) 安装MySQL，步骤如下：<br />
[root@localhost]#tar zxf mysql-standard-5.0.27-linux-i686.tar.gz -C /usr/local/server<br />
[root@localhost]#mv /usr/local/server/mysql-standard-5.0.27-linux-i686 /usr/local/server/mysql<br />
[root@localhost]#cd /usr/local/server/mysql<br />
[root@localhost]#./scripts/mysql_install_db &#8211;basedir=/usr/local/server/mysql \<br />
&#8211;datadir=/usr/local/server/mysql/data &#8211;user=nobody<br />
[root@localhost]#cp /usr/local/server/mysql/support-files/my-large.cnf \<br />
/usr/local/server/mysql/data/my.cnf<br />
2.) 修改 MySQL 配置，增加部分优化参数，如下：<br />
[root@localhost]#vi /usr/local/server/mysql/data/my.cnf<br />
主要内容如下：<br />
[mysqld]<br />
basedir = /usr/local/server/mysql<br />
datadir = /usr/local/server/mysql/data<br />
user = nobody<br />
port = 3306<br />
socket = /tmp/mysql.sock<br />
wait_timeout = 30<br />
long_query_time=1<br />
#log-queries-not-using-indexes = TRUE<br />
log-slow-queries=/usr/local/server/mysql/slow.log<br />
log-error = /usr/local/server/mysql/error.log<br />
external-locking = FALSE<br />
key_buffer_size = 512M<br />
back_log = 400<br />
table_cache = 512<br />
sort_buffer_size = 2M<br />
join_buffer_size = 4M<br />
read_buffer_size = 2M<br />
read_rnd_buffer_size = 4M<br />
myisam_sort_buffer_size = 64M<br />
thread_cache_size = 32<br />
query_cache_limit = 2M<br />
query_cache_size = 64M<br />
thread_concurrency = 4<br />
thread_stack = 128K<br />
tmp_table_size = 64M<br />
binlog_cache_size = 2M<br />
max_binlog_size = 128M<br />
max_binlog_cache_size = 512M<br />
max_relay_log_size = 128M<br />
bulk_insert_buffer_size = 8M<br />
myisam_repair_threads = 1<br />
skip-bdb<br />
#如果不需要使用innodb就关闭该选项<br />
#skip-innodb<br />
innodb_data_home_dir = /usr/local/server/mysql/data/<br />
innodb_data_file_path = ibdata1:256M;ibdata2:256M:autoextend<br />
innodb_log_group_home_dir = /usr/local/server/mysql/data/<br />
innodb_log_arch_dir = /usr/local/server/mysql/data/<br />
innodb_buffer_pool_size = 512M<br />
innodb_additional_mem_pool_size = 8M<br />
innodb_log_file_size = 128M<br />
innodb_log_buffer_size = 8M<br />
innodb_lock_wait_timeout = 50<br />
innodb_flush_log_at_trx_commit = 2<br />
innodb_file_io_threads = 4<br />
innodb_thread_concurrency = 16<br />
innodb_log_files_in_group = 3<br />
以上配置参数请根据具体的需要稍作修改。运行以下命令即可启动 MySQL 服务器：<br />
/usr/local/server/mysql/bin/mysqld_safe \<br />
&#8211;defaults-file=/usr/local/server/mysql/data/my.cnf &amp;<br />
由于 MySQL 不是安装在标准目录下，因此必须要修改 mysqld_safe 中的 my_print_defaults 文件所在位置，才能通过<br />
mysqld_safe 来启动 MySQL 服务器。<br />
3.) memcache + libevent 安装编译安装：<br />
[root@localhost]#cd libevent-1.2a<br />
[root@localhost]#./configure &#8211;prefix=/usr/ &amp;&amp; make &amp;&amp; make install<br />
[root@localhost]#cd ../memcached-1.2.0<br />
[root@localhost]#./configure &#8211;prefix=/usr/local/server/memcached &#8211;with-libevent=/usr/<br />
[root@localhost]#make &amp;&amp; make install<br />
备注：如果 libevent 不是安装在 /usr 目录下，那么需要把 libevent-1.2a.so.1 拷贝/链接到 /usr/lib 中，否则<br />
memcached 无法正常加载。运行以下命令来启动 memcached：<br />
[root@localhost]#/usr/local/server/memcached/bin/memcached \<br />
-l 192.168.8.1 -d -p 10000 -u nobody -m 128<br />
表示用 daemon 的方式启动 memcached，监听在 192.168.8.1 的 10000 端口上，运行用户为 nobody，为其分配<br />
128MB 的内存。<br />
四、 安装Apache、PHP、eAccelerator、php-memcache</p>
<p>四、) 安装Apache、PHP、eAccelerator、php-memcache由于Apache<br />
2下的php静态方式编译十分麻烦，因此在这里采用动态模块(DSO)方式。1.) 安装Apache 2.2.3<br />
[root@localhost]#./configure &#8211;prefix=/usr/local/server/apache &#8211;disable-userdir &#8211;disable-actions \<br />
&#8211;disable-negotiation &#8211;disable-autoindex &#8211;disable-filter &#8211;disable-include &#8211;disable-status \<br />
&#8211;disable-asis &#8211;disable-auth &#8211;disable-authn-default &#8211;disable-authn-file &#8211;disable-authz-groupfile \<br />
&#8211;disable-authz-host &#8211;disable-authz-default &#8211;disable-authz-user &#8211;disable-userdir \<br />
&#8211;enable-expires &#8211;enable-module=so<br />
备注：在这里，取消了一些不必要的模块，如果你需要用到这些模块，那么请去掉部分参数。<br />
2.) 安装PHP 5.2.0<br />
[root@localhost]#./configure &#8211;prefix=/usr/local/server/php &#8211;with-mysql \<br />
&#8211;with-apxs2=/usr/local/server/apache/bin/apxs &#8211;with-freetype-dir=/usr/ &#8211;with-png-dir=/usr/ \<br />
&#8211;with-gd=/usr/ &#8211;with-jpeg-dir=/usr/ &#8211;with-zlib &#8211;enable-magic-quotes &#8211;with-iconv \<br />
&#8211;without-sqlite &#8211;without-pdo-sqlite &#8211;with-pdo-mysql &#8211;disable-dom &#8211;disable-simplexml \<br />
&#8211;enable-roxen-zts<br />
[root@localhost]#make &amp;&amp; make install<br />
备注：如果不需要gd或者pdo等模块，请自行去掉。<br />
3.) 安装eAccelerator-0.9.5<br />
[root@localhost]#cd eAccelerator-0.9.5<br />
[root@localhost]#export PHP_PREFIX=/usr/local/server/php<br />
[root@localhost]#$PHP_PREFIX/bin/phpize<br />
[root@localhost]#./configure &#8211;enable-eaccelerator=shared &#8211;with-php-config=$PHP_PREFIX/bin/php-config<br />
[root@localhost]#make &amp;&amp; make install<br />
4.) 安装memcache模块<br />
[root@localhost]#cd memcache-2.1.0<br />
[root@localhost]#export PHP_PREFIX=/usr/local/server/php<br />
[root@localhost]#$PHP_PREFIX/bin/phpize<br />
[root@localhost]#./configure &#8211;enable-eaccelerator=shared &#8211;with-php-config=$PHP_PREFIX/bin/php-config<br />
[root@localhost]#make &amp;&amp; make install<br />
5.) 修改 php.ini 配置然后修改 php.ini，修改/加入类似以下内容：<br />
extension_dir = &#8220;/usr/local/server/php/lib/&#8221;<br />
extension=&#8221;eaccelerator.so&#8221;<br />
eaccelerator.shm_size=&#8221;32&#8243; ;设定eaccelerator的共享内存为32MB<br />
eaccelerator.cache_dir=&#8221;/usr/local/server/eaccelerator&#8221;<br />
eaccelerator.enable=&#8221;1&#8243;<br />
eaccelerator.optimizer=&#8221;1&#8243;<br />
eaccelerator.check_mtime=&#8221;1&#8243;<br />
eaccelerator.debug=&#8221;0&#8243;<br />
eaccelerator.filter=&#8221;*.php&#8221;<br />
eaccelerator.shm_max=&#8221;0&#8243;<br />
eaccelerator.shm_ttl=&#8221;0&#8243;<br />
eaccelerator.shm_prune_period=&#8221;3600&#8243;<br />
eaccelerator.shm_only=&#8221;0&#8243;<br />
eaccelerator.compress=&#8221;1&#8243;<br />
eaccelerator.compress_level=&#8221;9&#8243;<br />
eaccelerator.log_file = &#8220;/usr/local/server/apache/logs/eaccelerator_log&#8221;<br />
eaccelerator.allowed_admin_path = &#8220;/usr/local/server/apache/htdocs/ea_admin&#8221;<br />
extension=&#8221;memcache.so&#8221;<br />
在这里，最好是在apache的配置中增加默认文件类型的cache机制，即利用apache的expires模块，新增类似如下几行：<br />
ExpiresActive On<br />
ExpiresByType text/html &#8220;access plus 10 minutes&#8221;<br />
ExpiresByType text/css &#8220;access plus 1 day&#8221;<br />
ExpiresByType image/jpg &#8220;access 1 month&#8221;<br />
ExpiresByType image/gif &#8220;access 1 month&#8221;<br />
ExpiresByType image/jpg &#8220;access 1 month&#8221;<br />
ExpiresByType application/x-shockwave-flash &#8220;access plus 3 day&#8221;<br />
这么设置是由于我的这些静态文件通常很少更新，因此我选择的是&#8221;access&#8221;规则，如果更新相对比较频繁，可以改用&#8221;modification&#8221;规则;或者也可以用&#8221;access&#8221;规则，但是在文件更新的时候，执行一下&#8221;touch&#8221;命令，把文件的时间刷新一下即可。</p>
<p>五、 安装Squid</p>
<p>五、) 安装Squid<br />
[root@localhost]#./configure &#8211;prefix=/usr/local/server/squid &#8211;enable-async-io=100 &#8211;disable-delay-pools &#8211;disable-mem-gen-trace &#8211;disable-useragent-log &#8211;enable-kill-parent-hack &#8211;disable-arp-acl &#8211;enable-epoll &#8211;disable-ident-lookups &#8211;enable-snmp &#8211;enable-large-cache-files &#8211;with-large-files<br />
[root@localhost]#make &amp;&amp; make install<br />
或使用如下安装方法：<br />
[root@localhost]#yum install squid<br />
如果是2.6的内核，才能支持epoll的IO模式，旧版本的内核则只能选择poll或其他模式了;另外，记得带上支持大文件的选项，否则在access<br />
log等文件达到2G的时候就会报错。设定 squid 的配置大概如下内容：<br />
#设定缓存目录为 /var/cache1 和 /var/lib/squid，每次处理缓存大小为128MB，当缓存空间使用达到95%时<br />
#新的内容将取代旧的而不直接添加到目录中，直到空间又下降到90%才停止这一活动<br />
#/var/cache1 最大1024MB，/var/lib/squid 最大 5000MB，都是 16*256 级子目录<br />
cache_dir aufs /var/cache1 1024 16 256<br />
cache_dir aufs /var/lib/squid 5000 16 256<br />
cache_mem 128 MB<br />
cache_swap_low 90<br />
cache_swap_high 95<br />
#设置存储策略等<br />
maximum_object_size 4096 KB<br />
minimum_object_size 0 KB<br />
maximum_object_size_in_memory 80 KB<br />
ipcache_size 1024<br />
ipcache_low 90<br />
ipcache_high 95<br />
cache_replacement_policy lru<br />
memory_replacement_policy lru<br />
#设置超时策略<br />
forward_timeout 20 seconds<br />
connect_timeout 15 seconds<br />
read_timeout 3 minutes<br />
request_timeout 1 minutes<br />
persistent_request_timeout 15 seconds<br />
client_lifetime 15 minutes<br />
shutdown_lifetime 5 seconds<br />
negative_ttl 10 seconds<br />
#限制一个ip最大只能有16个连接<br />
acl OverConnLimit maxconn 16<br />
http_access deny OverConnLimit<br />
#限制baidu spider访问<br />
#acl AntiBaidu req_header User-Agent Baiduspider<br />
#http_access deny AntiBaidu<br />
#常规设置<br />
visible_hostname cache.enew.com<br />
cache_mgr webmaster@enew.com<br />
client_persistent_connections off<br />
server_persistent_connections on<br />
cache_effective_user nobody<br />
cache_effective_group nobody<br />
tcp_recv_bufsize 65535 bytes<br />
half_closed_clients off<br />
#设定不缓存的规则<br />
hierarchy_stoplist cgi-bin<br />
acl QUERY urlpath_regex cgi-bin<br />
cache deny QUERY<br />
#不要相信ETag 因为有gzip<br />
acl apache rep_header Server ^Apache<br />
broken_vary_encoding allow apache<br />
#设置access log，并且令其格式和apache的格式一样，方便awstats分析<br />
emulate_httpd_log on<br />
logformat apache %&gt;a %ui %un [%tl] &#8220;%rm %ru HTTP/%rv&#8221; %Hs %<br />
初始化和启动squid<br />
[root@localhost]#/usr/local/server/squid/sbin/squid -z<br />
[root@localhost]#/usr/local/server/squid/sbin/squid<br />
第一条命令是先初始化squid缓存哈希子目录，只需执行一次即可。<br />
六、后记</p>
<p>六、后记一、)想要启用squid所需的改变想要更好的利用squid的cache功能，不是把它启用了就可以的，我们需要做以下几个调整：<br />
1、启用apache的 mod_expires 模块，修改 httpd.conf，加入以下内容：<br />
#expiresdefault &#8220;modification plus 2 weeks&#8221;expiresactive<br />
onexpiresbytype text/html &#8220;access plus 10 minutes&#8221;expiresbytype<br />
image/gif &#8220;modification plus 1 month&#8221;expiresbytype image/jpeg &#8220;modification<br />
plus 1 month&#8221;expiresbytype image/png &#8220;modification plus 1<br />
month&#8221;expiresbytype text/css &#8220;access plus 1 day&#8221;expiresbytype<br />
application/x-shockwave-flash &#8220;access plus 3 day&#8221;<br />
以上配置的作用是规定各种类型文件的cache规则，对那些图片/flash等静态文件总是cache起来，可根据各自的需要做适当调整。<br />
2、修改 php.ini 配置，如下：<br />
session.cache_limiter = nocache<br />
以上配置的作用是默认取消php中的cache功能，避免不正常的cache产生。<br />
3、修改应用程序例如，有一个php程序页面static.php，它存放着某些查询数据库后的结果，并且数据更新并不频繁，于是，我们就可以考虑对其cache。只需在static.php中加入类似如下代码：<br />
header(&#8216;Cache-Control: max-age=86400<br />
,must-revalidate&#8217;);header(&#8216;Pragma:&#8217;);header(&#8216;Last-Modified: &#8216; .<br />
gmdate(&#8216;D, d M Y H:i:s&#8217;) . &#8216; GMT&#8217; );header(&#8220;Expires: &#8221; .gmdate (&#8216;D, d M Y<br />
H:i:s&#8217;, time() + &#8216;86400&#8242; ). &#8216; GMT&#8217;);<br />
以上代码的意思是，输出一个http头部信息，让squid知道本页面默认缓存时长为一天。<br />
二、)squidclient简要介绍<br />
*取得squid运行状态信息： squidclient -p 80 mgr:info<br />
*取得squid内存使用情况： squidclient -p 80 mgr:mem<br />
*取得squid已经缓存的列表： squidclient -p 80 mgr:objects. use it carefully,it may crash<br />
*取得squid的磁盘使用情况： squidclient -p 80 mgr:diskd<br />
*强制更新某个url：squidclient -p 80 -m PURGE http://www.enew.com.cn/static.php<br />
*更多的请查看：squidclient-h 或者 squidclient -p 80 mgr:</p>

	标签：<a href="http://www.vpnall.com/tag/apache/" title="apache" rel="tag">apache</a>, <a href="http://www.vpnall.com/tag/linux/" title="linux" rel="tag">linux</a>, <a href="http://www.vpnall.com/tag/memcached/" title="memcached" rel="tag">memcached</a>, <a href="http://www.vpnall.com/tag/mysql/" title="mysql" rel="tag">mysql</a>, <a href="http://www.vpnall.com/tag/nginx/" title="nginx" rel="tag">nginx</a>, <a href="http://www.vpnall.com/tag/php/" title="php" rel="tag">php</a>, <a href="http://www.vpnall.com/tag/squid/" title="squid" rel="tag">squid</a>, <a href="http://www.vpnall.com/tag/xampp/" title="xampp" rel="tag">xampp</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.vpnall.com/2010/03/centos%e4%b8%8ayum%e5%ae%89%e8%a3%85apachephpmysqlphpmyadmin/" title="Centos上YUM安装Apache+php+Mysql+phpMyAdmin (2010-03-10)">Centos上YUM安装Apache+php+Mysql+phpMyAdmin</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/ssh2-install-centos-xampp/" title="Centos+XAMPP下编译ssh2.so支持 (2009-03-04)">Centos+XAMPP下编译ssh2.so支持</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/01/%e8%bd%ac%e5%9c%a8ubuntu-8-1%e4%b8%8a%e5%ae%89%e8%a3%9d%e9%85%8d%e7%bd%aefreeradius2-mysql-daloradius/" title="[转]在Ubuntu 8.1上安裝配置Freeradius2 + Mysql + Daloradius (2010-01-05)">[转]在Ubuntu 8.1上安裝配置Freeradius2 + Mysql + Daloradius</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/02/php%e5%8d%95%e4%be%8b%e6%a8%a1%e5%bc%8f%e7%9a%84mysql%e6%95%b0%e6%8d%ae%e8%ae%bf%e9%97%ae%e7%b1%bb/" title="php单例模式的mysql数据访问类 (2010-02-08)">php单例模式的mysql数据访问类</a> (0)</li>
	<li><a href="http://www.vpnall.com/2010/05/linux%e9%85%8d%e7%bd%aesendmail%e6%94%af%e6%8c%81php-mail%e5%87%bd%e6%95%b0/" title="linux配置sendmail支持php mail函数 (2010-05-30)">linux配置sendmail支持php mail函数</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/linux%e4%b8%8bxampp%e9%87%8c%e9%9d%a2%e7%9a%84proftpd%e7%ae%80%e6%98%8e%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95/" title="Linux下xampp里面的proftpd简明使用方法 (2009-03-25)">Linux下xampp里面的proftpd简明使用方法</a> (0)</li>
	<li><a href="http://www.vpnall.com/2009/03/centos5-config/" title="Centos5 常规配置 (2009-03-10)">Centos5 常规配置</a> (1)</li>
	<li><a href="http://www.vpnall.com/2009/03/about-yii-php-framework/" title="高性能的PHP框架：Yii PHP Framework (2009-03-18)">高性能的PHP框架：Yii PHP Framework</a> (5)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.vpnall.com/2009/03/nginx_apache_mysql_php_memcached_squid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
