﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-奇葛格的BLOG-文章分类-Servers</title><link>http://www.blogjava.net/onlykeke/category/11107.html</link><description>红尘最可笑，我自乐逍遥</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 07:11:03 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 07:11:03 GMT</pubDate><ttl>60</ttl><item><title>chkconfig命令与系统启动</title><link>http://www.blogjava.net/onlykeke/articles/60639.html</link><dc:creator>奇葛格</dc:creator><author>奇葛格</author><pubDate>Fri, 28 Jul 2006 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/onlykeke/articles/60639.html</guid><wfw:comment>http://www.blogjava.net/onlykeke/comments/60639.html</wfw:comment><comments>http://www.blogjava.net/onlykeke/articles/60639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/onlykeke/comments/commentRss/60639.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/onlykeke/services/trackbacks/60639.html</trackback:ping><description><![CDATA[[http://www.freelamp.com/1003237634/index_html]<br />[http://biz.chinabyte.com/477/2024477.shtml]<br /><br />  Linux 可以有多种运行级。常见的就是多用户的2(单用户，没有NFS),3(完整的多用户),4(用户自定义),5(X)，很多人知道 5 是运行 X-Windows
的级别，而 0 就是关机了。运行级的改变可以通过 init 命令来切换。例如，假设你要维护系统进入单用户状态，那么，可以使用 init 1
来切换。在Linux 的运行级的切换过程中，系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K 和 S
开头的文件，按后面的数字顺序，执行这些脚本。<br />  每一个运行级在 /etc/rc.d下都有个相应的目录。如运行级5，目录就是/etc/rc.d/rc5.d
。包含启动这个运行级的时候运行的相关任务的相关文件。在 Red Hat中, 这些文件一般都是 shell
脚本的符号连接，可以在/etc/rc.d/init.d中找到。
<p>　　让我们用一个简单的例子看一下这些东西， 下面这两个例子行来自我们的 inittab文件:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3"><font style="font-weight: bold; color: rgb(153, 0, 0);">以下是引用片段：</font><br />　　id:3:initdefault: <br />　　l3:3:wait:/etc/rc.d/rc 3</td></tr></tbody></table><p>　　在Red Hat系统中这很典型。一旦init被启动 ，读取/etc/inittab 。 从第一行，我们知道 init
将在系统启动后从运行运行级3。一旦我们到了那个运行级 ，第二行告诉 init 去运行脚本 /etc/rc.d/rc 3 并且在执行前等待终止。</p><p>　　在/etc/rc.d目录的rc 脚本收到 3作为一个参数。 这个 3 相当于运行级3。结果 rc
脚本执行/etc/rc.d/rc3.d目录中的所有脚本。它首先用参数``stop''执行所有K(代表
``kill''杀掉进程或者服务)打头的脚本，接下来，它运行所有以 字母 S 打头的脚本，带有参数``start'' 启动进程或者服务。
最后要指明，K和S脚本的执行顺序是基于排序的; 名为 S90mysql的脚本将在 S95httpd之前执行。</p><p>　　/etc/rc.d/rc3.d
中的脚本实际是对/etc/rc.d/init.d中文件的符号连接。UNIX管理员可以在rc3.d中放制文件， 实际情况下Red
Hat的init.d目录是所有脚本的第一位置，然后生成逻辑连接到 rc*.d 目录。手工作这些文件的管理很烦人、琐碎。
chkconfig现在接手这件事情! Red Hat 的这个chkconfig工具就是专为管理
/etc/rc.d/rc[0-6].d中的符号连接而设计。</p>
语法为：<br />
       chkconfig --list [name]<br />
       chkconfig --add name<br />
       chkconfig --del name<br />
       chkconfig [--level levels] name &lt;on|off|reset&gt;<br />
       chkconfig [--level levels] name<br /><br />
chkconfig 有五项功能：添加服务，删除服务，列表服务，改变启动信息以及检查特定服务的启动状态。<br /><br />
chkconfig 没有参数运行时，显示用法。如果加上服务名，那么就检查这个服务是否在当前运行级启动。如果是，返回 true，否则返回 false。 <br />--level 选项可以指定要查看的运行级而不一定是当前运行级。<br /><br />
如果在服务名后面指定了on，off 或者 reset，那么 chkconfig 会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的启动和停止。reset 指初始化服务信息，无论有问题的初始化脚本指定了什么。<br /><br />
对于 on 和 off 开关，系统默认只对运行级 3，4， 5有效，但是 reset 可以对所有运行级有效。指定 --level 选项时，可以选择特定的运行级。<br /><br />
需要说明的是，对于每个运行级，只能有一个启动脚本或者停止脚本。当切换运行级时，init 不会重新启动已经启动的服务，也不会再次去停止已经停止的服务。<br /><br /><br />
选项介绍：<br />
       --level levels 指定运行级，由数字 0 到 7 构成的字符串，如：<br />
            --level 35 表示指定运行级3 和5。<br /><br />
       --add name<br />
          这个选项增加一项新的服务，chkconfig 确保每个运行级有一项 启动(S) 或者 杀死(K) 入口。如有缺少，则会从缺省的init 脚本自动建立。<br /><br />
       --del name<br />
   用来删除服务，并把相关符号连接从 /etc/rc[0-6].d 删除。<br /><br />
      --list name<br />
     列表，如果指定了name 那么只是显示指定的服务名，否则，列出全部服务在不同运行级的状态。<br /><br /><br />
运行级文件<br />
     每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。<br />
   第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动，那么使用 - 代替运行级。<br />
   第二行对服务进行描述，可以用\ 跨行注释。<br />
       例如，random.init 包含三行：<br />
       # chkconfig: 2345 20 80<br />
       # description: Saves and restores system entropy pool for \<br />
       #              higher quality random number generation.<br />
       表明 random  脚本应该在运行级 2, 3, 4, 5 启动，启动优先权为20，停止优先权为 80。<br />具体详细参见/etc/rc.d/init.d 下的脚本.<br /><b><br />    启动基础知识</b><br />  chkconfig的二进制软件在 /sbin下，默认权限允许任何用户执行 。不过没有root权限的用户只能察看当前的 chkconfig配置。输入:
<p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">[root]# chkconfig --list | grep on</td></tr></tbody></table><p>　　输出的部分内容大致如下:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　amd 0:off 1:off 2:off 3:off 4:on 5:on 6:off <br />　　apmd 0:off 1:off 2:on 3:off 4:on 5:off 6:off <br />　　arpwatch 0:off 1:off 2:off 3:off 4:off 5:off 6:off <br />　　atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off <br />　　autofs 0:off 1:off 2:off 3:off 4:off 5:off 6:off <br />　　named 0:off 1:off 2:off 3:off 4:off 5:off 6:off <br />　　bootparamd 0:off 1:off 2:off 3:off 4:off 5:off 6:off <br />　　keytable 0:off 1:off 2:on 3:on 4:on 5:on 6:off <br />　　crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off <br />　　syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off <br />　　netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off <br />　　network 0:off 1:off 2:on 3:on 4:on 5:on 6:off</td></tr></tbody></table>　
　在输出的每一行，最开始的段代表在 /etc/rc.d/init.d中的init脚本名。
其余的区段表示脚本进入各个运行级时的各运行级0-6的状态。 例如，crond应当在进入运行级2，3， 4，5 的时候启动，当进入 0, 1
and 6的时候停止。我们可以通过find命令查找在/etc/rc.d中所有crond结尾的文件确信我们设置的正确性:
<p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3"><font style="font-weight: bold; color: rgb(153, 0, 0);">以下是引用片段：</font><br />　　[root]# find /etc/rc.d -name ’*crond’ -print <br />　　/etc/rc.d/init.d/crond <br />　　/etc/rc.d/rc0.d/K60crond <br />　　/etc/rc.d/rc1.d/K60crond <br />　　/etc/rc.d/rc2.d/S40crond <br />　　/etc/rc.d/rc3.d/S40crond <br />　　/etc/rc.d/rc4.d/S40crond <br />　　/etc/rc.d/rc5.d/S40crond <br />　　/etc/rc.d/rc6.d/K60crond</td></tr></tbody></table>　
　注意chkconfig报告的每个 ``off'' 节 (0, 1, 6)， 一个 kill脚本存在 script is in place
每一个``on'' 节 (2, 3, 4, 5)，有一个 start脚本。 接下来，执行一个不同的 find 命令以确信每个发现的文件的类型:
<p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3"><font style="font-weight: bold; color: rgb(153, 0, 0);">以下是引用片段：</font><br />　　[root]# find /etc/rc.d -name ’*crond’ -exec file {} ; <br />　　/etc/rc.d/init.d/crond: Bourne shell script text <br />　　/etc/rc.d/rc0.d/K60crond: symbolic link to <br />　　../init.d/crond <br />　　/etc/rc.d/rc1.d/K60crond: symbolic link to <br />　　../init.d/crond <br />　　/etc/rc.d/rc2.d/S40crond: symbolic link to <br />　　../init.d/crond <br />　　/etc/rc.d/rc3.d/S40crond: symbolic link to <br />　　../init.d/crond <br />　　/etc/rc.d/rc4.d/S40crond: symbolic link to <br />　　../init.d/crond <br />　　/etc/rc.d/rc5.d/S40crond: symbolic link to <br />　　../init.d/crond <br />　　/etc/rc.d/rc6.d/K60crond: symbolic link to <br />　　../init.d/crond</td></tr></tbody></table>　　这表明在init.d中找到的crond是一个shell脚本，找到的所有其他的文件都是对 crond 脚本的符号连接。<br /><br /><strong>    调整chkconfig项</strong><p>　　调整chkconfig的 项几乎和列出现在的设置一样容易。格式:</p><p>　　chkconfig [--level &lt;运行级&gt;] &lt;名字&gt;</p><p>　　例如，如果我们决定在运行级 2禁止crond，</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　# chkconfig --level 2 crond off</td></tr></tbody></table><p>　　(root执行) 会在运行级2关掉crond. 运行 chkconfig --list会确信crond的配置已经被调整。 更进一步，下面的find 命令command 显示一个 kill脚本已经在目录rc2.d中代替了 start脚本:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3"><strong></strong><br />　　[root]# find /etc/rc.d -name ’*crond’ -print <br />　　/etc/rc.d/init.d/crond <br />　　/etc/rc.d/rc0.d/K60crond <br />　　/etc/rc.d/rc1.d/K60crond <br />　　/etc/rc.d/rc2.d/K60crond <br />　　/etc/rc.d/rc3.d/S40crond <br />　　/etc/rc.d/rc4.d/S40crond <br />　　/etc/rc.d/rc5.d/S40crond <br />　　/etc/rc.d/rc6.d/K60crond</td></tr></tbody></table>　
　紧记 chkconfig不是立即自动禁止或激活一个服务的，它只是简单的改变了符号连接，超级用户可以用这个命令
/etc/rc.d/init.d/crond stop立刻禁止crond服务。最后，你可以用一个命令行激活/禁止多个运行级的某个命令 。
例如输入:

