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

<channel>
	<title>稀饭的国度 &#187; Apache</title>
	<atom:link href="http://blog.thematice.com/html/ytag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.thematice.com</link>
	<description>发现自己的脑袋不好使了，用blog来记录真的很好用。</description>
	<lastBuildDate>Wed, 01 Feb 2012 05:33:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Apache 和 Dovecot 不再挂了</title>
		<link>http://blog.thematice.com/html/y2009/09/14/658/apache-%e5%92%8c-dovecot-%e4%b8%8d%e5%86%8d%e6%8c%82%e4%ba%86.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache-%25e5%2592%258c-dovecot-%25e4%25b8%258d%25e5%2586%258d%25e6%258c%2582%25e4%25ba%2586</link>
		<comments>http://blog.thematice.com/html/y2009/09/14/658/apache-%e5%92%8c-dovecot-%e4%b8%8d%e5%86%8d%e6%8c%82%e4%ba%86.html#comments</comments>
		<pubDate>Mon, 14 Sep 2009 14:58:45 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=658</guid>
		<description><![CDATA[与你分享我是如何确定 Apache 和 Dovecot 是否在跑。 首先，您必须下载 LibPing，「LibPing」 是一个用来检查 Web, POP3, IP 和 SMTP 是否正常的小程序。 下载完之后，就可以 compile 了。 比如说我要将它 install 在 “/usr/local/libping”。 那么就： tar -zxf libping-latest.tar.gz cd libping-1.15 ./configure &#8211;prefix=/usr/local/libping make make install 我的 Apache 是 install 在 /usr/local/apache，Dovecot 是 install 在 /usr/local/dovecot 。 以下是 checker.sh 文件 #!/usr/local/bin/bash PING=&#8217;/usr/local/libping/bin/ding&#8217; # Check for this server still alive [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/09/14/658/apache-%e5%92%8c-dovecot-%e4%b8%8d%e5%86%8d%e6%8c%82%e4%ba%86.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Nginx] apache rewrite转nginx经验&#8211;对大括号的支持</title>
		<link>http://blog.thematice.com/html/y2009/09/02/650/nginx-apache-rewrite%e8%bd%acnginx%e7%bb%8f%e9%aa%8c-%e5%af%b9%e5%a4%a7%e6%8b%ac%e5%8f%b7%e7%9a%84%e6%94%af%e6%8c%81.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nginx-apache-rewrite%25e8%25bd%25acnginx%25e7%25bb%258f%25e9%25aa%258c-%25e5%25af%25b9%25e5%25a4%25a7%25e6%258b%25ac%25e5%258f%25b7%25e7%259a%2584%25e6%2594%25af%25e6%258c%2581</link>
		<comments>http://blog.thematice.com/html/y2009/09/02/650/nginx-apache-rewrite%e8%bd%acnginx%e7%bb%8f%e9%aa%8c-%e5%af%b9%e5%a4%a7%e6%8b%ac%e5%8f%b7%e7%9a%84%e6%94%af%e6%8c%81.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 07:29:54 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[括号]]></category>
		<category><![CDATA[经验]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=650</guid>
		<description><![CDATA[在nginx中这样写规则 rewrite ^/([0-9]{5}).html$ /x.jsp?id=$1 last; 是无法启动的，解决的办法是加上两个双引号 rewrite “^/([0-9]{5}).html$” /x.jsp?id=$1 last; 这样就OK了，应该可以说是完全兼容apache的语法的，只需要改下RewriteRule为Rewrite，后面的一般可以这样对应改 [R] -> redirect; [P] -> last; [R,L] -> redirect; [P,L] -> last; [PT,L] -> last; nginx rewrite中支持4种类型的转向： 跳转型的 redirect：302跳转到rewrite后的地址 permanent：301永久定向到rewrite后的地址，对搜索引擎更友好 代理型的 last：重新将rewrite后的地址在server标签中执行 break：将rewrite后的地址在当前location标签中执行 nginx的last和break的区别可以参考： http://www.sudone.com/nginx/nginx_rewrite_last_break.html http://www.sudone.com/nginx/nginx_rewrite.html]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/09/02/650/nginx-apache-rewrite%e8%bd%acnginx%e7%bb%8f%e9%aa%8c-%e5%af%b9%e5%a4%a7%e6%8b%ac%e5%8f%b7%e7%9a%84%e6%94%af%e6%8c%81.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache 重写规则的常见应用 (rewrite) (转)</title>
		<link>http://blog.thematice.com/html/y2008/02/25/63/apache-rewrite-rules-of-the-common-application-rewrite-change.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache-rewrite-rules-of-the-common-application-rewrite-change</link>
		<comments>http://blog.thematice.com/html/y2008/02/25/63/apache-rewrite-rules-of-the-common-application-rewrite-change.html#comments</comments>
		<pubDate>Mon, 25 Feb 2008 13:21:30 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/?p=63</guid>
		<description><![CDATA[来源:http://www.ixdba.net/article/57/1053.html 一:目的 本文旨在提供如何用Apache重写规则来解决一些常见的URL重写方法的问题，通过常见的 实例给用户一些使用重写规则的基本方法和线索。 二:为什么需要用重写规则？ 一个网站，如果是长期需要放在internet上提供服务，必定会有不断地更新和维护，如临 时转移到其它服务器进行维护，重新组织目录结构，变换URL甚至改变到新的域名等等， 而为了让客户不会因此受到任何影响，最好的方法就是使用Apache Rewrite Rule(重写 规则)。 三: 重写规则的作用范围 1) 可以使用在Apache主配置文件httpd.conf中 2) 可以使用在httpd.conf里定义的虚拟主机配置中 3) 可以使用在基本目录的跨越配置文件.htaccess中 四:重写规则的应用条件 只有当用户的WEB请求最终被导向到某台WEB服务器的Apache后台，则这台WEB服务器接受 进来的请求，根据配置文件该请求是主配置还是虚拟主机，再根据用户在浏览器中请求的 URI来配对重写规则并且根据实际的请求路径配对.htaccess中的重写规则。最后把请求 的内容传回给用户，该响应可能有两种： 1) 对浏览器请求内容的外部重定向(Redirect)到另一个URL。 让浏览器再次以新的URI发出请求(R=301或者R=302，临时的或是永久的重定向) 如：一个网站有正规的URL和别名URL，对别名URL进行重定向到正规URL，或者网站改换 成了新的域名 则把旧的域名重定向到新的域名(Redirect) 2) 也可能是由Apache内部子请求代理产生新的内容送回给客户[P,L] 这是Apache内部根据重写后的URI内部通过代理模块请求内容并送回内容给客户，而客户 端浏览器并 不知道，浏览器中的URI不会被重写。但实际内容被Apache根据重写规则后的URI得到。 如：在公司防火墙上运行的Apache启动这种代理重写规则，代理对内部网段上的WEB服务 器的请求。 五:重写规则怎样工作？ 我们假定在编译Apache时已经把mod_rewrite编译成模块，确信你的httpd.conf中有 LoadModule rewrite_module libexec/mod_rewrite.so 并且在Addmodule中有 Addmodule mod_rewrite.c 则可以使用重写规则。 当外部请求来到Apache，Apache调用重写规则中的定义来重写由用户浏览器指定请求的 URI，最后被重写的URI如果是重定向，则送由浏览器作再一次请求；如果是代理则把重写 后的URI交给代理模块请求最终的内容(Content),最后把内容送回给浏览器。 六: 何时使用.htaccess中的重写规则定义？ 假如你对你的的网站内容所在的服务器没有管理员权限，或者你的网站放在ISP的服务器 上托管等等条件下，你无法改写主配置文件，然而你可以对你的WEB站点内容所在的目录 有写权限，则你可以设置自己的.htaccess 文件达到同样的目的。但你需要确定主配置文件中对你的网站所在的目录定义了下面的内 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2008/02/25/63/apache-rewrite-rules-of-the-common-application-rewrite-change.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache URL Rewrite常用配置两种方法(转ixdba)</title>
		<link>http://blog.thematice.com/html/y2008/02/25/62/apache-url-rewrite-configuration-commonly-used-in-two-ways-to-ixdba.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache-url-rewrite-configuration-commonly-used-in-two-ways-to-ixdba</link>
		<comments>http://blog.thematice.com/html/y2008/02/25/62/apache-url-rewrite-configuration-commonly-used-in-two-ways-to-ixdba.html#comments</comments>
		<pubDate>Mon, 25 Feb 2008 13:15:06 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/?p=62</guid>
		<description><![CDATA[来源:http://www.ixdba.net/article/c8/1056.html （方法一） 假设你已经使用mod_jk2.so整合了Apache2.05x与Tomcat5.x 要完成的功能如下重定向： 将URL http://host/test.jps?id=1 重定向为 http://host/1.html 将URL http://host/conent.jsp?id=1&#38;id2=3 重定向为 http://host/1_3.html 1. 修改Apache2confhttpd.conf文件，加载mod_rewrite.so LoadModule rewrite_module modules/mod_rewrite.so 2. 在每个虚拟主机的地方设置Rewrite参数 &#60;VirtualHost *:80&#62;     ServerAdmin wiseweidong@gmail.com     DocumentRoot “I:/Job/Java”     ServerName localhost     RewriteEngine on     RewriteRule /([0-9]+).html /test.jsp?id=$1 [PT]     RewriteRule /([0-9]+)_([0-9]+).html /content.jsp?id=$1&#38;id2=$2 [PT] &#60;/VirtualHost&#62; （方法二）   所用基于动态的url http://www.ixdba.net/content.jsp?id=1&#38;contentid=404按照各大搜索引擎的喜好，应该美化成http://www.www.ixdba.net/content/1_404.html静态网页的方式，尽管目前的google及几大搜索引擎宣称支持动态页网的抓取，但与传统的html文件相比较抓取率仍不在一个数量级。Apche的mod_rewrite模块具有此功能，但是对于租用虚拟主机的用户来说就比较麻烦不太可能对所有运营商有更多的要求，需要条件依赖就不具通用性。     目前有一个解决方法，通过UrlRewriteFilter可以完全实现动态URL表态化，你可以将它直接应用到你的web应用中，不管你用的是jsp+javabean还是struts.       下面是使用方法：     1、下载http://tuckey.org/urlrewrite/#download目前版本是1.2,解压缩后将文件考到相应的web-inf/lib和web-inf下，。     2、配置web.xml &#60;filter&#62;        &#60;filter-name&#62;UrlRewriteFilter&#60;/filter-name&#62; [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2008/02/25/62/apache-url-rewrite-configuration-commonly-used-in-two-ways-to-ixdba.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转 修改/proc目录下的参数优化网络性能</title>
		<link>http://blog.thematice.com/html/y2007/11/24/34/%e8%bd%ac-%e4%bf%ae%e6%94%b9proc%e7%9b%ae%e5%bd%95%e4%b8%8b%e7%9a%84%e5%8f%82%e6%95%b0%e4%bc%98%e5%8c%96%e7%bd%91%e7%bb%9c%e6%80%a7%e8%83%bd.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e8%25bd%25ac-%25e4%25bf%25ae%25e6%2594%25b9proc%25e7%259b%25ae%25e5%25bd%2595%25e4%25b8%258b%25e7%259a%2584%25e5%258f%2582%25e6%2595%25b0%25e4%25bc%2598%25e5%258c%2596%25e7%25bd%2591%25e7%25bb%259c%25e6%2580%25a7%25e8%2583%25bd</link>
		<comments>http://blog.thematice.com/html/y2007/11/24/34/%e8%bd%ac-%e4%bf%ae%e6%94%b9proc%e7%9b%ae%e5%bd%95%e4%b8%8b%e7%9a%84%e5%8f%82%e6%95%b0%e4%bc%98%e5%8c%96%e7%bd%91%e7%bb%9c%e6%80%a7%e8%83%bd.html#comments</comments>
		<pubDate>Sat, 24 Nov 2007 01:52:41 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux net]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nat]]></category>
		<category><![CDATA[net]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/11/24/%e8%bd%ac-%e4%bf%ae%e6%94%b9proc%e7%9b%ae%e5%bd%95%e4%b8%8b%e7%9a%84%e5%8f%82%e6%95%b0%e4%bc%98%e5%8c%96%e7%bd%91%e7%bb%9c%e6%80%a7%e8%83%bd/</guid>
		<description><![CDATA[RHEL网路优化 网络优化 注意： 1. 参数值带有速度（rate）的参数不能在loopback接口上工作。 2．因为内核是以HZ为单位的内部时钟来定义速度的，通常速度为100HZ，所以设定一个参数值为100就表示允许1个包/秒，假如为20则允许5个包/秒。 3．所有内核网络参数配置文件位于/proc/sys/net/ipv4/目录下。 1) /proc/sys/net/ipv4/ip_forward 该文件表示是否打开IP转发。 0，禁止 1，转发 缺省设置：0 2) /proc/sys/net/ipv4/ip_default_ttl 该文件表示一个数据报的生存周期（Time To Live），即最多经过多少路由器。 缺省设置：64 增加该值会降低系统性能。 3) /proc/sys/net/ipv4/ip_no_pmtu_disc 该文件表示在全局范围内关闭路径MTU探测功能。 缺省设置：0 4) /proc/sys/net/ipv4/route/min_pmtu 该文件表示最小路径MTU的大小。 缺省设置：552 5) /proc/sys/net/ipv4/route/mtu_expires 该文件表示PMTU信息缓存多长时间（秒）。 缺省设置：600（秒） 6) /proc/sys/net/ipv4/route/min_adv_mss 该文件表示最小的MSS（Maximum Segment Size）大小，取决于第一跳的路由器MTU。 缺省设置：256（bytes） 6.1 IP Fragmentation 1) /proc/sys/net/ipv4/ipfrag_low_thresh /proc/sys/net/ipv4/ipfrag_low_thresh 两个文件分别表示用于重组IP分段的内存分配最低值和最高值，一旦达到最高内存分配值，其它分段将被丢弃，直到达到最低内存分配值。 缺省设置：196608（ipfrag_low_thresh） 262144（ipfrag_high_thresh） 2) /proc/sys/net/ipv4/ipfrag_time 该文件表示一个IP分段在内存中保留多少秒。 缺省设置：30（秒） 6.2 INET Peer Storage [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/11/24/34/%e8%bd%ac-%e4%bf%ae%e6%94%b9proc%e7%9b%ae%e5%bd%95%e4%b8%8b%e7%9a%84%e5%8f%82%e6%95%b0%e4%bc%98%e5%8c%96%e7%bd%91%e7%bb%9c%e6%80%a7%e8%83%bd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何用php作Linux自动执行脚本？</title>
		<link>http://blog.thematice.com/html/y2007/11/24/33/%e5%a6%82%e4%bd%95%e7%94%a8php%e4%bd%9clinux%e8%87%aa%e5%8a%a8%e6%89%a7%e8%a1%8c%e8%84%9a%e6%9c%ac%ef%bc%9f.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%25a6%2582%25e4%25bd%2595%25e7%2594%25a8php%25e4%25bd%259clinux%25e8%2587%25aa%25e5%258a%25a8%25e6%2589%25a7%25e8%25a1%258c%25e8%2584%259a%25e6%259c%25ac%25ef%25bc%259f</link>
		<comments>http://blog.thematice.com/html/y2007/11/24/33/%e5%a6%82%e4%bd%95%e7%94%a8php%e4%bd%9clinux%e8%87%aa%e5%8a%a8%e6%89%a7%e8%a1%8c%e8%84%9a%e6%9c%ac%ef%bc%9f.html#comments</comments>
		<pubDate>Sat, 24 Nov 2007 01:39:14 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/11/24/%e5%a6%82%e4%bd%95%e7%94%a8php%e4%bd%9clinux%e8%87%aa%e5%8a%a8%e6%89%a7%e8%a1%8c%e8%84%9a%e6%9c%ac%ef%bc%9f/</guid>
		<description><![CDATA[最近急需这种方法，记录一下，明天上班时候尝试^^ 在  linux下，可以使用crontab  +  php的方法： 1、使用crontab  –e编辑定时任务 内容为: xx:xx:xx  执行一个test.php文件 2、php文件必须在文件头一行，加上解释器路径（就象perl做的那样） #!/usr/local/bin/php PHP的执行需要Apache的支持，shell脚本的执行需要Linux的支持，而Linux支持定时运行某个程序的功能 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 将PHP作为Shell脚本语言使用(转载) －－英文原著：Darrell  Brogdon，发表于  http://www.phpbuilder.com/columns/darrell20000319.php3） 可能很多人都想过使用PHP编写一些定时发信之类的程序，但是却没有办法定时执行PHP；一次去PHPBuilder的时候，发现了这一篇文章，于是想给大家翻译一下（同时做了一些修改），希望对大家有用。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 我 们都知道，PHP是一种非常好的动态网页开发语言（速度飞快，开发周期短……）。但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语 言，当PHP作为编写Shell脚本的语言时，他并没有Perl或者Bash那么强大，但是他却有着很好的优势，特别是对于我这种熟悉PHP但是不怎么熟 悉Perl的人。 要使用PHP作为Shell脚本语言，你必须将PHP作为二进制的CGI编译，而不是Apache模式；编译成为二进制CGI模式运行的PHP有一些安全性的问题，关于解决的方法可以参见PHP手册（http://www.php.net）。 一开始你可能会对于编写Shell脚本感到不适应，但是会慢慢好起来的：将PHP作为一般的动态网页编写语言和作为Shell脚本语言的唯一不同就在于一个Shell脚本需要在第一行生命解释本脚本的程序路径： #!/usr/local/bin/php  -q 我们在PHP执行文件后面加入了参数“-1”，这样子PHP就不会输出HTTPHeader（如果仍需要作为Web的动态网页，那么你需要自己使用header函数输出HTTPHeader）。当然，在Shell脚本的里面你还是需要使用PHP的开始和结束标记： &#60;?php  代码  ?&#62; 现在让我们看一个例子，以便于更好的了解用PHP作为Shell脚本语言的使用： #!/usr/local/bin/php  -q &#60;?php print(“Hello,  world!\n”); ?&#62; 上面这个程序会简单的输出“Hello,  world!”到显示器上。 一、传递Shell脚本运行参数给PHP： 作 为一个Shell脚本，经常会在运行程序时候加入一些参数，PHP作为Shell脚本时有一个内嵌的数组“$argv”，使用“$argv”数组可以很方 便的读取Shell脚本运行时候的参数（“$argv[1]”对应的是第一个参数，“$argv[2]”对应的是第二个参数，依此类推）。比如下面这个程 序： #!/usr/local/bin/php  -q &#60;?php $first_name  =  $argv[1]; $last_name  =  $argv[2]; [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/11/24/33/%e5%a6%82%e4%bd%95%e7%94%a8php%e4%bd%9clinux%e8%87%aa%e5%8a%a8%e6%89%a7%e8%a1%8c%e8%84%9a%e6%9c%ac%ef%bc%9f.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>服务器网页缓存的深入分析</title>
		<link>http://blog.thematice.com/html/y2007/11/23/32/%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bd%91%e9%a1%b5%e7%bc%93%e5%ad%98%e7%9a%84%e6%b7%b1%e5%85%a5%e5%88%86%e6%9e%90.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e6%259c%258d%25e5%258a%25a1%25e5%2599%25a8%25e7%25bd%2591%25e9%25a1%25b5%25e7%25bc%2593%25e5%25ad%2598%25e7%259a%2584%25e6%25b7%25b1%25e5%2585%25a5%25e5%2588%2586%25e6%259e%2590</link>
		<comments>http://blog.thematice.com/html/y2007/11/23/32/%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bd%91%e9%a1%b5%e7%bc%93%e5%ad%98%e7%9a%84%e6%b7%b1%e5%85%a5%e5%88%86%e6%9e%90.html#comments</comments>
		<pubDate>Fri, 23 Nov 2007 09:46:23 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[ETag]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[technique]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/11/23/%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bd%91%e9%a1%b5%e7%bc%93%e5%ad%98%e7%9a%84%e6%b7%b1%e5%85%a5%e5%88%86%e6%9e%90/</guid>
		<description><![CDATA[Expires、Cache-Control、Last-Modified、ETag是RFC 2616（HTTP/1.1）协议中和网页缓存相关的几个字段。前两个用来控制缓存的失效日期，后两个用来验证网页的有效性。要注意的是， HTTP/1.0有一个功能比较弱的缓存控制机制：Pragma，使用HTTP/1.0的缓存将忽略Expires和Cache-Control头。我们 这里以Apache2.0服务器为例，只讨论HTTP/1.1协议。 Expires Expires字段声明了一个网页或URL地址不再被浏览器缓存的时间，一旦超过了这个时间，浏览器都应该联系原始服务器。RFC告诉我们：“由于推断的失效时间也许会降低语义透明度，应该被谨慎使用，同时我们鼓励原始服务器尽可能提供确切的失效时间。” 对于一般的纯静态页面，如html、gif、jpg、css、js，默认安装的Apache服务器，不会在响应头添加这个字段。Firefox浏览 器接受到相应后，如果发现没有Expires字段，浏览器根据文件的类型和“Last-Modified”字段来推断出一个合适的失效时间，并存储在客户 端。推测出的时间一般是接受到响应时间后的三天左右。 Apache的expires_module模块可以在Http响应头部自动加上Expires字段。在Apache的httpd.conf文件中进行如下配置： #启用expires_module模块 LoadModule expires_module modules/mod_expires.so # 启用有效期控制 ExpiresActive On # GIF有效期为1个月 ExpiresByType image/gif A2592000 # HTML文档的有效期是最后修改时刻后的一星期 ExpiresByType text/html M604800 #以下的含义类似 ExpiresByType text/css “now plus 2 month” ExpiresByType text/js “now plus 2 day” ExpiresByType image/jpeg “access plus 2 month” ExpiresByType image/bmp “access plus 2 month” ExpiresByType image/x-icon [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/11/23/32/%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bd%91%e9%a1%b5%e7%bc%93%e5%ad%98%e7%9a%84%e6%b7%b1%e5%85%a5%e5%88%86%e6%9e%90.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache 2.0中prefork.c模块和worker.c模块的比较</title>
		<link>http://blog.thematice.com/html/y2007/11/22/31/apache-20%e4%b8%adpreforkc%e6%a8%a1%e5%9d%97%e5%92%8cworkerc%e6%a8%a1%e5%9d%97%e7%9a%84%e6%af%94%e8%be%83.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache-20%25e4%25b8%25adpreforkc%25e6%25a8%25a1%25e5%259d%2597%25e5%2592%258cworkerc%25e6%25a8%25a1%25e5%259d%2597%25e7%259a%2584%25e6%25af%2594%25e8%25be%2583</link>
		<comments>http://blog.thematice.com/html/y2007/11/22/31/apache-20%e4%b8%adpreforkc%e6%a8%a1%e5%9d%97%e5%92%8cworkerc%e6%a8%a1%e5%9d%97%e7%9a%84%e6%af%94%e8%be%83.html#comments</comments>
		<pubDate>Thu, 22 Nov 2007 09:17:13 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[prefork.c]]></category>
		<category><![CDATA[worker.c]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/11/22/apache-20%e4%b8%adpreforkc%e6%a8%a1%e5%9d%97%e5%92%8cworkerc%e6%a8%a1%e5%9d%97%e7%9a%84%e6%af%94%e8%be%83/</guid>
		<description><![CDATA[Apache 2.XX中prefork.c模块和worker.c模块的比较 空闲子进程：是指没有正在处理请求的子进程。 1、prefork.c模块(一个非线程型的、预派生的MPM) prefork MPM 使用多个子进程，每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上，Prefork MPM在效率上要比Worker MPM要高，但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势：它可以使用那些没有处理好线程安全的第三方模块，并 且对于那些线程调试困难的平台而言，它也更容易调试一些。 &#60;IfModule prefork.c&#62; ServerLimit 20000 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 1000 MaxRequestsPerChild 0 &#60;/IfModule&#62; ServerLimit 2000 //默认的MaxClient最大是256个线程,如果想设置更大的值，就的加上ServerLimit这个参数。20000是ServerLimit这个参数的最大值。如果需要更大，则必须编译apache,此前都是不需要重新编译Apache。 生效前提：必须放在其他指令的前面 StartServers 5 //指定服务器启动时建立的子进程数量，prefork默认为5。 MinSpareServers 5 //指定空闲子进程的最小数量，默认为5。如果当前空闲子进程数少于MinSpareServers ，那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。 MaxSpareServers 10 //设置空闲子进程的最大数量，默认为10。如果当前有超过MaxSpareServers数量的空闲子进程，那么父进程将杀死多余的子进程。此参数不要 设的太大。如果你将该指令的值设置为比MinSpareServers小，Apache将会自动将其修改成”MinSpareServers+1&#8243;。 MaxClients 256 //限定同一时间客户端最大接入请求的数量(单个进程并发线程数)，默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放，队列中的请求将得到服务。要增大这个值，你必须同时增大ServerLimit 。 MaxRequestsPerChild 10000 //每个子进程在其生存期内允许伺服的最大请求数量，默认为10000.到达MaxRequestsPerChild的限制后，子进程将会结束。如果MaxRequestsPerChild为”0&#8243;，子进程将永远不会结束。 将MaxRequestsPerChild设置成非零值有两个好处： 1.可以防止(偶然的)内存泄漏无限进行，从而耗尽内存。 2.给进程一个有限寿命，从而有助于当服务器负载减轻的时候减少活动进程的数量。 工作方式： 一个单独的控制进程(父进程)负责产生子进程，这些子进程用于监听请求并作出应答。Apache总是试图保持一些备用的(spare)或者是空闲的子进程 用于迎接即将到来的请求。这样客户端就不需要在得到服务前等候子进程的产生。在Unix系统中，父进程通常以root身份运行以便邦定80端口，而 Apache产生的子进程通常以一个低特权的用户运行。User和Group指令用于设置子进程的低特权用户。运行子进程的用户必须要对它所服务的内容有 读取的权限，但是对服务内容之外的其他资源必须拥有尽可能少的权限。 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/11/22/31/apache-20%e4%b8%adpreforkc%e6%a8%a1%e5%9d%97%e5%92%8cworkerc%e6%a8%a1%e5%9d%97%e7%9a%84%e6%af%94%e8%be%83.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>什么是MPM？</title>
		<link>http://blog.thematice.com/html/y2007/11/22/30/%e4%bb%80%e4%b9%88%e6%98%afmpm%ef%bc%9f.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bb%2580%25e4%25b9%2588%25e6%2598%25afmpm%25ef%25bc%259f</link>
		<comments>http://blog.thematice.com/html/y2007/11/22/30/%e4%bb%80%e4%b9%88%e6%98%afmpm%ef%bc%9f.html#comments</comments>
		<pubDate>Thu, 22 Nov 2007 09:07:06 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[mpm]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/11/22/%e4%bb%80%e4%b9%88%e6%98%afmpm%ef%bc%9f/</guid>
		<description><![CDATA[MPM（Multi -Processing Modules，多路处理模块）是Apache2.0中影响性能的最核心特性。是Apache 2.x才支持的一个可插入的并发模型，在编译的时候，我们只可以选择一个并发模型 格式 –with-mpm=MPM Choose the process model for Apache to use. MPM={beos&#124;worker&#124;prefork&#124;mpmt_os2&#124; perchild&#124;leader&#124;threadpool} 1、Beos、mpmt_os2分别是BeOS和OS/2上缺省的MPM 2、perchild主要设计目的是以不同的用户和组的身份来运行不同的子进程.这在运行多个需要CGI的虚拟主机时特别有用,会比1.3版中的SuExec 机制做得更好. 3、leader和threadpool都是基于worker的变体,还处于实验性阶段,某些情况下并不会按照预期设想的那样工作,所以 Apache官方也并不推荐使用. 4、prefork如果不用“–with-mpm”显式指定某种MPM,prefork就是LInux/Unix平台上缺省的MPM.它所采用的预派生子 进程方式也是 Apache 1.3中采用的模式.prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不 同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一. prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进 程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足 MinSpareServers设置的值为止.这就是预派生（prefork）的由来.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销 以增加性能. 5、worker相对于prefork,worker是2.0 版中全新的支持多线程和多进程混合模型的MPM.由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器.但是, worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性.这种MPM的工作方式将是Apache 2.0的发展趋势. worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild 线程数,各个线程独立地处理请求.同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最 多的空闲线程数;而MaxClients设置了所有子进程中的线程总数.如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程.]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/11/22/30/%e4%bb%80%e4%b9%88%e6%98%afmpm%ef%bc%9f.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>看了一篇好文章，拿来分享。</title>
		<link>http://blog.thematice.com/html/y2007/11/12/21/%e7%9c%8b%e4%ba%86%e4%b8%80%e7%af%87%e5%a5%bd%e6%96%87%e7%ab%a0%ef%bc%8c%e6%8b%bf%e6%9d%a5%e5%88%86%e4%ba%ab%e3%80%82.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e7%259c%258b%25e4%25ba%2586%25e4%25b8%2580%25e7%25af%2587%25e5%25a5%25bd%25e6%2596%2587%25e7%25ab%25a0%25ef%25bc%258c%25e6%258b%25bf%25e6%259d%25a5%25e5%2588%2586%25e4%25ba%25ab%25e3%2580%2582</link>
		<comments>http://blog.thematice.com/html/y2007/11/12/21/%e7%9c%8b%e4%ba%86%e4%b8%80%e7%af%87%e5%a5%bd%e6%96%87%e7%ab%a0%ef%bc%8c%e6%8b%bf%e6%9d%a5%e5%88%86%e4%ba%ab%e3%80%82.html#comments</comments>
		<pubDate>Mon, 12 Nov 2007 07:26:11 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[cronolog]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[mod_expire]]></category>
		<category><![CDATA[mod_gzip]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[webalizer]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/11/12/%e7%9c%8b%e4%ba%86%e4%b8%80%e7%af%87%e5%a5%bd%e6%96%87%e7%ab%a0%ef%bc%8c%e6%8b%bf%e6%9d%a5%e5%88%86%e4%ba%ab%e3%80%82/</guid>
		<description><![CDATA[内容摘要： Apache是一个历史悠久并且功能十分强大的WEB服务器，但其丰富的功能对于一个新手来说往往不知道从何下手。我个人感觉Apache的设计充分体现了模块化设计的优势，通过在动态模块加载（DSO）模式下的安装，任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过程可以从简单的静态html服务开始，一个模块一个模块的学习使用。从单纯的HTML静态服务(core)，到复杂的动态页面服务(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。 本文主要从简化安装==&#62;性能调优==&#62;维护方便的角度，介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。让Apache和PHP，Resin等应用模块的独立升级，完全互不影响。 WEB应用的容量规划 Apache主要是一个内存消耗型的服务应用，我个人总结的经验公式： apache_max_process_with_good_perfermance &#60; (total_hardware_memory / apache_memory_per_process ) * 2 apache_max_process = apache_max_process_with_good_perfermance * 1.5 为什么会有一个apache_max_process_with_good_perfermance和apache_max_process呢？原因是在低负载下系统可以使用更多的内存用于文件系统的缓存，从而进一步提高单个请求的响应速度。在高负载下，系统的单个请求响应速度会慢不少，而超过 apache_max_process，系统会因为开始使用硬盘做虚拟内存交换空间而导致系统效率急剧下降。此外，同样的服务：2G内存的机器的 apache_max_process一般只设置到1G内存的1.7倍，因为Apache本身会因为进程过多导致性能下降。 例子1： 一个apache + mod_php的服务器：一个apache进程一般需要4M内存 因此在一个1G内存的机器上：apache_max_process_with_good_perfermance &#60; (1g / 4m) * 2 = 500 apache_max_process ＝ 500 * 1.5 = [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/11/12/21/%e7%9c%8b%e4%ba%86%e4%b8%80%e7%af%87%e5%a5%bd%e6%96%87%e7%ab%a0%ef%bc%8c%e6%8b%bf%e6%9d%a5%e5%88%86%e4%ba%ab%e3%80%82.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP+GD的安装</title>
		<link>http://blog.thematice.com/html/y2007/10/10/6/phpgd%e7%9a%84%e5%ae%89%e8%a3%85.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phpgd%25e7%259a%2584%25e5%25ae%2589%25e8%25a3%2585</link>
		<comments>http://blog.thematice.com/html/y2007/10/10/6/phpgd%e7%9a%84%e5%ae%89%e8%a3%85.html#comments</comments>
		<pubDate>Wed, 10 Oct 2007 12:08:26 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux  web]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/10/10/phpgd%e7%9a%84%e5%ae%89%e8%a3%85/</guid>
		<description><![CDATA[一、下载 gd-2.0.33.tar.gz http://www.boutell.com/gd/ jpegsrc.v6b.tar.gz http://www.ijg.org/ libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/ zlib-1.2.2.tar.gz http://sourceforge.net/projects/zlib/ freetype-2.1.9.tar.gz http://sourceforge.net/projects/freetype/ php-4.3.9.tar.gz　http://www.php.net 二、说明 最新的GD库包括了对GIF的支持，所以不要打GIF补丁 http://sourceforge.net/　好多源代码包可以在上面找到 安装步骤： 先安装zlib,freetype,libpng,jpeg,再装GD,再装PHP 三、安装 1.装zlib tar zxvf zlib-1.2.2.tar.gz cd zlib-1.2.2 ./configure make make install 2.安装libpng tar zxvf libpng-1.2.7.tar.tar cd libpng-1.2.7 cd scripts/ mv makefile.linux ../makefile cd .. make make install 注意，这里的makefile不是用./configure生成，而是直接从scripts/里拷一个 3.安装freetype tar zxvf freetype-2.1.9.tar.gz cd freetype-2.1.9 ./configure make make install [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/10/10/6/phpgd%e7%9a%84%e5%ae%89%e8%a3%85.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache+tomcat+mysql 负载平衡和集群</title>
		<link>http://blog.thematice.com/html/y2007/10/10/5/apachetomcatmysql-%e8%b4%9f%e8%bd%bd%e5%b9%b3%e8%a1%a1%e5%92%8c%e9%9b%86%e7%be%a4.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apachetomcatmysql-%25e8%25b4%259f%25e8%25bd%25bd%25e5%25b9%25b3%25e8%25a1%25a1%25e5%2592%258c%25e9%259b%2586%25e7%25be%25a4</link>
		<comments>http://blog.thematice.com/html/y2007/10/10/5/apachetomcatmysql-%e8%b4%9f%e8%bd%bd%e5%b9%b3%e8%a1%a1%e5%92%8c%e9%9b%86%e7%be%a4.html#comments</comments>
		<pubDate>Wed, 10 Oct 2007 12:02:19 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux  web]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/index.php/2007/10/10/apachetomcatmysql-%e8%b4%9f%e8%bd%bd%e5%b9%b3%e8%a1%a1%e5%92%8c%e9%9b%86%e7%be%a4/</guid>
		<description><![CDATA[前言： 公司开发了一个网站，估计最高在线人数是3万，并发人数最多100人。开发的网站是否能否承受这个压力，如何确保网站的负荷没有问题，经过研究决定如下： （1） 采用负载平衡和集群技术，初步机构采用Apache+Tomcat的机群技术。 （2） 采用压力测试工具，测试压力。工具是Loadrunner。 硬件环境搭建： 为了能够进行压力测试，需要搭建一个环境。刚开始时，测试在公司局域网内进行，但很快发现了一个问题，即一个脚本的压力测试结果每次都不一样，并且差别很大。原来是受公司网络的影响，于是决定搭建一个完全隔离的局域网测试。搭建后的局域网配置如下： （1） 网络速度：100M （2） 三台服务器： 负载服务器 ：操作系统windows2003， Tomcat服务器：操作系统windows2000 Professional 数据库服务器：操作系统windows2000 Professional 三台机器的cpu 2.4 G, 内存 1G。 软件环境搭建： 软件的版本如下： Apache 版本：2.054， Tomcat5.0.30, mysql ：4.1.14. JDK1.5 压力测试工具：Loadrunner7.8。 负载平衡方案如下： 一台机器（操作系统2003）安装apache，作为负载服务器，并安装tomcat作为一个worker；一个单独安装tomcat，作为第二个worker；剩下的一台单独作为数据库服务器。 Apache和tomcat的负载平衡采用JK1.2.14（没有采用2.0，主要是2.0不再维护了）。 集群方案： 采用Tomcat本身的集群方案。在server.xml配置。 压力测试问题： 压力测试后，发现了一些问题，现一一列出来： （1） 采用Tocmat集群后，速度变得很慢。因为集群后，要进行session复制，导致速度较慢。Tomcatd的复制，目前不支持application 复制。复制的作用，主要用来容错的，即一台机器有故障后，apache可以把请求自动转发到另外一个机器。在容错和速度的考虑上，我们最终选择速度，去掉 了Tomcat集群。 （2） 操作系统最大并发用户的限制： 为了采用网站的压力，我们开始的时候，仅测试Tomcat的最大负载数。 Tomcat服务器安装的操作系统是windows2000 Professional。当我们用压力测试工具，并发测试时，发现只要超过15个并发用户，会经常出现无法连接服务器的情况。经过研究，发现是操作系统 的问题：windows2000 Professional 支持的并发访问用户有限，默认的好像是15个。于是我们把操作系统全部采用windows2003 server版本。 （3） 数据库连接池的问题： 测 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/10/10/5/apachetomcatmysql-%e8%b4%9f%e8%bd%bd%e5%b9%b3%e8%a1%a1%e5%92%8c%e9%9b%86%e7%be%a4.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何编译配置Apache中的Configure</title>
		<link>http://blog.thematice.com/html/y2007/10/10/4/%e5%a6%82%e4%bd%95%e7%bc%96%e8%af%91%e9%85%8d%e7%bd%aeapache%e4%b8%ad%e7%9a%84configure.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%25a6%2582%25e4%25bd%2595%25e7%25bc%2596%25e8%25af%2591%25e9%2585%258d%25e7%25bd%25aeapache%25e4%25b8%25ad%25e7%259a%2584configure</link>
		<comments>http://blog.thematice.com/html/y2007/10/10/4/%e5%a6%82%e4%bd%95%e7%bc%96%e8%af%91%e9%85%8d%e7%bd%aeapache%e4%b8%ad%e7%9a%84configure.html#comments</comments>
		<pubDate>Wed, 10 Oct 2007 02:53:50 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gruelstate.cn/?p=4</guid>
		<description><![CDATA[./Configure文件是一个经常被遗忘的Apache工具。本文介绍如何用. /Configure进行编译配置，避免每次编译Apache时进行重复的操作。文章比较了常规方法与使用./Configure这两者各自的优缺点以及 如何手工编辑配制文件进行编译配置。 一、优缺点比较 我们知道，配制Apache编译选项使用的是configure。但除此之外，我们还可以使用Configure。注意两者的差别：常用的那个配制工具是小写c开头的“configure”，这里要讨论的“Configure”以大写的C开头。 解开Apache源代码之后，configure脚本位于顶级目录下面。一般我们按照如下步骤使用它： tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14 ./configure &#8211;prefix=/usr/local/apache make make install Configure是位于src子目录下的脚本。它的参数不是通过命令行指定，而是在一个名为Configuration的配置文件中指定。Apache提供一个默认的配置模板文件Configuration.tmpl，其中包含了通用的默认配置值。 用Configure进行默认安装的过程如下： tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14/src cp -f Configuration.tmpl Configuration vi Configuration &#8230; 如必要，修改默认配置值 ./Configure make make install 缺点 用Configure进行配制有几个明显的缺点，至少对初学者来说是这样的。 首先，这种配制方法并不广为人知。只要是对开放源代码软件有所了解的人，解开源代码并进入它的目录之后，或许会对它的configure脚本感到熟悉，但往往不会进入src子目录去寻找其他什么东西。 即使知道可以用Configure进行编译配制，Configuration文件本身也可能成为小小的障碍。这是因为，虽然 Configuration文件内部包含的说明相当完善，每一行都有丰富的注解说明其作用，但这个文件实在过于庞大，包含了许多大多数人永远不想要加以定 制的选项。 最后，虽然有关这两种配制方法差别的资料略显缺乏，但总地看来初学者最好使用configure，而Configure只适合于经验丰富的用户使用。虽然这并不能算是一个真正的缺点，但它无疑使许多用户驻足而不敢尝试。 优点 使用Configure进行编译配制最大的优点在于，它方便了我们将特定的配置信息保存下来以后再用，无需记住冗长的configure命令行选项。 例如，本人上次编译Apache时使用的configure命令如下： ./configure &#8211;prefix=/usr/local/apache &#8211;enable-module=most &#8211;enable-shared=max &#8211;enable-module=auth_dbm &#8211;enable-module=auth_mysql 这还应该算是一次比较简单的编译。问题在于，即使是输入上面这行命令，我也要查看各种参数的语法并努力记住各个模块的名字。对于大多数人来说这并不是一个很重要的问题，但由于我经常要重新构造Apache，这个问题就显得比较突出了。 configure也有它的好处，它实际上会在src目录下生成一个配制文件，我们可以保存这个文件供以后参考。这个文件就是src/Configuration.apaci。 如果我们为测试目的构造Apache，完成后又要在正式运行的系统上以完全相同的方式构造Apache，configure的这个功能将是 非常有用的。此时，我们只需要复制一份Configuration.apaci文件，将它拷贝到正式运行的服务器上，然后用这个文件编译Apache服务 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2007/10/10/4/%e5%a6%82%e4%bd%95%e7%bc%96%e8%af%91%e9%85%8d%e7%bd%aeapache%e4%b8%ad%e7%9a%84configure.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