<p>　　chkconfig --levels 2345 crond on<br />　　会设定 crond 在运行级2， 3， 4 和 5启动。</p><strong>    删掉一项</strong><p>　　有的时候，
删掉一个服务也很恰当。例如，针对sendmail，在客户机上导入本地账号的邮件没有必要。运行sendmail最为守护进程就不是必要的了。这种情
况，我发现禁止sendmail服务很有必要，减少了潜在的安全问题，从chkconfig中删掉sendmail，输入:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　chkconfig --del sendmail</td></tr></tbody></table><p>　　在下面，我们的 find命令显示该处没有符号连接了 ，不过sendmail的init脚本仍然有:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3"><strong></strong><br />　　[root]# find /etc/rc.d -name ’*sendmail’ -print <br />　　/etc/rc.d/init.d/sendmail</td></tr></tbody></table>　
　在我看来这很完美。脚本保留了，万一 sendmail
需要作为一个服务实现呢?不过所有的符号连接去掉了。我们能在每一个运行级禁止sendmail
服务，这将在每一个rc*.d子目录中放置一个kill脚本，虽然sendmail从不在初始化阶段启动，是个不必要的任务
，可是，我曾看到一些系统管理员需要在特定的场合手工启动服务 。把kill脚本留在那里确保可以干净的杀掉服务。
<p>　　<strong>添加一个chkconfig 项</strong></p><p>　　到目前为止，一切顺利。我们已经知道使用chkconfig如何查看、调整、删掉服务。现在添加一个新的服务。看下面的脚本 oracle (see Listing 1).</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　#!/bin/sh&lt;\n&gt; <br />　　#chkconfig: 2345 80 05 <br />　　#description: Oracle 8 Server <br />　　ORA_HOME=/usr/home/oracle/product/8.0.5 <br />　　ORA_OWNER=oracle <br />　　if [ ! -f $ORA_HOME/bin/dbstart ] <br />　　then <br />　　echo "Oracle startup: cannot start" <br />　　exit <br />　　fi <br />　　case "$1" in <br />　　"start") <br />　　su-$ORA_OWNER -c $ORA_HOME/bin/dbstart <br />　　su-$ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" <br />　　;; <br />　　"stop") <br />　　su-$ORA_OWNER -c $ORA_HOME/bin/dbshut <br />　　su-$ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" <br />　　;; <br />　　esac</td></tr></tbody></table><p>　　使用这个脚本， Oracle 8可以以参数 ``start''启动，以 ``stop'' 参数停止。它符合init脚本的最小要求可以和 /etc/rc.d/rc脚本联合使用。</p><p>　　把脚本放到 /etc/rc.d/init.d中并运行 (以 root) :</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　chmod +x /etc/rc.d/init.d/oracle</td></tr></tbody></table><p>　　使你的脚本可执行 。如果你担心普通用户察看这个脚本，你可以设定更严格的文件权限 。只要这个脚本可以被root作为单独的脚本运行就可以。</p><p>　　注意脚本中的两行注释:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　#chkconfig: 2345 80 05 <br />　　#description: Oracle 8 Server</td></tr></tbody></table><p>　　chkconfig需要这些行来决定如何实现初始运行级添加服务，如何设定启动和停止顺序的优先级 。 这些行指明脚本将为运行级2，3，4，5启动 Oracle 8 服务。另外， 启动优先权将被设定为 80而停止优先权设定为 05。</p><p>　　现在脚本在合适的位置，并且有合适的执行权限，以及恰当的chkconfig注释， 我们可以添加init脚本，作为 root，　　 
</p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3"># chkconfig --add oracle.</td></tr></tbody></table><p>　　用 chkconfig的查询，我们能核实我们所作的添加:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　[root]# chkconfig --list | grep oracle <br />　　oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off</td></tr></tbody></table><p>　　而且，我们可以用标准的 find 命令察看chkconfig如何设定符号连接:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　[root]# find /etc/rc.d -name ’*oracle’ -print <br />　　/etc/rc.d/init.d/oracle <br />　　/etc/rc.d/rc0.d/K05oracle <br />　　/etc/rc.d/rc1.d/K05oracle <br />　　/etc/rc.d/rc2.d/S80oracle <br />　　/etc/rc.d/rc3.d/S80oracle <br />　　/etc/rc.d/rc4.d/S80oracle <br />　　/etc/rc.d/rc5.d/S80oracle <br />　　/etc/rc.d/rc6.d/K05oracle</td></tr></tbody></table>　
　正如需要的那样，kill连接的名字包含优先权05而start连接包含80。如果你需要调整优先权， (e.g.我们停止的优先权需要设为
03)，简单的调整oracle init脚本的chkconfig 注释行并运行 reset命令 command，如下所示。符号连接会被改名:
<p></p>


　　[root]# chkconfig oracle reset <br />　　[root]# find /etc/rc.d -name ’*oracle’ -print <br />　　/etc/rc.d/init.d/oracle <br />　　/etc/rc.d/rc0.d/K03oracle <br />　　/etc/rc.d/rc1.d/K03oracle <br />　　/etc/rc.d/rc2.d/S80oracle <br />　　/etc/rc.d/rc3.d/S80oracle <br />　　/etc/rc.d/rc4.d/S80oracle <br />　　/etc/rc.d/rc5.d/S80oracle <br />　　/etc/rc.d/rc6.d/K03oracle<br /><br /><strong>    Red Hat 7中的改进</strong><p>　　大家可能都知道了，inetd在 Red Hat 7中已经被xinetd 所取代。而且，chkconfig 的功能已经被扩展，可以管理一些xinetd的Internet服务。例子如下:</p><p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　[root]# chkconfig --list <br />　　... <br />　　xinetd based services: <br />　　finger: on <br />　　linuxconf-web: off <br />　　rexec: off <br />　　rlogin: off <br />　　rsh: off <br />　　ntalk: off <br />　　talk: off <br />　　telnet: on <br />　　tftp: off <br />　　wu-ftpd: on</td></tr></tbody></table>　　禁掉一个 xinetd 服务，可能是 finger，你应该输入:
<p></p><table style="border: 1px dotted rgb(204, 204, 204); table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tbody><tr><td style="" bgcolor="#f3f3f3">　　[root]# chkconfig finger off.</td></tr></tbody></table><p>　　很简捷啊，呵呵。可是，这里有个问题。当配置已经改变，命令/etc/init.d/xinetd reload指明xinetd
自动重载入新的配置，被 chkconfig执行。这个脚本运行一个带有SIGUSR2信号的kill 指示 xinetd 进行一个“硬“重配置。</p><p>　　那意味着什么?哦，当我测试的时候，通过xinetd 提供的活动服务(i.e., Telnet, FTP,
etc.)立刻被中止。如果你能计划在最合适的时间启动/禁止你的系统上的服务，可能不是个问题。作为一种替代方式，你可以调整你的
/etc/init.d/xinetd脚本 ，这样 reload 选项发送一个 SIGUSR1 信号。
这是个“软“重配置。这将重启动你的服务而不中断你现存的连接 。</p><p>　　chkconfig 管理下，添加xinetd服务只要简单的添加xinetd服务文件到 /etc/xinetd.d目录中。chkconfig会自动的“捡起“它并使其可用，通过chkconfig 工具进行管理。简洁阿!</p><p>　　<strong>结论</strong></p><p>　　现在你已经应该认识到红帽子的chkconfig工具管理init脚本的好处了，虽然它的功能似乎简单了些，但是它节省时间，这使其成为一个系统管理员适用的命令，值得记牢。</p><br /><br /><img src ="http://www.blogjava.net/onlykeke/aggbug/60639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/onlykeke/" target="_blank">奇葛格</a> 2006-07-28 18:02 <a href="http://www.blogjava.net/onlykeke/articles/60639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Install MRTG [转]</title><link>http://www.blogjava.net/onlykeke/articles/60588.html</link><dc:creator>奇葛格</dc:creator><author>奇葛格</author><pubDate>Fri, 28 Jul 2006 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/onlykeke/articles/60588.html</guid><wfw:comment>http://www.blogjava.net/onlykeke/comments/60588.html</wfw:comment><comments>http://www.blogjava.net/onlykeke/articles/60588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/onlykeke/comments/commentRss/60588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/onlykeke/services/trackbacks/60588.html</trackback:ping><description><![CDATA[[http://www.uplinux.net/data/2006/0708/article_992.html]<br />最近有不少朋友在问MRTG的问题,我前一段时间也搞了一些,今天花了一天的时间一边重新做一遍,一边写文档.现在文档写完了,把它拿出来共享给大家. 由于水平有限,里面如果有什么错误的话,就帮忙指出.  <br />请相信如果照着这个来做,你的MRTG很快就会搞定.^_^. <br /><br />主要功能: <br />用一个网页来监视系统的CPU,NIC,MEM,SWAP,DISK usage, DISK I/O.情况. <br />里面的script有部分是自已写的,也有部分是下载的.像磁盘空间那个script是下载的,但是觉得功能不是很好用,由于有现成的也就没有再写,如果哪位有更好的script望请共享.<br />1. 安装. <br />(1)需要的RPM <br />RHEL 3.0/4.0的安装CD带有MRTG的RPM安装包. 为了使用MRTG的一些脚本,需要安装其他的一些安装包. <br />Sysstat.rpm 系统状况监视安装包.(cpu.sh) <br />Procps.rpm 内存,Swap 使用情况工具等(cpu.sh,mem.sh,swap.sh) <br />Coreutils.rpm (df.pl,disk.sh) <br />gd-1.8.4-4 <br />gd-devel-1.8.4-4 <br />perl-5.6.0-17 <br />perl-CGI <br />mod_perl-1.24_01-3 <br />libpng-1.0.12-2 <br />libpng-devel-1.0.12-2 <br />gcc-2.96-98 <br />gcc-g77-2.96-98 <br />gcc-c++-2.96-98 <br />zlib-1.1.3-24 <br />zlib-devel-1.1.3-24 <br />httpd(apache) <br />net-snmp <br />mrtg <br />检查装有没有上面rpm包. <br />(2)安装MRTG <br />  Rpm –ivh mrtg -2.9.29-4.ent.i386.rpm<br />2. 配置SNMP 让他可以配合MRTG工作 <br />编辑/etc/snmp/snmpd.conf <br />把下面的#号去掉  <br />#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc #在89行  <br />把下面的语句#在62行  <br />access notConfigGroup "" any noauth exact systemview none none   <br />改为：  <br />access notConfigGroup "" any noauth exact mib2 none none <br />改完重启一下snmp <br />Service snmpd restat<br /><br />3. 配置MRTG <br />(1) mkdir /var/www/html/mrtg <br />(2) mkdir /opt/mrtg <br />(3) 从下面的贴子复制以下几个script 到/opt/mrtg <br />Cpu.sh , mem.sh , swap.sh, diskperf.sh, disk.pl <br />    (4) cp /var/www/mrtg/* /var/www/html/mrtg <br />(5) /usr/bin/cfgmaker –output=/var/www/html/mrtg/mrtg.cfg public@10.102.17.100 用来配置一个mrtg配置文件. <br />(./cfgmaker --global 'WorkDir: /opt/jakarta-tomcat-5.0.16/webapps/ROOT/mrtg' --global 'Options[_]: growright,bits' --ifref=ip --output /etc/mrtg.cfg public@x.x.x.x)<br />(6) 编辑MRTG的配置文件 vi /var/www/html/mrtg/mrtg.cfg <br />   (1)把WorkDir: /var/www/html/mrtg 加入到配置文件的前面. <br />(2)把Options[_]: growright, bits 前面的#删掉. <br />(3)把要监测的几个ITEM加入到配置文件里面去. <br />  1) CPU  <br />   ################CPU###################### <br />Target[cpu]: `/opt/mrtg/cpu.sh` <br />MaxBytes[cpu]: 12500000 <br />Title[cpu]: CPU -- XMNLINUXTEST02 <br />Options[cpu]: gauge,nopercent,growright <br />YLegend[cpu]: CPU loading (%) <br />ShortLegend[cpu]:% <br />LegendO[cpu]: &amp; CPU USER; <br />LegendI[cpu]: &amp; CPU SYSTEM; <br />PageTop[cpu]: &lt;H1&gt;;CPU  -- XMNLINUXTEST02&lt;/H1&gt;; <br />2)NIC 用配置文件自动配好的. <br />3)MEM  这个图最大设为2G,如果服务器有更大的内存,可以修改Maxbytes. <br />###############    MEM  2G  ################# <br />Target[managemem]:`/opt/mrtg/mem.sh` <br />Unscaled[managemem]: dwym <br />MaxBytes[managemem]: 2048000 <br />Title[managemem]:Memory <br />ShortLegend[managemem]: &amp; <br />kmg[managemem]:kB,MB <br />kilo[managemem]:1024 <br />YLegend[managemem]: Memory Usage <br />Legend1[managemem]: Total Memory <br />Legend2[managemem]: Used Memory <br />LegendI[managemem]: Total Memory <br />LegendO[managemem]: Used Memory <br />Options[managemem]: growright,gauge,nopercent <br />PageTop[managemem]:&lt;H1&gt;;Memory -------XMNLINUXTEST2&lt;/H1&gt;; <br />4)Swap   也是设为2G,根据实际情况改MaxBytes. <br />################### Swap  2G####################### <br />Target[swap]:`/opt/mrtg/swap.sh` <br />Unscaled[swap]: dwym <br />MaxBytes[swap]: 2048000 <br />Title[swap]:Memory State of Server <br />ShortLegend[swap]: &amp; <br />kmg[swap]:kB,MB <br />kilo[swap]:1024 <br />YLegend[swap]: Swap Usage <br />Legend1[swap]: Total Swap <br />Legend2[swap]: Used Swap <br />LegendI[swap]: Total Swap <br />LegendO[swap]: Used Swap <br />Options[swap]: growright,gauge,nopercent <br />PageTop[swap]:&lt;H1&gt;;Swap-------XMNLINUXTEST02&lt;/H1&gt;; <br /><br />5)设置磁盘使用量  最大为480G,可以根据实际情况修改MaxBytes <br />################## Disk Space  480G  ######################### <br />Target[disk]: `/opt/mrtg/df.pl` <br />Title[disk]: Disk Space ----XMNLINUXTEST02 <br />Unscaled[disk]: dwym <br />MaxBytes[disk]: 465247550 <br />kmg[disk]: KB,MB,GB <br />LegendI[disk]: Total Disk Space <br />LegendO[disk]: Used Disk Space <br />Legend1[disk]: Total Disk Space <br />Legend2[disk]: Used Disk Space <br />YLegend[disk]:  Megabytes <br />ShortLegend[disk]: &amp; <br />Options[disk]: growright,gauge,nopercent <br />PageTop[disk]: &lt;H1&gt;;Disk Space --------XMNLINUXTEST02&lt;/H1&gt;;<br />6)磁盘I/O的检测,如果需要的检,更多的分区,修改并复制这个部分,并修改diskperf.sh <br />################## Disk I/O 100K/sec  /DEV/SDA  ########## <br /># If you want monitor more disk, please copy below create <br /># now monitor job, and copy &amp; modify the diskperf.sh to setting disk. <br />Target[diskIO]: `/opt/mrtg/diskperf.sh` <br />Title[diskIO]: Disk HDA I/O Utilization Report <br />Unscaled[diskIO]: dwym <br />MaxBytes[diskIO]: 100 <br />PageTop[diskIO]: &lt;H1&gt;;Disk I/O Utilization Report&lt;/H1&gt;; <br />kmg[diskIO]: KB,MB,GB <br />LegendI[diskIO]: Disk I/O KBread/sec <br />LegendO[diskIO]: Disk I/O KBwrite/sec <br />Legend1[diskIO]: Disk I/O KBread/sec <br />Legend2[diskIO]: Disk I/O KBwrite/sec <br />YLegend[diskIO]:  Megabytes <br />ShortLegend[diskIO]: &amp; <br />Options[diskIO]: growright,gauge,nopercent<br />4. 编译配置文件 <br />先在/etc/profile 加入两个参数 <br />LC_ALL=C <br />LANGUAGE=on <br /><br /># env LANG=C /usr/bin/mrtg /var/www/html/mrtg/mrtg.cfg   <br />前面两次会出错,多运行几次就没有问题. <br />5. 生成html文件. <br />/usr/bin/indexmaker –output=/var/www/html/mrtg/index.html –title=主机名 /var/www/html/mrtg/mrtg.cfg <br />6. 配置apache 的设置.  <br />#vi /etc/httpd/conf.d/mrtg.cfg <br /> 把Alias /mrtg /var/www/mrtg 改为Alias /mrtg /var/www/html/mrtg <br /> 把Allow from localhost  改为Allow from all <br />#service httpd restart ,重启apache. <br />7. 配置,自运行脚本,每五分钟自动运行一次. <br />在root 下启动 crontab –e 添加计划 <br />     */5 * * * *  env LANG=C /usr/bin/mrtg /var/www/html/mrtg/mrtg.cfg <br />8.  确认service http&amp;crontab的运进级别. <br />可以用下面两个命令查看这个服务的进行状况,  <br />#chkconfig –list |grep httpd <br />#chkconfig –list |grep crontab <br />    或用设定运行级别 <br />chkconfig --level 35 httpd on <br />chkconfig --level 35 crontab on5. 常见问题 <br />(1)问:实际内存或硬盘跟的图里面的值相差太多,要吗线超出图表,要吗,在图表的下面. 如何更改图表的比例? 如内存实际上只有512M,但表里面内存显示最大为2G. <br />答:修改/var/www/html/mrtg/mrtg.cfg 找到相关的部分, 修改MaxBytes[managemem]: 2048000 中的2048000为512000 <br />(2)问:我有几个硬盘,如果要监测其他的硬盘IO? <br />  答:首先复制一份diskperf.sh 成diskperf2.sh ,再修改diskperf2.sh里面把hd=xxx改为你要监测的硬盘,再修改/var/www/html/mrtg/mrtg.cfg 复制sda的那一部门,并修改相关的部分. <br />如Target[diskIO]:`/opt/mrtg/diskperf.sh` 改成Target[diskIO]: `/opt/mrtg/diskperf2.sh` <br />   这一部份的[diskIO]改为disk2IO <br />(3)问:修改了配置文件/var/www/html/mrtg/mrtg.cfg 后,网页没有生效 <br />  答:修改完配置文件应该要重新用下面命令生成新的网页. <br />/usr/bin/indexmaker –output=/var/www/html/mrtg/index.html –title=主机名 /var/www/html/mrtg/mrtg.cfg <br />        (4)问:如何看我的MRTG图. <br />          答:用http://你的IP/mrtg/ 就可以看到了. <br />      <br />附:1: mrtg.cfg 里面几个参数的意思. <br />Target：是要执行的脚本  <br />Xsize：生成图表的横向宽度（最大600）  <br />Ysize：生成图表的纵向高度（最大200）  <br />Title：标题  <br />kMG: Change the default multiplier prefixes <br />Ytics：纵向划分为几个块（格子）  <br />MaxBytes：图表纵向数值的最大上限  <br />PageTop：页面上面的提示  <br />kilo：一般是写1024，如果需要的话，是1000在计算机里的单位  <br />LegendI：从SHELL返回的数据中的第一个  <br />LegendO：从SHELL返回的数据中的第二个  <br />Options： growright，表示图表向右延展 <br />附2:各个script <br />(1) <br />cat /opt/mrtg/cpu.sh <br />#!/bin/bash <br />cpuusr=`/usr/bin/sar -u 1 3 |grep Average |awk '{print $3}'` <br />cpusys=`/usr/bin/sar -u 1 3 |grep Average |awk '{print $5}'` <br />UPtime=`/usr/bin/uptime |awk '{print $3""$4""$5}'` <br />echo $cpuusr <br />echo $cpusys <br />echo $UPtime <br />hostname <br />(2) <br />Disk usage <br />cat /opt/mrtg/df.pl <br />#!/usr/bin/perl <br /># output(df -kl) looks like this: <br /># Filesystem           1k-blocks      Used Available Use% Mounted on <br /># /dev/md0              95645100  30401312  64272080  33% / <br /># /dev/hde1                14119      1159     12231   9% /boot <br /># <br /># In which case, this script returns : <br /># 95659219 <br /># 30402503 <br /># when run. <br />foreach $filesystem (`df -kl | grep -v "Filesystem"`) <br />{ <br />  @df = split(/\s+/,$filesystem); <br />  $total += $df[1]; <br />  $usage += $df[2]; <br />} <br />print "$total\n"; <br />print "$usage\n"; <br />hostname <br />(3) DISK IO   # cat /opt/mrtg/diskperf.sh <br /><br />#!/bin/bash <br /># This script will monitor the KBread/sec &amp;KBwriten/sec of Disk. <br /># Creater: CCC IT loren  ext:2288   2005/8/3 <br /># As sda ,sdb,sdc,sdd,hda. <br /><br /><br /># disk=sda <br />hd=sda <br />disk=/dev/$hd <br />KBread_sec=`iostat -x $disk|grep $hd |awk '{print $8}'` <br />KBwrite_sec=`iostat -x $disk|grep $hd |awk '{print $9}'` <br />echo "$KBread_sec" <br />echo "$KBwrite_sec" <br />hostname <br />(4)MEMORY <br />cat /opt/mrtg/mem.sh <br />#!/bin/bash <br /># This script to monitor the mem usage. <br />totalmem=`/usr/bin/free |grep Mem |awk '{print $2}'` <br />usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'` <br />echo "$totalmem" <br />echo "$usedmem" <br />(5)SWAP <br />cat /opt/mrtg/swap.sh <br />#!/bin/bash <br /># This script to monitor the swap usage. <br />totalswap=`/usr/bin/free |grep Swap |awk '{print $2}'` <br />usedswap=`/usr/bin/free |grep Swap |awk '{print $3}'` <br />echo "$totalswap" <br />echo "$usedswap"<img src ="http://www.blogjava.net/onlykeke/aggbug/60588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/onlykeke/" target="_blank">奇葛格</a> 2006-07-28 15:52 <a href="http://www.blogjava.net/onlykeke/articles/60588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Linux下加挂文件系统的小结</title><link>http://www.blogjava.net/onlykeke/articles/56743.html</link><dc:creator>奇葛格</dc:creator><author>奇葛格</author><pubDate>Wed, 05 Jul 2006 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/onlykeke/articles/56743.html</guid><wfw:comment>http://www.blogjava.net/onlykeke/comments/56743.html</wfw:comment><comments>http://www.blogjava.net/onlykeke/articles/56743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/onlykeke/comments/commentRss/56743.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/onlykeke/services/trackbacks/56743.html</trackback:ping><description><![CDATA[
		<div class="postText">
				<p>　学习操作系统时我们都了解到文件系统是操作系统的重要组成部分之一。文件系统有很多种类型，比windows的fat、fat32；Linux的ext、ext2或ext3；FreeBSD的ufs等等。在使用Linux的过程，也常常Linux操作系统使用虚拟文件系统VFS，通过VFS可以直接存取其它已被内核支持的各种文件系统，用起来就像是在普通的 Linux的ext系列文件系统一样。早期的Linux内置支持的文件系统不多，自 kernel 2.0.x 起并支持到 VFAT ，以后逐 渐增加，到目前可以说　决大多数的文件系统都有了支持。只是有一些如NTFS需要重新编译内核才能支持。</p>
				<p>　　Linux在启动过程中，会按照/etc/fstab中的设置，把各个分区上的文件系统加挂到对应到加载点上去。Linux至少需要两个分区才能启动：一个是根分区/，另一个是交换分区，如果在启动时根分区加载失败，Linux就不能完成启动。如果交换分区加载失败，Linux就不能仍能启动，在内存不够的情况下速度就会受很大的影响。根分区的文件系统类型通常是ext、ext2或ext3，但也可以是其它的一些文件系统。</p>
				<p>　　除了加载了Linux所必需的文件系统外，Linux的用户还经常需要使用其它的各种文件系统，特别是在一台机器上同时安装多个操作系统的时候。比如笔者的机器上同时安装了Linux和Windows2000，其中Windows的C盘采用了NTFS文件系统、D盘采用了FAT32文件系统。而当我在Linux上工作的时候，常常需要访问Windows的C盘和D盘的内容，甚至是网络上的共享目录，Linux下加挂一个文件系统使用的是mount命令，用man mount命令可以得到命令参数的详细解释。下面就来介绍一下在几种情况下以命令行方式加挂文件系统的具体方法：</p>
				<p>　　1.加挂FAT32文件系统</p>
				<p>　　最简单的用法<br />　　mount /dev/hda6 /mnt/d</p>
				<p>　　/dev/hda6是笔者Windows的D盘，/mnt/d是目录加挂点。Linux会识别到/dev/hda6分区的文件系统类型是什么，然后加挂的。当然也可以指定分区的文件系统类型，命令如下：</p>
				<p>　　mount -t vfat /dev/hda6 /mnt/d</p>
				<p>　　在实际中操作中，直接加挂一个windows的分区，中文的文件名和目录名会出现乱码，为了避免这种情况可以指定字符集，命令如下：</p>
				<p>　　mount  /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936<br />　　mount -t vfat /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936</p>
				<p>　　注意：cp936是指简体中文，cp950是指繁体中文。</p>
				<p>　　2.加挂NTFS文件系统</p>
				<p>　　在目前多数的Linux版本上，需要重编译Linux核心才能，加挂NTFS分区(编译方法请参阅其它文章)。核心支持NTFS后，可以用以下命令加挂：</p>
				<p>　　mount -t ntfs /dev/hda2 /mnt/c</p>
				<p>　　同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集，不过和加挂vfat分区不同，实际中用以下命令是可行的：</p>
				<p>　　mount -t ntfs -o iocharset=cp936 /dev/hda2 /mnt/c -r<br />　　mount -t ntfs -o iocharset=cp936,rw /dev/hda2 /mnt/c </p>
				<p>　　3.加挂U盘上的文件系统</p>
				<p>　　现在使用U盘的人越来越多了，其实在Linux下使用U盘也非常简单，Linux对USB设备有很好的支持，在你插入U盘后，U盘被识别为一个SCSI盘，通常您用以下命令就能加挂U盘上的文件系统<br />mount /dev/sda1 /usb</p>
				<p>　　同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集，命令类似于上面对FAT32介绍的：<br />mount /dev/sda1 /usb -o pagecode=936,iocharset=cp936</p>
				<p>　　4.加挂Linux系统通过samba共享出来的目录</p>
				<p>　　利用samba共享出来的目录其实很难说其原来是哪种文件系统，不过这一点不重要，只要它对用户是透明的就好啦。加挂时，我们指定类型为smbfs，在加挂samba共享的分区时，也会出现中文的文件名和目录名乱码情况，可以用以下命令加挂：</p>
				<p>　　mount -t smbfs -o <br />　　username=terry,password=terry,codepage=936,iocharset=cp936<br />　　//terry-linux/terry  /mp3/<br />　　mount -t smbfs -o <br />　　username=terry,password=terry,codepage=936,iocharset=cp936<br />　　//192.168.100.228/terry  /mp3/</p>
				<p>　　注意：你可以不直接写password=terry这个参数，系统界时会要你输入密码，这样就可以防止有人直接看到你的密码。视具体情况而定，-o后面的参数可以对应增减。</p>
				<p>　　5.加挂Window系统共享出来的目录</p>
				<p>　　在局域网中，常常需要去访问其它Windows系统共享出来的目录，在Linux下，安装了samba后就可以使用samba中带的命令来访问Windows机器的共享资源。</p>
				<p>　　用smbclient来列出Windows机器的共享资源   <br /> <br />　　smbclient  -L 192.168.100.111</p>
				<p>　　根据上面所列出Windows的共享资源后，可以选择需要加挂到本地Linux中去的Windows的共享资源，然后使用smbmount或mount来加挂，请参照下面几条命令：</p>
				<p>　　smbmount  //192.168.100.111/public /public/<br />　　mount //192.168.100.111/d /mnt/cdrom -o username=terry (这样要在命令行输入密码的)<br />　　mount //192.168.100.111/d /mnt/cdrom -o username=terry$1234 (这样则不必在命令行输入密码)<br />  <br />　　注：除了上面介绍的命令行方法之外，这时最好的方法就是使用其它的客户端，如LinNeighborhood、networkneighbours、ksmbshare等，请参考其它文章。</p>
				<p>　　以上介绍的都是命令行的方式，每次使用时都要输入一次，如果你常常要加挂一些文件系统，想在启动时自动加挂应该怎样做呢？下面介绍两种方法：</p>
				<p>　　方法1.<br />　　把加挂的命令放在/etc/rc.d/rc.local中。</p>
				<p>　　方法2.<br />　　修改分区配置文件/etc/fstab，在启动时加挂文件系统，下面是我的/etc/fstab文件：<br />　　LABEL=/　　　　/　　　　　　ext3　　　　defaults       <br />　　1 1<br />　　none　　　　　 /dev/pts　　 devpts　　　gid=5,mode=620 <br />　　0 0<br />　　LABEL=/home　　/home　　　　ext3　　　　defaults       <br />　　1 2<br />　　none　　　　　 /proc　　　　proc　　　　defaults       <br />　　0 0<br />　　none　　　　　 /dev/shm　　 tmpfs　　　 defaults       <br />　　0 0<br />　　/dev/hda4　　　swap　　　　 swap　　　　defaults       <br />　　0 0<br />　　/dev/cdrom　　 /mnt/cdrom　　　　　　　 iso9660<br />　　noauto,owner,kudzu,ro 0 0<br />　　/dev/hda2　　 /ntfs　　　　 ntfs　　　　defaults,iocharset=cp936　　0 0<br />　　/dev/hda6　　 /win　　　　　vfat　　　　defaults,codepage=936,iocharset=　　cp936　　0 0<br />　　//192.168.100.228/terry /mp3　　　　smbfs　　username=terry,password=terry,codepage=cp936,iocharset=cp936 0 0</p>
				<p>　　请注意最后三行：</p>
				<p>　　倒数第四行，加挂我的C盘，NTFS格式的<br />　　倒数第三行，加挂我的D盘，FAT32格式的<br />　　倒数第二行，加挂的是我的局域网中另一台安装samba的Linux文件服务器上的一个目录。</p>
				<p>　　本文总结了一下在Linux上不同情况下几种常见加挂文件系统的方法，包括如何加挂FAT/NTFS/smbfs/U盘，以及解决加挂中关于中文显示/用户密码等的问题。<br /></p>
		</div>
<img src ="http://www.blogjava.net/onlykeke/aggbug/56743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/onlykeke/" target="_blank">奇葛格</a> 2006-07-05 14:32 <a href="http://www.blogjava.net/onlykeke/articles/56743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Install awstats 6.5</title><link>http://www.blogjava.net/onlykeke/articles/46033.html</link><dc:creator>奇葛格</dc:creator><author>奇葛格</author><pubDate>Sat, 13 May 2006 16:48:00 GMT</pubDate><guid>http://www.blogjava.net/onlykeke/articles/46033.html</guid><wfw:comment>http://www.blogjava.net/onlykeke/comments/46033.html</wfw:comment><comments>http://www.blogjava.net/onlykeke/articles/46033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/onlykeke/comments/commentRss/46033.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/onlykeke/services/trackbacks/46033.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#336600">1.</font>
				<br />cd /usr/local<br />wget <a href="http://awstats.sourceforge.net/files/awstats-6.5.tar.gz">http://awstats.sourceforge.net/files/awstats-6.5.tar.gz</a><br />tar xzvf awstats-6.5.tar.gz<br />cd /usr/local/awstats/tools/<br /><br /><font color="#336600">2.</font><br />perl awstats_configure.pl <br />----- AWStats awstats_configure 1.0 (build 1.6) (c) Laurent Destailleur -----<br />This tool will help you to configure AWStats to analyze statistics for<br />one web server. You can try to use it to let it do all that is possible<br />in AWStats setup, however following the step by step manual setup<br />documentation (docs/index.html) is often a better idea. Above all if:<br />- You are not an administrator user,<br />- You want to analyze downloaded log files without web server,<br />- You want to analyze mail or ftp log files instead of web log files,<br />- You need to analyze load balanced servers log files,<br />- You want to 'understand' all possible ways to use AWStats...<br />Read the AWStats documentation (docs/index.html).</p>
		<p>-----&gt; Running OS detected: Linux, BSD or Unix</p>
		<p>-----&gt; Check for web server install<br />  Found Web server Apache config file '/usr/local/apache2/conf/httpd.conf'</p>
		<p>-----&gt; Check and complete web server config file '/usr/local/apache2/conf/httpd.conf'<br />Warning: You Apache config file contains directives to write 'common' log files<br />This means that some features can't work (os, browsers and keywords detection).<br />Do you want me to setup Apache to write 'combined' log files [y/N] ? y<br />  Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"'<br />  Add 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"'<br />  Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"'<br />  Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"'<br />  Add '&lt;Directory&gt;' directive<br />  AWStats directives added to Apache config file.</p>
		<p>-----&gt; Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'<br />  File awstats.model.conf updated.</p>
		<p>-----&gt; Need to create a new config file ?<br />Do you want me to build a new AWStats config/profile<br />file (required if first install) [y/N] ? y</p>
		<p>-----&gt; Define config file name to create<br />What is the name of your web site or profile analysis ?<br />Example: <a href="http://www.mysite.com/">www.mysite.com</a><br />Example: demo<br />Your web site, virtual server or profile name:<br />&gt; mms.xxxxx.com</p>
		<p>-----&gt; Define config file path<br />In which directory do you plan to store your config file(s) ?<br />Default: /etc/awstats<br />Directory path to store config file(s) (Enter for default):<br />&gt; </p>
		<p>-----&gt; Create config file '/etc/awstats/awstats.mms.xxxxx.com.conf'<br /> Config file /etc/awstats/awstats.mms.xxxxx.com.conf created.</p>
		<p>-----&gt; Restart Web server with '/sbin/service httpd restart'<br />httpd: unrecognized service</p>
		<p>-----&gt; Add update process inside a scheduler<br />Sorry, configure.pl does not support automatic add to cron yet.<br /><font color="#ff9900">You can do it manually by adding the following command to your cron:<br />/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=mms.xxxxx.com<br />Or if you have several config files and prefer having only one command:<br />/usr/local/awstats/tools/awstats_updateall.pl now</font><br />Press ENTER to continue... </p>
		<p>
				<br />A SIMPLE config file has been created: /etc/awstats/awstats.mms.xxxxx.com.conf<br />You should have a look inside to check and change manually main parameters.<br />You can then manually update your statistics for 'mms.xxxxx.com' with command:<br />&gt; perl awstats.pl -update -config=mms.xxxxxcom<br />You can also read your statistics for 'mms.xxxxx.com' with URL:<br />&gt; <a href="http://localhost/awstats/awstats.pl?config=mms.xxxxx.com">http://localhost/awstats/awstats.pl?config=mms.xxxxx.com</a></p>
		<p>Press ENTER to finish...<br /><br />up to this procedure, the httpd.conf have these codes<br />#<br /># Directives to allow use of AWStats as a CGI<br />#<br />Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"<br />Alias /awstatscss "/usr/local/awstats/wwwroot/css/"<br />Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"<br />ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"</p>
		<p>#<br /># This is to permit URL access to scripts/files in AWStats directory.<br />#<br />&lt;Directory "/usr/local/awstats/wwwroot"&gt;<br />    Options None<br />    AllowOverride None<br />    Order allow,deny<br />    Allow from all<br />&lt;/Directory&gt;<br /><br /><font color="#336600">3.vi /etc/awstat/awstats.mms.xxxxx.com.conf<br /></font>LogFile="/usr/local/apache2/logs/access_log"<br /><br />4.according to  DirData="/var/lib/awstats"  in <font color="#336600">/etc/awstat/awstats.mms.xxxxx.com.conf<br /></font>create dir /var/lib/awstats and chown -R nobody /var/lib/awstats<br />restart server<br /><br />5. perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=mms.xxxxx.com<br /><br />6.chmod 755 /usr/local/awstats<br /> http://mms.xxxxx.com/awstats/awstats.pl?config=mms.xxxxx.com<br /><br />7.crontab -e<br />1 3 * * *  ()<br /><br /><br /></p>
<img src ="http://www.blogjava.net/onlykeke/aggbug/46033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/onlykeke/" target="_blank">奇葛格</a> 2006-05-14 00:48 <a href="http://www.blogjava.net/onlykeke/articles/46033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache配置文件(httpd.conf)中文说明</title><link>http://www.blogjava.net/onlykeke/articles/46025.html</link><dc:creator>奇葛格</dc:creator><author>奇葛格</author><pubDate>Sat, 13 May 2006 15:12:00 GMT</pubDate><guid>http://www.blogjava.net/onlykeke/articles/46025.html</guid><wfw:comment>http://www.blogjava.net/onlykeke/comments/46025.html</wfw:comment><comments>http://www.blogjava.net/onlykeke/articles/46025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/onlykeke/comments/commentRss/46025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/onlykeke/services/trackbacks/46025.html</trackback:ping><description><![CDATA[
		<table class="partsmb" cellspacing="0" border="0">
				<tbody>
						<tr>
								<td>
								</td>
								<td>
										<span id="_ctl3_lblPermalink">
												<table class="fixedTable blogpost" cellspacing="0" width="100%" border="0">
														<tbody>
																<tr>
																		<td class="ellipse">
																				<span class="bvTitle" id="subjcns!8CE483F458A23E32!513">
																						<strong>Apache配置文件(httpd.conf)中文说明</strong>
																				</span>
																		</td>
																</tr>
																<tr>
																		<td class="bvh8">
																				<strong>
																				</strong>
																		</td>
																</tr>
																<tr>
																		<td id="msgcns!8CE483F458A23E32!513">
																				<p>
																						<font color="#006600"># 基于 NCSA 服务的配置文件。 #<br />#这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。<br />#<br />#不要只是简单的阅读这些指令信息而不去理解它。<br />#这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。<br />#<br />#这些配置指令被分为下面三个部分：<br />#1. 控制整个Apache服务器行为的部分（即全局环境变量）<br />#2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数<br />#3. 虚拟主机的设置参数<br />#<br />#配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”），<br />#服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot<br />#的值附加在文件名的前面，例如，对“logs/foo.log"，如果ServerRoot的值<br />#为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log”<br />#<br />##第一区：全局环境参数<br />#<br />#这里设置的参数将影响整个Apache服务器的行为；<br />#例如Apache能够处理的并发请求的数量等。<br />#<br />#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。<br />#<br />#注意！如果你想要将它指定为NFS或其它网络上的位置，<br />#请一定要去阅读与LockFile有关的文档（可能在<br />#</font>
																						<a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile">
																								<font color="#006600">http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile</font>
																						</a>
																						<font color="#006600">)。<br />#这将会使你自己也能解决很多问题。<br />#<br />#路径的结尾不要添加斜线。<br />#</font>
																				</p>
																				<p>ServerRoot "/usr/loacl/apache2"</p>
																				<p>
																						<font color="#006600">#<br />#串行访问的锁文件必须保存在本地磁盘上<br />#<br /></font>&lt;IfModule !mpm_winnt.c&gt;<br />&lt;IfModule !mpm_neware.c&gt;<br /><font color="#006600">#LockFile logs/accept.lock</font><br />&lt;/IfModule&gt;<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#ScoreBoardFile:用来保存内部服务进程信息的文件。<br />#如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中，<br />#并且它不能被第三方软件所使用。<br />#如果指定了，要确保不能使用两个Apache使用同一个记分板文件，<br />#这个记分板文件必须保存在本地磁盘上。</font>
																				</p>
																				<p>&lt;IfModule !mpm_netware.c&gt;<br />&lt;IfModule !perchild.c&gt;<br /><font color="#006600">#ScoreBoardFile logs/apache_runtime_status</font><br />&lt;IfModule&gt;<br />&lt;IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br />#PidFile:记录服务器启动进程号的文件。<br />#<br /></font>&lt;IfModule !mpm_neware.c&gt;<br />PidFile logs/httpd.pid<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br />#Timeout:接收和发送前超时秒数<br />#<br /></font>Timeout 300</p>
																				<p>
																						<font color="#006600">#<br />#KeepAlive:是否允许稳固的连接（每个连接有多个请求），<br />#设为"Off"则停用。<br />#<br /></font>KeepAlive On</p>
																				<p>
																						<font color="#006600">#<br />#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数，<br />#设为0表示无限制接入。<br />#我们推荐你将其设为一个较大的值，以便提高性能<br /></font>MaxKeepAliveRequests 100</p>
																				<p>
																						<font color="#006600">#<br />#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数<br />#<br /></font>KeepAliveTimeout 15</p>
																				<p>
																						<font color="#006600">##<br />##Server-Pool大小设定（针对MPM的）<br />##<br /># prefork MPM<br /># StartServers:启动时服务器启动的进程数<br /># MinSpareServers:保有的备用进程的最小数目<br /># MaxSpareServers:保有的备用进程的最大数目<br /># MaxClients:服务器允许启动的最大进程数<br /># MaxRequestsPerChild:一个服务进程允许的最大请求数<br /></font>&lt;IfModule prefork.c&gt;<br />StartServers 5<br />MinSpareServers 5<br />MaxSpareServers 10<br />MaxClients 150<br />MaxRequestPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># worker MPM<br /># StartServers:服务器启动时的服务进程数目<br /># MaxClients:允许同时连接的最大用户数目<br /># MinSpareThreads:保有的最小工作线程数目<br /># MaxSpareThreads:允许保有的最大工作线程数目<br /># ThreadsPerChild:每个服务进程中的工作线程常数<br /># MaxRequestsPerChild:服务进程中允许的最大请求数目</font>
																						<br />&lt;IfModule worker.c&gt;<br />StartServers 2<br />MaxClients 150<br />MinSpareThreads 25<br />MaxSpareThreads 75<br />ThreadsPerChild 25<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># perchild MPM<br /># NumServers:服务进程数量<br /># StartThreads:每个服务进程中的起始线程数量<br /># MinSpareThreads:保有的最小线程数量<br /># MaxSpareThreads:保有的最大线程数量<br /># MaxThreadsPerChild:每个服务进程允许的最大线程数<br /># MaxRequestsPerChild:每个服务进程允许连接的最大数量<br /></font>&lt;IfModule perchild.c&gt;<br />NumServers 5<br />StartThreads 5<br />MinSpareThreads 5<br />MaxSpareThreads 10<br />MaxThreadsPerChild 20<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># WinNT MPM<br /># ThreadsPerChild:服务进程中工作线程常数<br /># MaxRequestsPerChild:服务进程允许的最大请求数<br /></font>&lt;IfModule mpm_winnt.c&gt;<br />ThreadsPerChild 250<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># BeOS MPM<br /># StartThreads:服务器启动时启动的线程数<br /># MaxClients:可以启动的最大线程数（一个线程等于一个用户）<br /># MaxRequestsPerThread:每个线程允许的最大请求数<br /></font>&lt;IfModule beos.c&gt;<br />StartThreads 10<br />MaxClients 50<br />MaxRequestsPerThread 10000<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># NetWare MPM<br /># ThreadStachSize:为每个工作线程分配的堆栈尺寸<br /># StartThreads:服务器启动时启动的线程数<br /># MinSpareThreads:用于处理实发请求的空闲线程数<br /># MaxSpareThreads:空闲线程的最大数量<br /># MaxThreads:在同一时间活动的最大线程数<br /># MaxRequestPerChild:一个线程服务请求的最大数量，<br /># 推荐将其设置为0，以实现无限制的接入<br /></font>&lt;IfModule mpm_netware.c&gt;<br />ThreadStackSize 65536<br />StartThreads 250<br />MinSpareThreads 25<br />MaxSpareThreads 250<br />MaxThreads 1000<br />MaxRequestPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># OS/2 MPM<br /># StartServers:启动的服务进程数量<br /># MinSpareThreads:每个进程允许的最小空闲线程<br /># MaxSpareThreads:每个进程允许的最大空闲线程<br /># MaxRequestsPerChild:每个服务进程允许的最大连接数<br /></font>&lt;IfModule mpmt_os2.c&gt;<br />StartServers 2<br />MinSpareThreads 5<br />MaxSpareThreads 10<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># Listen:允许你绑定Apache服务到指定的IP地址和端口上，以取代默认值<br /># 参见&lt;VirtualHost&gt;指令<br /># 使用如下命令使Apache只在指定的IP地址上监听，<br /># 以防止它在IP地址0.0.0.0上监听<br />#<br /># Listen 12.34.56.78:80<br /></font>Listen 80</p>
																				<p>
																						<font color="#006600">#<br /># 动态共享支持（DSO）<br />#<br /># 为了能够使用那些以DSO模式编译的模块中的函数，你必须有相应的“LoadModule”行，<br /># 因此，在这里包含了这些指令，以便能在使用它之前激活。<br /># 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)<br />#<br /># 示例：<br /># LoadModule foo_module modules/mod_foo.so<br />#<br />#<br /># ExtendedStatus：当调用“server-status”时，控制Apache是产生“全”状态<br /># 信息（ExtendedStatus On），还是产生基本信息（ExtendedStatus Off）。<br /># 默认为off<br />#<br /># ExtendedStatus On</font>
																				</p>
																				<p>
																						<font color="#006600">
																								<br />### 第二区：“主”服务配置<br />#<br /># 这一区建立被 “主” 服务器用的指令值,以回应那些不被 &lt;VirtualHost&gt;<br /># 定义处理的任何请求。<br /># 这些数值也提供默认值给后面定义的&lt;VirtualHost&gt;容器。<br /># 如果&lt;VirtualHost&gt;中有定义，那么这里定义的指令值将被<br /># &lt;VirtualHost&gt;中的定义所覆盖。<br />#<br /></font>&lt;IfModule !mpm_winnt.c&gt;<br />&lt;IfModule !mpm_neware.c&gt;<br /><font color="#006600">#<br /># 如果你想使httpd以另外的用户或组来运行，你必须在开始时以root方式启动<br /># 然后再将它切换为你想要使用的用户或组。<br />#<br /># User/Group:运行httpd的用户和组<br /># 在SCO (ODT3)上使用“User nouser”和“Group nogroup”<br /># 在HPUX上，你可能不能以nobody身份使用共享内存，建议创建一个www用户。<br /># 注意一些核心（kernel）在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET)，<br />#节在这些系统上不要使用“Group #-1”。<br />#<br /></font>User nobody<br />Group #-1<br />&lt;/IfModule&gt;<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># ServerAdmin:你的邮件地址，当发生问题时Apache将向你发出邮件。<br /># 作为一个出错文档，这个地址显示在server-generated页上，<br /># 例如：</font>
																						<a href="mailto:admin@your-domain.com">
																								<font color="#006600">admin@your-domain.com</font>
																						</a>
																						<br />
																						<font color="#006600">#<br /></font>ServerAdmin [email]kreny@sina.com[/email]</p>
																				<p>
																						<font color="#006600">#<br /># ServerName指定Apache用于识别自身的名字和端口号。<br /># 通常这个值是自动指定的，但是我们推荐你显式的指定它以防止启动时出错<br />#<br /># 如果你为你的主机指定了一个无效的DNS名，server-generated重定向将不能工作。<br /># 参见UseCanonicalName指令<br />#<br /># 如果你的主机没有注册DNS名，在这里键入它的IP地址<br /># 无论如何，你必须使用它的IP地址来提供服务，<br /># 这里使用一种容易理解的方式重定向服务<br />ServerName </font>
																						<a href="http://www.dalouis.com/">
																								<font color="#006600">http://www.dalouis.com:80</font>
																						</a>
																				</p>
																				<p>
																						<font color="#006600">#<br /># UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。<br /># 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。<br /># 当设置为“On”,Apache会使用ServerName指令的值。<br />#<br /></font>UseCanonicalName Off</p>
																				<p>
																						<font color="#006600">#<br /># DocumentRoot:你的文档的根目录。默认情况下，所有的请求从这个目录进行应答。<br /># 但是可以使用符号链接和别名来指向到其他的位置。<br />#<br /></font>DocumentRoot "/home/redhat/public_html"</p>
																				<p>
																						<font color="#006600">#<br /># Apache可以存取的每个目录都可以配置存取权限（包括它的子目录）。<br />#<br /># 首先，我们配置一个高限制的特征。</font>
																				</p>
																				<p>
																						<font color="#006600"># 这将禁止访问文件系统所在的目录，并添加你希望允许访问的目录块。<br /># 如下所示</font>
																				</p>
																				<p>&lt;Directory /&gt;<br />Order Deny,Allow<br />Deny from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。<br /># - 所以，如果Apache没有象你所期待的那样工作的话,<br /># 请检查你是否在下面明确的指定它可用。<br />#</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># 这将改变到你设置的DocumentRoot<br />#</font>
																				</p>
																				<p>&lt;Directory "/home/redhat/public_html"&gt;</p>
																				<p>
																						<font color="#006600">#<br /># Options：这个指令的值可以是“None”，“All”，或者下列选项的任意组合：<br /># Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews<br />#<br /># 注意，“MultiViews”必须被显式的指定，“Options All”不能为你提供这个特性。<br />#<br /># 这个指令既复杂又重要，请参见<br />#</font>
																						<a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins">
																								<font color="#006600">http://httpd.apache.org/docs-2.0/mod/core.html#optioins</font>
																						</a>
																						<font color="#006600">
																								<br />#</font>
																				</p>
																				<p>Options FollowSymLinks</p>
																				<p>
																						<font color="#006600">#<br /># AllowOverride控制那些被放置在.htaccess文件中的指令。<br /># 它可以是“All”，“None”，或者下列指令的组合：<br /># Options FileInfo AuthConfig Limit<br />#<br /></font>AllowOverride None<br /><font color="#006600">#<br /># 控制谁可以获得服务。<br />#<br /></font>Order allow,deny<br />Allow from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。<br />#</font>
																				</p>
																				<p>UserDir public_html</p>
																				<p>
																						<font color="#006600"># 为防止在UserDir指令上的漏洞，对root用户设置<br /># 象“./”这样的UserDir是非常有用的。<br /># 如果你使用Apache 1.3或以上版本，我们强烈建议你<br /># 在你的服务器配置文件中包含下面的行</font>
																				</p>
																				<p>UserDir disabled root</p>
																				<p>
																						<font color="#006600">#<br /># 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例：<br />#<br /># &lt;Directory /home/*/public_html&gt;<br /># AllowOverride FileInfo AuthConfig Limit Indexes<br /># Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec<br /># &lt;Limit GET POST OPTIONS PROPFIND&gt;<br /># Order allow,deny<br /># Allow from all<br /># &lt;/Limit&gt;<br /># &lt;LimitExcept GET POST OPTIONS PROPFIND&gt;<br /># Order deny,allow<br /># Deny from all<br /># &lt;/LimitExcept&gt;<br /># &lt;/Directory&gt;</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># DirectoryIndex:定义请求是一个目录时，Apache向用户提供服务的文件名<br />#<br /># index.html.var文件（一个类型映象文件）用于提供一个文档处理列表，<br /># 出于同样的目的，也可以使用MultiViews选项，但是它会非常慢。<br />#</font>
																				</p>
																				<p>DirectoryIndex index.php index.html index.html.var</p>
																				<p>
																						<font color="#006600">#<br /># AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。<br /># 参见AllowOverride指令。<br />#</font>
																				</p>
																				<p>AccessFileName .htaccess</p>
																				<p>
																						<font color="#006600">#<br /># 下面的行防止.htaccess和.htpasswd文件被Web客户查看。<br />#</font>
																				</p>
																				<p>&lt;Files ~ "^.ht"&gt;<br />Order allow,deny<br />Deny from all<br />&lt;/Files&gt;</p>
																				<p>
																						<font color="#006600">#<br /># Typeconfig:定义在哪里查询mime.types文件。<br />#</font>
																				</p>
																				<p>TypeConfig conf/mime.types</p>
																				<p>
																						<font color="#006600">#<br /># DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。<br /># 如果你的服务主要包含text或HTML文档，“text/plain”是一个好的选择；<br /># 如果大多是二进制文档，诸如软件或图像，你应使用<br /># “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。<br />#</font>
																				</p>
																				<p>DefaultType text/plain</p>
																				<p>
																						<font color="#006600">#<br /># mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索（hints），<br /># 这个MIMEMagicFile指令定义hints定义所在的文件。<br />#</font>
																				</p>
																				<p>&lt;IfModule mod_mime_magic.c&gt;<br />MIMEMagicFile conf/magic<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># HostnameLookups：指定记录用户端的名字还是IP地址，例如，本指令为on时<br /># 记录主机名，如&lt;a href="</font>
																						<a href="http://www.apache.org/">
																								<font color="#006600">http://www.apache.org</font>
																						</a>
																						<font color="#006600">；为off时记录IP地址，204.62.129.132。" target="_blank"&gt;www.apache.org；为off时记录IP地址，204.62.129.132。&lt;/a&gt;<br /># 默认值为off，这要比设为on好得多，因为如果设为on则每个用户端请求都将会<br /># 至少造成对 nameserver 进行一次查询。<br />#</font>
																				</p>
																				<p>HostnameLookups Off</p>
																				<p>
																						<font color="#006600">#<br /># EnableMMAP:控制是否进行内存转储（如果操作系统支持的话）。<br /># 默认为on，如果你的服务器安装在网络文件系统上（NFS），请关闭它。<br /># 在一些系统上，关闭它会提升系统性能（与文件系统类型无关）；<br /># 具体情况请参阅&lt;a href="</font>
																						<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap">
																								<font color="#006600">http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap</font>
																						</a>
																						<font color="#006600">" target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...html#enablemmap&lt;/a&gt;<br />#<br /># EnableMMAP off</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># EnableSendfile:控制是否使用sendfile kernel支持发送文件<br /># （如果操作系统支持的话）。默认为on，如果你的服务器安装在网络文件系统<br /># （NFS）上，请你关闭它。<br /># 参见&lt;a href="</font>
																						<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile">
																								<font color="#006600">http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile</font>
																						</a>
																						<font color="#006600">" target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...#enablesendfile&lt;/a&gt;<br />#<br /># EnableSendfile off</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># ErrorLog:错误日志文件定位。<br /># 如果你没有在&lt;VirtualHost&gt;内定义ErrorLog指令，这个虚拟主机的错误信息<br /># 将记录在这里。如果你在那儿定义了ErrorLog，这些错误信息将记录在你所<br /># 定义的文件里，而不是这儿定义的文件。<br />#</font>
																				</p>
																				<p>ErrorLog logs/error_log</p>
																				<p>
																						<font color="#006600">#<br /># LogLevel:控制记录在错误日志文件中的日志信息数量。<br /># 可能的值包括：debug，info，notice，warn，error，crit，alert，emerg。<br />#</font>
																				</p>
																				<p>LogLevel warn</p>
																				<p>
																						<font color="#006600">#<br /># 下面的指令为CustomLog指令定义格式别名。<br />#</font>
																				</p>
																				<p>LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined<br />LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />LogFormat "%{Referer}i -&gt; %U" referer<br />LogFormat "%{User-agent}i" agent</p>
																				<p>
																						<font color="#006600"># 你需要安装了mod_logio.c模块才能使用%I和%O。<br /># LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" </font>combinedio</p>
																				<p>
																						<font color="#006600">#<br /># 指定接入日志文件的定位和格式（一般日志格式）。<br /># 如果你没有在&lt;VirtualHost&gt;内定义这个指令，传输信息将记录在这里，<br /># 如果你定义了这个指令，则记录在你指定的位置，而不是这儿定义的位置。<br />#</font>
																				</p>
																				<p>CustomLog logs/access_log common</p>
																				<p>
																						<font color="#006600">#<br /># 如果你想要记录agent和referer信息，可以使用下面的指令<br />#<br /># CustomLog logs/referer_log referer<br /># CustomLog logs/agent_log agent</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># 如果你想要使用一个文件记录access，agent和referer信息，<br /># 你可以如下定义这个指令：<br />#<br /># CustomLog logs/access_log combined</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># ServerTokens<br /># 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”，<br /># 这表示在回应头中将包含模块中的操作系统类型和编译信息。<br /># 可以设为列各值中的一个：<br /># Full | OS | Minor | Minimal | Major | Prod<br /># Full传达的信息最多，而Prod最少。<br />#</font>
																				</p>
																				<p>ServerTokens Full</p>
																				<p>
																						<font color="#006600">#<br /># 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中<br /># （内部错误文档，FTP目录列表，mod_status和mod_info输出等等，除了CGI错误<br /># 或自定义的错误文档以外）。<br /># 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。<br /># 可以为如下值：On | Off | EMail<br />#</font>
																				</p>
																				<p>ServerSignature On</p>
																				<p>
																						<font color="#006600">#<br /># Aliases:在这时添加你需要的别名，格式如下：<br /># Alias 别名 真实名<br />#<br /># 注意，如果你在别名的未尾包含了“/”，那么在URL中也需要包含“/”。<br /># 因此，“/icons”不是这个示例中的别名。<br /># 如果别名中以“/”结尾，那么真实名也必须以“/”结尾，<br /># 如果别名中省略了结尾的“/”，那么真实名也必须省略。<br />#<br /># 我们使用别名“/icons/”来表示FancyIndexed目录列表，如果你不使用、<br /># FancyIndexing，你可以注释掉它。<br />#<br /># Alias /icons/ "/usr/local/apache2/icons/"</font>
																				</p>
																				<p>
																						<font color="#006600"># &lt;Directory "/usr/local/apache2/icons"&gt;<br /># Options Indexes MultiViews<br /># AllowOverride None<br /># Order allow,deny<br />## Allow from all<br /># &lt;/Directory&gt;</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置，<br /># 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话，<br /># 你可以注释掉它。<br />#</font>
																						<br />Alias /manual "/usr/loacl/apache2/manual"<br />&lt;Directory "/usr/local/apache2/manual"&gt;<br />Options Indexes FollowSymLinks MultiViews IncludesNoExec<br />AddOutputFilter Includes html<br />Order allow,deny<br />Allow from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># ScriptAlias:指定包含服务脚本的目录。<br /># ScriptAliases 本质上与Aliases一样，除了这里的文档在请求时做为程序处理处理以外。<br /># 尾部的“/”规则与Alias一样<br />#</font>
																						<br />ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/"</p>
																				<p>
																						<font color="#006600"># 这里是添加php 4支持的指令</font>
																						<br />AddType application/x-httpd-php .php<br />LoadModule php4_module modules/libphp4.so<br />&lt;IfModule mod_cgid.c&gt;<br /><font color="#006600">#<br /># 添加mod_cgid.c设置，mod_cgid提供使用cgid进行通讯的UNIX套接字的<br /># 脚本接口路径。<br />#<br /># Scriptsock logs/cgisock</font><br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录，<br /># 如果你配置了的话。<br />#</font>
																				</p>
																				<p>&lt;Directory "/usr/local/apache2/cgi-bin"&gt;<br />AllowOverride None<br />Options None<br />Order allow,deny<br />Allow from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># Redirect允许你告诉客户端使用存在于服务器名字空间中的文档，<br /># 而不是现在的，这帮助客户定位那些改变了位置的文档。<br /># 例如：<br /># Redirect permanent /foo </font>
																						<a href="http://www.example.com/bar">
																								<font color="#006600">http://www.example.com/bar</font>
																						</a>
																				</p>
																				<p>
																						<font color="#006600">#<br /># 控制server-generated目录列表显示的指令<br />#</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># IndexOptions:控制server-generated目录列表显示特征。<br />#</font>
																				</p>
																				<p>IndexOptions FancyIndexing VersionSort</p>
																				<p>
																						<font color="#006600">#<br /># AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示，<br /># 只适用于FancyIndexed指令<br />#</font>
																				</p>
																				<p>AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip</p>
																				<p>AddIconByType (TXT,/icons/text.gif) text<br /><font color="#006600"># 基于 NCSA 服务的配置文件。<br />#<br />#这是Apache服务器主要配置文件。<br />#它包含服务器的影响服务器运行的配置指令。<br />#参见&lt;</font><a href="http://spaces.msn.com/mmm2005-01-24_16.34/&lt;a"><font color="#006600">URL:&lt;a</font></a><font color="#006600"> href="</font><a href="http://httpd.ache.org/doc-2.0/"><font color="#006600">http://httpd.ache.org/doc-2.0/</font></a><font color="#006600">" target="_blank"&gt;http://httpd.ache.org/doc-2.0/&lt;/a&gt;&gt;以取得关于这些指令的详细信息<br />#<br />#不要只是简单的阅读这些指令信息而不去理解它。<br />#这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。<br />#<br />#这些配置指令被分为下面三个部分：<br />#1. 控制整个Apache服务器行为的部分（即全局环境变量）<br />#2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数<br />#3. 虚拟主机的设置参数<br />#<br />#配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”），<br />#服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot<br />#的值附加在文件名的前面，例如，对“logs/foo.log"，如果ServerRoot的值<br />#为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log”<br />#<br />##第一区：全局环境参数<br />#<br />#这里设置的参数将影响整个Apache服务器的行为；<br />#例如Apache能够处理的并发请求的数量等。<br />#<br />#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。<br />#<br />#注意！如果你想要将它指定为NFS或其它网络上的位置，<br />#请一定要去阅读与LockFile有关的文档（可能在<br />#</font><a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile"><font color="#006600">http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile</font></a><font color="#006600">)。<br />#这将会使你自己也能解决很多问题。<br />#<br />#路径的结尾不要添加斜线。<br />#</font></p>
																				<p>ServerRoot "/usr/loacl/apache2"</p>
																				<p>
																						<font color="#006600">#<br />#串行访问的锁文件必须保存在本地磁盘上<br />#</font>
																				</p>
																				<p>&lt;IfModule !mpm_winnt.c&gt;<br />&lt;IfModule !mpm_neware.c&gt;<br /><font color="#006600">#LockFile logs/accept.lock</font><br />&lt;/IfModule&gt;<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#ScoreBoardFile:用来保存内部服务进程信息的文件。<br />#如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中，<br />#并且它不能被第三方软件所使用。<br />#如果指定了，要确保不能使用两个Apache使用同一个记分板文件，<br />#这个记分板文件必须保存在本地磁盘上。<br />#</font>
																				</p>
																				<p>&lt;IfModule !mpm_netware.c&gt;<br />&lt;IfModule !perchild.c&gt;<br /><font color="#006600">#ScoreBoardFile logs/apache_runtime_status</font><br />&lt;IfModule&gt;<br />&lt;IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br />#PidFile:记录服务器启动进程号的文件。<br />#</font>
																				</p>
																				<p>&lt;IfModule !mpm_neware.c&gt;<br />PidFile logs/httpd.pid<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br />#Timeout:接收和发送前超时秒数<br />#</font>
																				</p>
																				<p>Timeout 300</p>
																				<p>
																						<font color="#006600">#<br />#KeepAlive:是否允许稳固的连接（每个连接有多个请求），<br />#设为"Off"则停用。<br />#</font>
																				</p>
																				<p>KeepAlive On</p>
																				<p>
																						<font color="#006600">#<br />#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数，<br />#设为0表示无限制接入。<br />#我们推荐你将其设为一个较大的值，以便提高性能</font>
																				</p>
																				<p>MaxKeepAliveRequests 100</p>
																				<p>
																						<font color="#006600">#<br />#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数<br />#</font>
																				</p>
																				<p>KeepAliveTimeout 15</p>
																				<p>
																						<font color="#006600">##<br />##Server-Pool大小设定（针对MPM的）<br />##</font>
																				</p>
																				<p>
																						<font color="#006600"># prefork MPM<br /># StartServers:启动时服务器启动的进程数<br /># MinSpareServers:保有的备用进程的最小数目<br /># MaxSpareServers:保有的备用进程的最大数目<br /># MaxClients:服务器允许启动的最大进程数<br /># MaxRequestsPerChild:一个服务进程允许的最大请求数</font>
																				</p>
																				<p>&lt;IfModule prefork.c&gt;<br />StartServers 5<br />MinSpareServers 5<br />MaxSpareServers 10<br />MaxClients 150<br />MaxRequestPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006633"># worker MPM<br /># StartServers:服务器启动时的服务进程数目<br /># MaxClients:允许同时连接的最大用户数目<br /># MinSpareThreads:保有的最小工作线程数目<br /># MaxSpareThreads:允许保有的最大工作线程数目<br /># ThreadsPerChild:每个服务进程中的工作线程常数<br /># MaxRequestsPerChild:服务进程中允许的最大请求数目</font>
																				</p>
																				<p>&lt;IfModule worker.c&gt;<br />StartServers 2<br />MaxClients 150<br />MinSpareThreads 25<br />MaxSpareThreads 75<br />ThreadsPerChild 25<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># perchild MPM<br /># NumServers:服务进程数量<br /># StartThreads:每个服务进程中的起始线程数量<br /># MinSpareThreads:保有的最小线程数量<br /># MaxSpareThreads:保有的最大线程数量<br /># MaxThreadsPerChild:每个服务进程允许的最大线程数<br /># MaxRequestsPerChild:每个服务进程允许连接的最大数量</font>
																				</p>
																				<p>&lt;IfModule perchild.c&gt;<br />NumServers 5<br />StartThreads 5<br />MinSpareThreads 5<br />MaxSpareThreads 10<br />MaxThreadsPerChild 20<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># WinNT MPM<br /># ThreadsPerChild:服务进程中工作线程常数<br /># MaxRequestsPerChild:服务进程允许的最大请求数</font>
																				</p>
																				<p>&lt;IfModule mpm_winnt.c&gt;<br />ThreadsPerChild 250<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># BeOS MPM<br /># StartThreads:服务器启动时启动的线程数<br /># MaxClients:可以启动的最大线程数（一个线程等于一个用户）<br /># MaxRequestsPerThread:每个线程允许的最大请求数</font>
																				</p>
																				<p>&lt;IfModule beos.c&gt;<br />StartThreads 10<br />MaxClients 50<br />MaxRequestsPerThread 10000<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># NetWare MPM<br /># ThreadStachSize:为每个工作线程分配的堆栈尺寸<br /># StartThreads:服务器启动时启动的线程数<br /># MinSpareThreads:用于处理实发请求的空闲线程数<br /># MaxSpareThreads:空闲线程的最大数量<br /># MaxThreads:在同一时间活动的最大线程数<br /># MaxRequestPerChild:一个线程服务请求的最大数量，<br /># 推荐将其设置为0，以实现无限制的接入</font>
																				</p>
																				<p>&lt;IfModule mpm_netware.c&gt;<br />ThreadStackSize 65536<br />StartThreads 250<br />MinSpareThreads 25<br />MaxSpareThreads 250<br />MaxThreads 1000<br />MaxRequestPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600"># OS/2 MPM<br /># StartServers:启动的服务进程数量<br /># MinSpareThreads:每个进程允许的最小空闲线程<br /># MaxSpareThreads:每个进程允许的最大空闲线程<br /># MaxRequestsPerChild:每个服务进程允许的最大连接数<br /></font>&lt;IfModule mpmt_os2.c&gt;<br />StartServers 2<br />MinSpareThreads 5<br />MaxSpareThreads 10<br />MaxRequestsPerChild 0<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># Listen:允许你绑定Apache服务到指定的IP地址和端口上，以取代默认值<br /># 参见&lt;VirtualHost&gt;指令<br /># 使用如下命令使Apache只在指定的IP地址上监听，<br /># 以防止它在IP地址0.0.0.0上监听<br />#<br /># Listen 12.34.56.78:80</font>
																				</p>
																				<p>Listen 80</p>
																				<p>
																						<font color="#006600">#<br /># 动态共享支持（DSO）<br />#<br /># 为了能够使用那些以DSO模式编译的模块中的函数，你必须有相应的“LoadModule”行，<br /># 因此，在这里包含了这些指令，以便能在使用它之前激活。<br /># 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)<br />#<br /># 示例：<br /># LoadModule foo_module modules/mod_foo.so<br />#</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># ExtendedStatus：当调用“server-status”时，控制Apache是产生“全”状态<br /># 信息（ExtendedStatus On），还是产生基本信息（ExtendedStatus Off）。<br /># 默认为off<br />#<br /># ExtendedStatus On</font>
																				</p>
																				<p>
																						<font color="#006600">### 第二区：“主”服务配置<br />#<br /># 这一区建立被 “主” 服务器用的指令值,以回应那些不被 &lt;VirtualHost&gt;<br /># 定义处理的任何请求。<br /># 这些数值也提供默认值给后面定义的&lt;VirtualHost&gt;容器。<br /># 如果&lt;VirtualHost&gt;中有定义，那么这里定义的指令值将被<br /># &lt;VirtualHost&gt;中的定义所覆盖。<br />#</font>
																				</p>
																				<p>&lt;IfModule !mpm_winnt.c&gt;<br />&lt;IfModule !mpm_neware.c&gt;<br /><font color="#006600">#<br /># 如果你想使httpd以另外的用户或组来运行，你必须在开始时以root方式启动<br /># 然后再将它切换为你想要使用的用户或组。<br />#<br /># User/Group:运行httpd的用户和组<br /># 在SCO (ODT3)上使用“User nouser”和“Group nogroup”<br /># 在HPUX上，你可能不能以nobody身份使用共享内存，建议创建一个www用户。<br /># 注意一些核心（kernel）在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET)，<br />#节在这些系统上不要使用“Group #-1”。<br />#</font></p>
																				<p>User nobody<br />Group #-1<br />&lt;/IfModule&gt;<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># ServerAdmin:你的邮件地址，当发生问题时Apache将向你发出邮件。<br /># 作为一个出错文档，这个地址显示在server-generated页上，<br /># 例如：</font>
																						<a href="mailto:admin@your-domain.com">
																								<font color="#006600">admin@your-domain.com</font>
																						</a>
																						<br />
																						<font color="#006600">#</font>
																				</p>
																				<p>ServerAdmin [email]kreny@sina.com[/email]</p>
																				<p>
																						<font color="#006600">#<br /># ServerName指定Apache用于识别自身的名字和端口号。<br /># 通常这个值是自动指定的，但是我们推荐你显式的指定它以防止启动时出错<br />#<br /># 如果你为你的主机指定了一个无效的DNS名，server-generated重定向将不能工作。<br /># 参见UseCanonicalName指令<br />#<br /># 如果你的主机没有注册DNS名，在这里键入它的IP地址<br /># 无论如何，你必须使用它的IP地址来提供服务，<br /># 这里使用一种容易理解的方式重定向服务</font>
																				</p>
																				<p>ServerName &lt;a href="<a href="http://www.dalouis.com/"><font color="#4563b9">http://www.dalouis.com:80</font></a>" target="_blank"&gt;www.dalouis.com:80&lt;/a&gt;</p>
																				<p>
																						<font color="#006600">#<br /># UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。<br /># 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。<br /># 当设置为“On”,Apache会使用ServerName指令的值。<br />#</font>
																				</p>
																				<p>UseCanonicalName Off</p>
																				<p>
																						<font color="#006600">#<br /># DocumentRoot:你的文档的根目录。默认情况下，所有的请求从这个目录进行应答。<br /># 但是可以使用符号链接和别名来指向到其他的位置。<br />#</font>
																				</p>
																				<p>DocumentRoot "/home/redhat/public_html"</p>
																				<p>
																						<font color="#006600">#<br /># Apache可以存取的每个目录都可以配置存取权限（包括它的子目录）。<br />#<br /># 首先，我们配置一个高限制的特征。</font>
																				</p>
																				<p>
																						<font color="#006600"># 这将禁止访问文件系统所在的目录，并添加你希望允许访问的目录块。<br /># 如下所示</font>
																				</p>
																				<p>&lt;Directory /&gt;<br />Order Deny,Allow<br />Deny from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。<br /># - 所以，如果Apache没有象你所期待的那样工作的话,<br /># 请检查你是否在下面明确的指定它可用。<br />#</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># 这将改变到你设置的DocumentRoot<br />#</font>
																				</p>
																				<p>&lt;Directory "/home/redhat/public_html"&gt;<br /><font color="#006600">#<br /># Options：这个指令的值可以是“None”，“All”，或者下列选项的任意组合：<br /># Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews<br />#<br /># 注意，“MultiViews”必须被显式的指定，“Options All”不能为你提供这个特性。<br />#<br /># 这个指令既复杂又重要，请参见<br />#</font><a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins"><font color="#006600">http://httpd.apache.org/docs-2.0/mod/core.html#optioins</font></a><br /><font color="#006600">#</font><br />Options FollowSymLinks<br /><font color="#006600">#<br /># AllowOverride控制那些被放置在.htaccess文件中的指令。<br /># 它可以是“All”，“None”，或者下列指令的组合：<br /># Options FileInfo AuthConfig Limit<br />#<br />AllowOverride None<br />#<br /># 控制谁可以获得服务。<br />#</font><br />Order allow,deny<br />Allow from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。<br />#</font>
																				</p>
																				<p>UserDir public_html</p>
																				<p>
																						<font color="#006600"># 为防止在UserDir指令上的漏洞，对root用户设置<br /># 象“./”这样的UserDir是非常有用的。<br /># 如果你使用Apache 1.3或以上版本，我们强烈建议你<br /># 在你的服务器配置文件中包含下面的行</font>
																				</p>
																				<p>UserDir disabled root</p>
																				<p>
																						<font color="#006600">#<br /># 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例：<br />#<br /># &lt;Directory /home/*/public_html&gt;<br /># AllowOverride FileInfo AuthConfig Limit Indexes<br /># Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec<br /># &lt;Limit GET POST OPTIONS PROPFIND&gt;<br /># Order allow,deny<br /># Allow from all<br /># &lt;/Limit&gt;<br /># &lt;LimitExcept GET POST OPTIONS PROPFIND&gt;<br /># Order deny,allow<br /># Deny from all<br /># &lt;/LimitExcept&gt;<br /># &lt;/Directory&gt;</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># DirectoryIndex:定义请求是一个目录时，Apache向用户提供服务的文件名<br />#<br /># index.html.var文件（一个类型映象文件）用于提供一个文档处理列表，<br /># 出于同样的目的，也可以使用MultiViews选项，但是它会非常慢。<br />#</font>
																				</p>
																				<p>DirectoryIndex index.php index.html index.html.var</p>
																				<p>
																						<font color="#006600">#<br /># AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。<br /># 参见AllowOverride指令。<br />#</font>
																				</p>
																				<p>AccessFileName .htaccess</p>
																				<p>
																						<font color="#006600">#<br /># 下面的行防止.htaccess和.htpasswd文件被Web客户查看。<br />#</font>
																						<br />&lt;Files ~ "^.ht"&gt;<br />Order allow,deny<br />Deny from all<br />&lt;/Files&gt;</p>
																				<p>
																						<font color="#006600">#<br /># Typeconfig:定义在哪里查询mime.types文件。<br />#</font>
																				</p>
																				<p>TypeConfig conf/mime.types</p>
																				<p>
																						<font color="#006600">#<br /># DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。<br /># 如果你的服务主要包含text或HTML文档，“text/plain”是一个好的选择；<br /># 如果大多是二进制文档，诸如软件或图像，你应使用<br /># “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。<br />#</font>
																				</p>
																				<p>DefaultType text/plain</p>
																				<p>
																						<font color="#006600">#<br /># mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索（hints），<br /># 这个MIMEMagicFile指令定义hints定义所在的文件。<br />#</font>
																						<br />&lt;IfModule mod_mime_magic.c&gt;<br />MIMEMagicFile conf/magic<br />&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># HostnameLookups：指定记录用户端的名字还是IP地址，例如，本指令为on时<br /># 记录主机名，如</font>
																						<font color="#006600">为off时记录IP地址，204.62.129.132。" www.apache.org；为off时记录IP地址，204.62.129.132。&lt;/a&gt;<br /># 默认值为off，这要比设为on好得多，因为如果设为on则每个用户端请求都将会<br /># 至少造成对 nameserver 进行一次查询。<br />#</font>
																				</p>
																				<p>HostnameLookups Off</p>
																				<p>
																						<font color="#006600">#<br /># EnableMMAP:控制是否进行内存转储（如果操作系统支持的话）。<br /># 默认为on，如果你的服务器安装在网络文件系统上（NFS），请关闭它。<br /># 在一些系统上，关闭它会提升系统性能（与文件系统类型无关）；<br /># 具体情况请参阅&lt;a href="</font>
																						<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap">
																								<font color="#006600">http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap</font>
																						</a>
																						<font color="#006600">" </font>target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...html#enablemmap&lt;/a&gt;<br /><font color="#006600">#<br /># EnableMMAP off</font></p>
																				<p>
																						<font color="#006600">#<br /># EnableSendfile:控制是否使用sendfile kernel支持发送文件<br /># （如果操作系统支持的话）。默认为on，如果你的服务器安装在网络文件系统<br /># （NFS）上，请你关闭它。<br /># 参见&lt;a href="</font>
																						<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile">
																								<font color="#006600">http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile</font>
																						</a>
																						<font color="#006600">" target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...#enablesendfile&lt;/a&gt;<br />#<br /># EnableSendfile off</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># ErrorLog:错误日志文件定位。<br /># 如果你没有在&lt;VirtualHost&gt;内定义ErrorLog指令，这个虚拟主机的错误信息<br /># 将记录在这里。如果你在那儿定义了ErrorLog，这些错误信息将记录在你所<br /># 定义的文件里，而不是这儿定义的文件。<br />#</font>
																				</p>
																				<p>ErrorLog logs/error_log</p>
																				<p>
																						<font color="#006600">#<br /># LogLevel:控制记录在错误日志文件中的日志信息数量。<br /># 可能的值包括：debug，info，notice，warn，error，crit，alert，emerg。<br />#</font>
																						<br />LogLevel warn</p>
																				<p>
																						<font color="#006600">#<br /># 下面的指令为CustomLog指令定义格式别名。<br />#</font>
																						<br />LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined<br />LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />LogFormat "%{Referer}i -&gt; %U" referer<br />LogFormat "%{User-agent}i" agent</p>
																				<p>
																						<font color="#006600"># 你需要安装了mod_logio.c模块才能使用%I和%O。<br /># LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" </font>combinedio</p>
																				<p>
																						<font color="#006600">#<br /># 指定接入日志文件的定位和格式（一般日志格式）。<br /># 如果你没有在&lt;VirtualHost&gt;内定义这个指令，传输信息将记录在这里，<br /># 如果你定义了这个指令，则记录在你指定的位置，而不是这儿定义的位置。<br />#</font>
																				</p>
																				<p>CustomLog logs/access_log common</p>
																				<p>
																						<font color="#006600">#<br /># 如果你想要记录agent和referer信息，可以使用下面的指令<br />#<br /># CustomLog logs/referer_log referer<br /># CustomLog logs/agent_log agent</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># 如果你想要使用一个文件记录access，agent和referer信息，<br /># 你可以如下定义这个指令：<br />#<br /># CustomLog logs/access_log combined</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># ServerTokens<br /># 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”，<br /># 这表示在回应头中将包含模块中的操作系统类型和编译信息。<br /># 可以设为列各值中的一个：<br /># Full | OS | Minor | Minimal | Major | Prod<br /># Full传达的信息最多，而Prod最少。<br />#</font>
																				</p>
																				<p>ServerTokens Full</p>
																				<p>
																						<font color="#006600">#<br /># 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中<br /># （内部错误文档，FTP目录列表，mod_status和mod_info输出等等，除了CGI错误<br /># 或自定义的错误文档以外）。<br /># 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。<br /># 可以为如下值：On | Off | EMail<br />#</font>
																				</p>
																				<p>ServerSignature On</p>
																				<p>
																						<font color="#006600">#<br /># Aliases:在这时添加你需要的别名，格式如下：<br /># Alias 别名 真实名<br />#<br /># 注意，如果你在别名的未尾包含了“/”，那么在URL中也需要包含“/”。<br /># 因此，“/icons”不是这个示例中的别名。<br /># 如果别名中以“/”结尾，那么真实名也必须以“/”结尾，<br /># 如果别名中省略了结尾的“/”，那么真实名也必须省略。<br />#<br /># 我们使用别名“/icons/”来表示FancyIndexed目录列表，如果你不使用、<br /># FancyIndexing，你可以注释掉它。<br />#<br /># Alias /icons/ "/usr/local/apache2/icons/"</font>
																				</p>
																				<p>
																						<font color="#006600"># &lt;Directory "/usr/local/apache2/icons"&gt;<br /># Options Indexes MultiViews<br /># AllowOverride None<br /># Order allow,deny<br />## Allow from all<br /># &lt;/Directory&gt;</font>
																				</p>
																				<p>
																						<font color="#006600">#<br /># 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置，<br /># 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话，<br /># 你可以注释掉它。<br />#</font>
																						<br />Alias /manual "/usr/loacl/apache2/manual"<br />&lt;Directory "/usr/local/apache2/manual"&gt;<br />Options Indexes FollowSymLinks MultiViews IncludesNoExec<br />AddOutputFilter Includes html<br />Order allow,deny<br />Allow from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># ScriptAlias:指定包含服务脚本的目录。<br /># ScriptAliases 本质上与Aliases一样，除了这里的文档在请求时做为程序处理处理以外。<br /># 尾部的“/”规则与Alias一样<br />#</font>
																						<br />ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/"</p>
																				<p>
																						<font color="#006600"># 这里是添加php 4支持的指令</font>
																						<br />AddType application/x-httpd-php .php<br />LoadModule php4_module modules/libphp4.so</p>
																				<p>&lt;IfModule mod_cgid.c&gt;<br /><font color="#006600">#<br /># 添加mod_cgid.c设置，mod_cgid提供使用cgid进行通讯的UNIX套接字的<br /># 脚本接口路径。<br />#<br /># Scriptsock logs/cgisock<br /></font>&lt;/IfModule&gt;</p>
																				<p>
																						<font color="#006600">#<br /># 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录，<br /># 如果你配置了的话。<br />#</font>
																						<br />&lt;Directory "/usr/local/apache2/cgi-bin"&gt;<br />AllowOverride None<br />Options None<br />Order allow,deny<br />Allow from all<br />&lt;/Directory&gt;</p>
																				<p>
																						<font color="#006600">#<br /># Redirect允许你告诉客户端使用存在于服务器名字空间中的文档，<br /># 而不是现在的，这帮助客户定位那些改变了位置的文档。<br /># 例如：<br /># Redirect permanent /foo &lt;a href="</font>
																						<a href="http://www.example.com/bar">
																								<font color="#006600">http://www.example.com/bar</font>
																						</a>
																						<font color="#006600">" target="_blank"&gt;http://www.example.com/bar&lt;/a&gt;<br />#<br /># 控制server-generated目录列表显示的指令<br />#<br />#<br /># IndexOptions:控制server-generated目录列表显示特征。<br />#</font>
																						<br />IndexOptions FancyIndexing VersionSort</p>
																				<p>
																						<font color="#006600">#<br /># AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示，<br /># 只适用于FancyIndexed指令<br />#</font>
																						<br />AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip<br />AddIconByType (TXT,/icons/text.gif) text</p>
																				<p>
																				</p>
																		</td>
																</tr>
														</tbody>
												</table>
										</span>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/onlykeke/aggbug/46025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/onlykeke/" target="_blank">奇葛格</a> 2006-05-13 23:12 <a href="http://www.blogjava.net/onlykeke/articles/46025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>