<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5496696981703298746</id><updated>2011-07-30T16:46:12.940-07:00</updated><category term='Proc 文件系统 cpuinfo'/><category term='Awstats 安装 配置'/><category term='Linux Proftpd 安装 配置'/><category term='version'/><category term='qmail qmail-smtpd-auth ucspi-tcp daemontools vpopmail mysql 安装 配置'/><category term='netstat'/><category term='meminfo'/><category term='Apache PHP Linux 安装 配置 freetype GD JPEG libpng multbyte charset Zend Optimizer'/><category term='Linux Bind DNS 安装 配置'/><title type='text'>Reach Silu</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-3741463847571140429</id><published>2009-08-19T07:33:00.000-07:00</published><updated>2009-09-11T02:53:08.646-07:00</updated><title type='text'>Inouting Pen</title><content type='html'>Inouting Pen. A manufacture of pens from ShenZhen and HongKong China. Inouting Pen suppliers of promotional products including pen, ball pen, metal pen, plastic pen, pens, rolly pen, stationery, pen knowledge, a history of pens, product line, history of ball point pens and pencils and so on. Custom made pens and pencils.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://inoutingpen.ezfreehosting.com"&gt;&lt;br /&gt;http://inoutingpen.ezfreehosting.com&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.freewebhostx.com"&gt;&lt;br /&gt;http://inoutingpen.freewebhostx.com&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.100webspace.net"&gt;http://inoutingpen.100webspace.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.001webs.com"&gt;http://inoutingpen.001webs.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.hyperphp.com"&gt;http://inoutingpen.hyperphp.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.netfast.org"&gt;http://inoutingpen.netfast.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.kwikphp.com"&gt;http://inoutingpen.kwikphp.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpe.l4rge.com"&gt;http://inoutingpe.l4rge.com&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.chimehost.net"&gt;http://inoutingpen.chimehost.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.orgfree.com"&gt;http://inoutingpen.orgfree.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.superfreehost.org"&gt;&lt;br /&gt;http://inoutingpen.superfreehost.org&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.ucoz.com"&gt;http://inoutingpen.ucoz.com&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.qupis.com"&gt;http://inoutingpen.qupis.com&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.yourfreehosting.net"&gt;&lt;br /&gt;http://inoutingpen.yourfreehosting.net&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://inoutingpen.yoyohost.com"&gt;http://inoutingpen.yoyohost.com&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-3741463847571140429?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/3741463847571140429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=3741463847571140429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/3741463847571140429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/3741463847571140429'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2009/08/inouting-pen.html' title='Inouting Pen'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-709350744739788147</id><published>2009-04-23T02:22:00.000-07:00</published><updated>2009-04-23T02:23:33.459-07:00</updated><title type='text'>css中中文字体（font-family）的英文名称</title><content type='html'>css中中文字体（font-family）的英文名称&lt;br /&gt;&lt;br /&gt;Mac OS的一些：&lt;br /&gt;&lt;br /&gt;华文细黑：STHeiti Light [STXihei] &lt;br /&gt;华文黑体：STHeiti &lt;br /&gt;华文楷体：STKaiti &lt;br /&gt;华文宋体：STSong &lt;br /&gt;华文仿宋：STFangsong &lt;br /&gt;儷黑 Pro：LiHei Pro Medium &lt;br /&gt;儷宋 Pro：LiSong Pro Light &lt;br /&gt;標楷體：BiauKai &lt;br /&gt;蘋果儷中黑：Apple LiGothic Medium &lt;br /&gt;蘋果儷細宋：Apple LiSung Light &lt;br /&gt;Windows的一些：&lt;br /&gt;&lt;br /&gt;新細明體：PMingLiU &lt;br /&gt;細明體：MingLiU &lt;br /&gt;標楷體：DFKai-SB &lt;br /&gt;黑体：SimHei &lt;br /&gt;宋体：SimSun &lt;br /&gt;新宋体：NSimSun &lt;br /&gt;仿宋：FangSong &lt;br /&gt;楷体：KaiTi &lt;br /&gt;仿宋_GB2312：FangSong_GB2312 &lt;br /&gt;楷体_GB2312：KaiTi_GB2312 &lt;br /&gt;微軟正黑體：Microsoft JhengHei &lt;br /&gt;微软雅黑体：Microsoft YaHei &lt;br /&gt;装Office会生出来的一些：&lt;br /&gt;&lt;br /&gt;隶书：LiSu &lt;br /&gt;幼圆：YouYuan &lt;br /&gt;华文细黑：STXihei &lt;br /&gt;华文楷体：STKaiti &lt;br /&gt;华文宋体：STSong &lt;br /&gt;华文中宋：STZhongsong &lt;br /&gt;华文仿宋：STFangsong &lt;br /&gt;方正舒体：FZShuTi &lt;br /&gt;方正姚体：FZYaoti &lt;br /&gt;华文彩云：STCaiyun &lt;br /&gt;华文琥珀：STHupo &lt;br /&gt;华文隶书：STLiti &lt;br /&gt;华文行楷：STXingkai &lt;br /&gt;华文新魏：STXinwei&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-709350744739788147?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/709350744739788147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=709350744739788147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/709350744739788147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/709350744739788147'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2009/04/cssfont-family.html' title='css中中文字体（font-family）的英文名称'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-8826715330545419366</id><published>2009-04-02T02:02:00.000-07:00</published><updated>2009-04-21T02:09:33.268-07:00</updated><title type='text'>div z-index</title><content type='html'>Div的层次问题，涉及到z-index，其实从字面上已经可以解释；z是从x、y以后的第三个轴，从网页上表现就是除了上下左右外的前后。规定这个属性，首先要求&lt;strong&gt;Div必须是浮动的(position:absolute;)&lt;/strong&gt;，值越大，Div越靠前；数值可以不连续。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-8826715330545419366?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/8826715330545419366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=8826715330545419366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/8826715330545419366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/8826715330545419366'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2009/04/div-z-index.html' title='div z-index'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-8858257633476519709</id><published>2009-03-29T18:52:00.000-07:00</published><updated>2009-03-29T18:57:23.179-07:00</updated><title type='text'>MySQL 索引文件损坏的提示信息 #1016 (errno: 145)</title><content type='html'>#1016 - Can't open file: '&lt;em&gt;table&lt;/em&gt;.MYI'. (errno: 145)&lt;br /&gt;&lt;br /&gt;MySQL数据库中的表 "&lt;em&gt;table&lt;/em&gt;" 的索引文件损坏。&lt;br /&gt;&lt;br /&gt;可在sql语句模式下，先执行检查，再修复。&lt;br /&gt;&lt;br /&gt;sql&gt; check table `&lt;em&gt;table&lt;/em&gt;`;&lt;br /&gt;&lt;br /&gt;sql&gt; repair table `&lt;em&gt;table&lt;/em&gt;`;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-8858257633476519709?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/8858257633476519709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=8858257633476519709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/8858257633476519709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/8858257633476519709'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2009/03/1016-cant-open-file-table.html' title='MySQL 索引文件损坏的提示信息 #1016 (errno: 145)'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-5410262225178227598</id><published>2009-03-24T09:02:00.001-07:00</published><updated>2009-03-24T09:02:53.183-07:00</updated><title type='text'>linux 命令</title><content type='html'>查链接状态&lt;br /&gt;netstat -anop&lt;br /&gt;&lt;br /&gt;查所有SYN状态&lt;br /&gt;netstat -an | grep SYN&lt;br /&gt;netstat -an | grep SYN | wc -l&lt;br /&gt;&lt;br /&gt;查当前连接数&lt;br /&gt;ps aux | grep httpd | wc -l&lt;br /&gt;&lt;br /&gt;查当前连接所占用内存数量&lt;br /&gt;ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'&lt;br /&gt;&lt;br /&gt;iptable统计与状态&lt;br /&gt;iptables -L -nv&lt;br /&gt;&lt;br /&gt;查看ip_conntrack状态&lt;br /&gt;cat /proc/sys/net/ipv4/ip_conntrack_max&lt;br /&gt;cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 5&lt;br /&gt;#比较慢&lt;br /&gt;cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr |awk '{x=x+$1}{print x}'&lt;br /&gt;#比较慢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-5410262225178227598?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/5410262225178227598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=5410262225178227598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/5410262225178227598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/5410262225178227598'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2009/03/linux.html' title='linux 命令'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-4661503329980370859</id><published>2009-03-23T06:50:00.000-07:00</published><updated>2009-03-23T07:12:34.629-07:00</updated><title type='text'></title><content type='html'>&lt;a title="此留言的永久連結 關於ip_conntrack: table full, dropping packet的問題" href="http://blog.24reader.com/ken666/2009/02/23/%e9%97%9c%e6%96%bcip_conntrack-table-full-dropping-packet%e7%9a%84%e5%95%8f%e9%a1%8c/" rel="bookmark"&gt;關於ip_conntrack: table full, dropping packet的問題&lt;/a&gt;&lt;br /&gt;統報：&lt;br /&gt;Apr 17 16:37:26 www kernel: printk: 135 messages suppressed.&lt;br /&gt;Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:33 www kernel: printk: 139 messages suppressed.&lt;br /&gt;Apr 17 16:37:33 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:37 www kernel: printk: 60 messages suppressed.&lt;br /&gt;Apr 17 16:37:37 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:52 www kernel: printk: 19 messages suppressed.&lt;br /&gt;Apr 17 16:37:52 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;&lt;br /&gt;有丟包現象&lt;br /&gt;&lt;br /&gt;[root@www ~]# wc -l /proc/net/ip_conntrack&lt;br /&gt;68463 /proc/net/ip_conntrack&lt;br /&gt;&lt;br /&gt;[root@www ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max&lt;br /&gt;65536&lt;br /&gt;&lt;br /&gt;可調整以下參數：&lt;br /&gt;&lt;br /&gt;echo 180 &gt;&lt;br /&gt;/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established&lt;br /&gt;echo 262144 &gt; /proc/sys/net/ipv4/netfilter/ip_conntrack_max&lt;br /&gt;echo 120 &gt; /proc/sys/net/ipv4/neigh/default/gc_stale_time&lt;br /&gt;echo 1024 &gt; /proc/sys/net/ipv4/neigh/default/gc_thresh1&lt;br /&gt;echo 4096 &gt; /proc/sys/net/ipv4/neigh/default/gc_thresh2&lt;br /&gt;echo 8192 &gt; /proc/sys/net/ipv4/neigh/default/gc_thresh3&lt;br /&gt;&lt;br /&gt;或vi /etc/sysctl.conf&lt;br /&gt;&lt;br /&gt;net.ipv4.ip_conntrack_max = 655360&lt;br /&gt;net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180&lt;br /&gt;&lt;br /&gt;再sysctl -p&lt;br /&gt;&lt;br /&gt;相關參數說明：&lt;br /&gt;&lt;br /&gt;ARP支持一個sysctl接口，可以用以配置全局參數或逐個網絡接口地進行配製。該sysctl&lt;br /&gt;可以通過/proc/sys/net/ipv4/neigh/*/*文件或者使用sysctl(2)接口來訪問。系統中&lt;br /&gt;每個接口都在/proc/sys/net/ipv4/neigh/.中有自己的目錄。 `default’目錄中的設置用於&lt;br /&gt;所有新建的設備。 sysctl相關的時間是以秒為單位，除非特別聲明過．&lt;br /&gt;IXDBA.NET社區論壇&lt;br /&gt;anycast_delay&lt;br /&gt;對IPv6相鄰請求信息的回复的最大延遲時間；目前還不支持anycast。缺省值為1秒。&lt;br /&gt;app_solicit&lt;br /&gt;這是在使用多路廣播探測(multicast probe)前，經過網絡連接送到用戶間隙ARP端口監控程序&lt;br /&gt;的探測（probe）最大數目(見mcast_solicit )。缺省值為0。&lt;br /&gt;base_reachable_time&lt;br /&gt;一旦發現相鄰記錄，至少在一段介於base_reachable_time/2和&lt;br /&gt;3*base_reachable_time/2之間的隨機時間內，該記錄是有效的。如果收到上層協議的肯定反&lt;br /&gt;饋，那麼記錄的有效期將延長。缺省值是30秒。&lt;br /&gt;delay_first_probe_time&lt;br /&gt;發現某個相鄰層記錄無效(stale)後，發出第一個探測要等待的時間。缺省值是5秒。&lt;br /&gt;gc_interval&lt;br /&gt;收集相鄰層記錄的無用記錄的垃圾收集程序的運行週期，缺省為30秒。&lt;br /&gt;gc_stale_time&lt;br /&gt;決定檢查一次相鄰層記錄的有效性的周期。當相鄰層記錄失效時，將在給它發送數據前，再解析一&lt;br /&gt;次。缺省值是60秒。&lt;br /&gt;gc_thresh1&lt;br /&gt;存在於ARP高速緩存中的最少層數，如果少於這個數，垃圾收集器將不會運行。缺省值是128。&lt;br /&gt;gc_thresh2&lt;br /&gt;保存在ARP高速緩存中的最多的記錄軟限制。垃圾收集器在開始收集前，允許記錄數超過這個數&lt;br /&gt;字5秒。缺省值是512。&lt;br /&gt;gc_thresh3&lt;br /&gt;保存在ARP高速緩存中的最多記錄的硬限制，一旦高速緩存中的數目高於此，垃圾收集器將馬上&lt;br /&gt;運行。缺省值是1024。&lt;br /&gt;locktime&lt;br /&gt;ARP記錄保存在高速緩存內的最短時間（jiffy數），以防止存在多個可能的映射(potential&lt;br /&gt;mapping)時， ARP高速緩存系統的顛簸(經常是由於網絡的錯誤配置而引起)。缺省值是1&lt;br /&gt;秒。&lt;br /&gt;mcast_solicit&lt;br /&gt;在把記錄標記為不可抵達的之前，用多路廣播/廣播（multicast/broadcast）方式解析地址的&lt;br /&gt;最大次數。&lt;br /&gt;&lt;br /&gt;缺省值是3。&lt;br /&gt;proxy_delay&lt;br /&gt;當接收到有一個請求已知的代理ARP地址的ARP請求時，在回應前可以延遲的jiffy（時間單位，見BUG）數目。這樣，以防止網絡風暴。缺省值是0.8秒。&lt;br /&gt;proxy_qlen&lt;br /&gt;能放入代理ARP地址隊列(proxy-ARP addresses)的數據包最大數目。缺省值是64。&lt;br /&gt;IXDBA.NET技術社區&lt;br /&gt;retrans_time&lt;br /&gt;重發一個請求前的等待jiffy（時間單位，見BUG）的數目。缺省值是1秒。&lt;br /&gt;ucast_solicit&lt;br /&gt;詢問ARP端口監控程序前，試圖發送單探測（unicast probe）的次數。 (見app_solicit).缺省值是3秒。&lt;br /&gt;unres_qlen&lt;br /&gt;每個沒有被其它網絡層解析的地址，在隊列中可存放包的最大數目。缺省值是3.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.24reader.com/ken666/2009/02/23/%e9%97%9c%e6%96%bcip_conntrack-table-full-dropping-packet%e7%9a%84%e5%95%8f%e9%a1%8c/"&gt;http://blog.24reader.com/ken666/2009/02/23/%e9%97%9c%e6%96%bcip_conntrack-table-full-dropping-packet%e7%9a%84%e5%95%8f%e9%a1%8c/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ip_conntrack_max 不夠多dd-wrt nvram set ip_conntrack_max=8192nvram commit reboot&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.right.com.cn/forum/viewthread.php?tid=11273"&gt;http://www.right.com.cn/forum/viewthread.php?tid=11273&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;把 /proc/sys/net/ipv4/ip_conntrack_max 的值加大.如:echo "32767" &gt; /proc/sys/net/ipv4/ip_conntrack_max不過... 通常這個值也有數千, 也就是允許同時有上千個連線存在...你的機器同時有那麼多人連線嗎 ?沒看過正常使用下會超過原本的設定值 (依照你的 RAM 決定), 好像有出現的機器都有問題, 可能被入侵當成跳板在攻擊別人吧... 最好檢查一下....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://phorum.study-area.org/index.php?topic=11617.msg53210"&gt;http://phorum.study-area.org/index.php?topic=11617.msg53210&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;错误：&lt;br /&gt;Apr 8 16:15:42 GATEWAY kernel: ip_conntrack: table full, dropping&lt;br /&gt;&lt;br /&gt;packet.&lt;br /&gt;Apr 8 16:15:47 GATEWAY kernel: printk: 3 messages suppressed.&lt;br /&gt;Apr 8 16:15:47 GATEWAY kernel: ip_conntrack: table full, dropping&lt;br /&gt;&lt;br /&gt;packet.&lt;br /&gt;Apr 8 16:15:54 GATEWAY kernel: printk: 3 messages suppressed.&lt;br /&gt;Apr 8 16:15:54 GATEWAY kernel: ip_conntrack: table full, dropping&lt;br /&gt;&lt;br /&gt;packet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IP_conntrack表示连接跟踪数据库(conntrack database)，代表NAT机器跟踪连接&lt;br /&gt;&lt;br /&gt;的数目，连接跟踪表能容纳多少记录是被一个变量控制的，它可由内核中的ip-&lt;br /&gt;&lt;br /&gt;sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间，时间一长就&lt;br /&gt;&lt;br /&gt;会把默认的空间填满，那么默认空间是多少？在内存为64MB的机器上是4096,内存&lt;br /&gt;&lt;br /&gt;为128MB是 8192,内存为256MB是16384，那末就能&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;==================================&lt;br /&gt;现在通过/proc文档系统我们能够在运行时读取CONNTRACK_MAX的值。&lt;br /&gt;在Linux kernel 2.4.23版本前，使用：&lt;br /&gt;# cat /proc/sys/net/ipv4/ip_conntrack_max&lt;br /&gt;在Linux kernel 2.4.23版本后，使用：&lt;br /&gt;# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max&lt;br /&gt;(旧的 /proc/sys/net/ipv4/ip_conntrack_max是不建议使用的!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;在/proc/sys/net/ipv4/netfilter/ip_conntrack_max 里查看、设置。&lt;br /&gt;例如：增加到81920，可以用以下命令:&lt;br /&gt;echo "81920" &gt; /proc/sys/net/ipv4/netfilter/ip_conntrack_max&lt;br /&gt;那样设置是不会保存的，要重启后保存可以在/etc/sysctl.conf中加：&lt;br /&gt;net.ipv4.netfilter.ip_conntrack_max = 81920&lt;br /&gt;不过增大表可能造成性能下降。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;echo 21600&gt;&lt;br /&gt;&lt;br /&gt;/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established&lt;br /&gt;那样设置是不会保存的，要重启后保存可以在/etc/sysctl.conf中加：&lt;br /&gt;net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =21600&lt;br /&gt;这个参数是连接超时，默认超时时间是5天，也就是432000秒，现在把它改成&lt;br /&gt;&lt;br /&gt;21600，就是6小时，在6小时后清除掉无效的连接&lt;br /&gt;对已经建立的连接无效，已经建立的超时连接会在5天期满以后自动清除掉&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;查看ip_conntrack前几位IP&lt;br /&gt;&lt;br /&gt;cat /proc/net/ip_conntrack cut -d ' ' -f 10 cut -d '=' -f 2 sort uniq -c sort -nr head -n 5&lt;br /&gt;察看有多少个跟踪&lt;br /&gt;cat /proc/net/ip_conntrack cut -d ' ' -f 10 cut -d '=' -f 2 sort uniq -c sort -nr awk '{x=x+$1}{print x}'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.chinaunix.net/u/32831/showart_525559.html"&gt;http://blog.chinaunix.net/u/32831/showart_525559.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;在网上找了以下解决方法&lt;br /&gt;&lt;br /&gt;vi /etc/sysctl.conf&lt;br /&gt;&lt;br /&gt;net.ipv4.ip_conntrack_max = 655360&lt;br /&gt;net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180&lt;br /&gt;&lt;br /&gt;再sysctl -p&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hi.baidu.com/%BF%B5%BD%A1/blog/item/001962d9bfdc8e2911df9bb9.html"&gt;http://hi.baidu.com/%BF%B5%BD%A1/blog/item/001962d9bfdc8e2911df9bb9.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;系统报：&lt;br /&gt;Apr 17 16:37:26 www kernel: printk: 135 messages suppressed.&lt;br /&gt;Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:33 www kernel: printk: 139 messages suppressed.&lt;br /&gt;Apr 17 16:37:33 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:37 www kernel: printk: 60 messages suppressed.&lt;br /&gt;Apr 17 16:37:37 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Apr 17 16:37:52 www kernel: printk: 19 messages suppressed.&lt;br /&gt;Apr 17 16:37:52 www kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;&lt;br /&gt;有丢包现象&lt;br /&gt;&lt;br /&gt;[root@www ~]# wc -l /proc/net/ip_conntrack&lt;br /&gt;68463 /proc/net/ip_conntrack&lt;br /&gt;&lt;br /&gt;[root@www ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max&lt;br /&gt;65536&lt;br /&gt;&lt;br /&gt;可调整以下参数：&lt;br /&gt;&lt;br /&gt;echo 180 &gt; /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established&lt;br /&gt;echo 262144 &gt; /proc/sys/net/ipv4/netfilter/ip_conntrack_max&lt;br /&gt;echo 120 &gt; /proc/sys/net/ipv4/neigh/default/gc_stale_time&lt;br /&gt;echo 1024 &gt; /proc/sys/net/ipv4/neigh/default/gc_thresh1&lt;br /&gt;echo 4096 &gt; /proc/sys/net/ipv4/neigh/default/gc_thresh2&lt;br /&gt;echo 8192 &gt; /proc/sys/net/ipv4/neigh/default/gc_thresh3&lt;br /&gt;&lt;br /&gt;或vi /etc/sysctl.conf&lt;br /&gt;&lt;br /&gt;net.ipv4.ip_conntrack_max = 655360&lt;br /&gt;net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180&lt;br /&gt;&lt;br /&gt;再sysctl -p&lt;br /&gt;&lt;br /&gt;相关参数说明：&lt;br /&gt;&lt;br /&gt;ARP 支持一个 sysctl 接口，可以用以配置全局参数或逐个网络接口地进行配制。 该 sysctl 可以通过 /proc/sys/net/ipv4/neigh/*/* 文件或者使用 sysctl(2) 接口来访问。系统中每个接口都在 /proc/sys/net/ipv4/neigh/. 中有自己的目录。`default'目录中的设置用于所有新建的设备。 sysctl 相关的时间是以秒为单位，除非特别声明过．&lt;br /&gt;anycast_delay&lt;br /&gt;对 IPv6 相邻请求信息的回复的最大延迟时间； 目前还不支持 anycast。缺省值为1秒。&lt;br /&gt;app_solicit&lt;br /&gt;这是在使用多路广播探测(multicast probe)前， 经过网络连接送到用户间隙ARP端口监控程序的探测（probe） 最大数目(见 mcast_solicit )。 缺省值为0。&lt;br /&gt;base_reachable_time&lt;br /&gt;一旦发现相邻记录，至少在一段介于 base_reachable_time/2和3*base_reachable_time/2 之间的随机时间内，该记录是有效的。如果收到上层协议的肯定反馈， 那么记录的有效期将延长。 缺省值是30秒。&lt;br /&gt;delay_first_probe_time&lt;br /&gt;发现某个相邻层记录无效(stale)后，发出第一个探测要等待的时间。 缺省值是5秒。&lt;br /&gt;gc_interval&lt;br /&gt;收集相邻层记录的无用记录的垃圾收集程序的运行周期，缺省为30秒。&lt;br /&gt;gc_stale_time&lt;br /&gt;决定检查一次相邻层记录的有效性的周期。 当相邻层记录失效时，将在给它发送数据前，再解析一次。 缺省值是60秒。&lt;br /&gt;gc_thresh1&lt;br /&gt;存在于ARP高速缓存中的最少层数，如果少于这个数， 垃圾收集器将不会运行。缺省值是128。&lt;br /&gt;gc_thresh2&lt;br /&gt;保存在 ARP 高速缓存中的最多的记录软限制。 垃圾收集器在开始收集前，允许记录数超过这个数字 5 秒。 缺省值是 512。&lt;br /&gt;gc_thresh3&lt;br /&gt;保存在 ARP 高速缓存中的最多记录的硬限制， 一旦高速缓存中的数目高于此， 垃圾收集器将马上运行。缺省值是1024。&lt;br /&gt;locktime&lt;br /&gt;ARP 记录保存在高速缓存内的最短时间（jiffy数）， 以防止存在多个可能的映射(potential mapping)时， ARP 高速缓存系统的颠簸 (经常是由于网络的错误配置而引起)。 缺省值是 1 秒。&lt;br /&gt;mcast_solicit&lt;br /&gt;在把记录标记为不可抵达的之前， 用多路广播/广播（multicast/broadcast）方式解析地址的最大次数。 缺省值是3。&lt;br /&gt;proxy_delay&lt;br /&gt;当接收到有一个请求已知的代理 ARP 地址的 ARP 请求时， 在回应前可以延迟的 jiffy（时间单位，见BUG）数目。 这样，以防止网络风暴。缺省值是0.8秒。&lt;br /&gt;proxy_qlen&lt;br /&gt;能放入代理 ARP 地址队列(proxy-ARP addresses)的数据包最大数目。缺省值是64。&lt;br /&gt;retrans_time&lt;br /&gt;重发一个请求前的等待 jiffy（时间单位，见BUG）的数目。缺省值是1秒。&lt;br /&gt;ucast_solicit&lt;br /&gt;询问ARP端口监控程序前，试图发送单探测（unicast probe）的次数。 (见 app_solicit). 缺省值是3秒。&lt;br /&gt;unres_qlen&lt;br /&gt;每个没有被其它网络层解析的地址，在队列中可存放包的最大数目。缺省值是3.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hi.baidu.com/kouzl/blog/item/27e63745ecf9ca388694733a.html"&gt;http://hi.baidu.com/kouzl/blog/item/27e63745ecf9ca388694733a.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-4661503329980370859?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/4661503329980370859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=4661503329980370859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/4661503329980370859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/4661503329980370859'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2009/03/ipconntrack-table-full-dropping-packet.html' title=''/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-5969155115606510669</id><published>2008-10-28T23:47:00.000-07:00</published><updated>2008-10-28T08:48:05.427-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux Proftpd 安装 配置'/><title type='text'>Linux下 Proftpd 的安装配置 记录</title><content type='html'>作者：白东(Albert Ding)&lt;br /&gt;&lt;br /&gt;由于更换服务器，因此尝试了一下Proftpd，先到 Proftpd 看了文档，之前也听说Proftpd比较容易设置。&lt;br /&gt;&lt;br /&gt;如下安装：&lt;br /&gt;&lt;br /&gt;1. 下载 Proftpd，在网站首页就有链接，如果网站打不开，那就直接上它的ftp吧 ftp://ftp.proftpd.org；&lt;br /&gt;2. 配置 Proftpd:&lt;br /&gt;1. 由于习惯分散管理进行了这样的配置 (./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run)&lt;br /&gt;2. 将这些内容分散安装，如果 (./configure)什么参数也不要，那默认安装位置是：/usr/local，其他的也会分散到 /usr/local 中的相应目录中。&lt;br /&gt;3. 编译和安装 (make / make install)&lt;br /&gt;4. 设定开机自动启动文件 /etc/init.d/proftpd (具体内容见文后附录，同时注意修改 proftpd 文件的属性 chmod 755 /etc/init.d/proftpd )&lt;br /&gt;5. 配置 Proftpd (/etc/proftpd.conf) (这里有非常详细的说明：http://www.proftpd.org/docs/directives/linked/configuration.html)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=========&lt;br /&gt; 附录： &lt;br /&gt;=========&lt;br /&gt;&lt;br /&gt;参考配置片断：&lt;br /&gt;=========&lt;br /&gt;&lt;br /&gt;ServerIdent off #不向客户端发送proftpd的版本信息，默认是打开的&lt;br /&gt;DefaultRoot ~ #系统用户登陆后，以他们自己的目录为根，这样安全&lt;br /&gt;DisplayLogin welcome.msg #显示登陆消息，需要在用户名的根目录中设定welcome.msg文件&lt;br /&gt;DefaultChdir public_html #用户登陆后的默认文件夹，如果不设定这个，则是用户的根目录&lt;br /&gt;AllowRetrieveRestart on #允许断点续传&lt;br /&gt;AllowStoreRestart on&lt;br /&gt;&lt;br /&gt;/etc/proftpd.conf 的脚本内容：&lt;br /&gt;======================&lt;br /&gt;(注意，如果你安装的位置不同，要记得修改下面的路径，主要是：FTPD_BIN 和 FTPD_CONF)&lt;br /&gt;(注意，修改 proftpd 文件的属性: chmod 755 /etc/init.d/proftpd )&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# ProFTPD files&lt;br /&gt;FTPD_BIN=/usr/sbin/proftpd&lt;br /&gt;FTPD_CONF=/usr/etc/proftpd.conf&lt;br /&gt;PIDFILE=/var/run/proftpd.pid&lt;br /&gt;&lt;br /&gt;# If PIDFILE exists, does it point to a proftpd process?&lt;br /&gt;&lt;br /&gt;if [ -f $PIDFILE ]; then&lt;br /&gt;pid=`cat $PIDFILE`&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ ! -x $FTPD_BIN ]; then&lt;br /&gt;echo "$0: $FTPD_BIN: cannot execute"&lt;br /&gt;exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;case $1 in&lt;br /&gt;&lt;br /&gt;start)&lt;br /&gt;if [ -n "$pid" ]; then&lt;br /&gt;echo "$0: proftpd [PID $pid] already running"&lt;br /&gt;exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -r $FTPD_CONF ]; then&lt;br /&gt;echo "Starting proftpd..."&lt;br /&gt;&lt;br /&gt;$FTPD_BIN -c $FTPD_CONF&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;echo "$0: cannot start proftpd -- $FTPD_CONF missing"&lt;br /&gt;fi&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;stop)&lt;br /&gt;if [ -n "$pid" ]; then&lt;br /&gt;echo "Stopping proftpd..."&lt;br /&gt;kill -TERM $pid&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;echo "$0: proftpd not running"&lt;br /&gt;exit 1&lt;br /&gt;fi&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;restart)&lt;br /&gt;if [ -n "$pid" ]; then&lt;br /&gt;echo "Rehashing proftpd configuration"&lt;br /&gt;kill -HUP $pid&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;echo "$0: proftpd not running"&lt;br /&gt;exit 1&lt;br /&gt;fi&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;*)&lt;br /&gt;echo "usage: $0 {startstoprestart}"&lt;br /&gt;exit 1&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;br /&gt;消息文件中能够使用的转义字符：&lt;br /&gt;======================&lt;br /&gt;(呵呵，顺手翻译了这个。)&lt;br /&gt;&lt;br /&gt;%C 当前工作目录&lt;br /&gt;%E 服务器管理员的邮箱地址&lt;br /&gt;%F 文件系统剩余空间(bytes)&lt;br /&gt;%f 文件系统剩余空间(units)&lt;br /&gt;%i 本次上传的文件数量&lt;br /&gt;%L 本机的主机名&lt;br /&gt;%M 最大的连接数&lt;br /&gt;%N 当前的连接数&lt;br /&gt;%o 本次下载的文件数量&lt;br /&gt;%R 客户端的主机名&lt;br /&gt;%T 当前系统时间&lt;br /&gt;%t 本次的文件交换数量(包括上传和下载)&lt;br /&gt;%U 登陆的用户名&lt;br /&gt;%u 通过 ident 协议识别的用户名&lt;br /&gt;%V 虚拟主机的名称(如果有)&lt;br /&gt;%x 用户组的名称&lt;br /&gt;%y 当前连接中该用户组的数量&lt;br /&gt;%z 当前连接中该用户组允许的最大数量&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-5969155115606510669?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/5969155115606510669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=5969155115606510669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/5969155115606510669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/5969155115606510669'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/linux-proftpd.html' title='Linux下 Proftpd 的安装配置 记录'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-8998139618763357454</id><published>2008-08-19T10:00:00.000-07:00</published><updated>2008-08-18T10:04:02.540-07:00</updated><title type='text'>Qmail openssl stunnel ssl pop3 995 smtp 465 配置 安装</title><content type='html'>转载请注明出处，作者：&lt;a href="http://www.inouting.com/"&gt;Albert Ding&lt;/a&gt;, 白东&lt;br /&gt;&lt;br /&gt;服务器在境外，GFW很烦，因此给qmail邮件服务器增加了ssl链接方式。而这方面的中文资料很少，尤其是使用stunnel的，所以升级了后，写了这篇手记。&lt;br /&gt;&lt;br /&gt;按之前的qmail vpopmail的方式安装好。我的服务器原来就安装qmail，一切工作正常，仅仅打了smtp验证的补丁。&lt;br /&gt;&lt;br /&gt;如果是这样，那就可以直接升级。&lt;br /&gt;&lt;br /&gt;需要安装下面两个软件：&lt;br /&gt;&lt;br /&gt; 1. openssl (http://www.openssl.org)&lt;br /&gt;    # cd openssl-0.9.8e&lt;br /&gt;    # ./config&lt;br /&gt;    # make&lt;br /&gt;    # make test&lt;br /&gt;    # make install&lt;br /&gt;    # openssl version&lt;br /&gt;    OpenSSL 0.9.8e 23 Feb 2007&lt;br /&gt; 2. stunnel (http://www.stunnel.org)&lt;br /&gt;    # ./configure --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var --sbindir=/sbin&lt;br /&gt;    # make&lt;br /&gt;    # make install&lt;br /&gt;    # stunnel -version&lt;br /&gt;    stunnel 4.20 on i686-pc-linux-gnu with OpenSSL 0.9.8e 23 Feb 2007&lt;br /&gt;    Threading:PTHREAD SSL:ENGINE Sockets:POLL,IPv4&lt;br /&gt;    Global options&lt;br /&gt;    debug           = 5&lt;br /&gt;    pid             = /usr/local/var/run/stunnel/stunnel.pid&lt;br /&gt;    RNDbytes        = 64&lt;br /&gt;    RNDfile         = /dev/urandom&lt;br /&gt;    RNDoverwrite    = yes&lt;br /&gt;    Service-level options&lt;br /&gt;    cert            = /etc/stunnel/stunnel.pem&lt;br /&gt;    ciphers         = ALL:!ADH:+RC4:@STRENGTH&lt;br /&gt;    key             = /etc/stunnel/stunnel.pem&lt;br /&gt;    session         = 300 seconds&lt;br /&gt;    sslVersion      = SSLv3 for client, all for server&lt;br /&gt;    TIMEOUTbusy     = 300 seconds&lt;br /&gt;    TIMEOUTclose    = 60 seconds&lt;br /&gt;    TIMEOUTconnect  = 10 seconds&lt;br /&gt;    TIMEOUTidle     = 43200 seconds&lt;br /&gt;    verify          = none&lt;br /&gt;&lt;br /&gt;stunnel 配置的时候主意设定一下安装路径 /sbin/stunnel /etc/stunnel 主要的两个。&lt;br /&gt;&lt;br /&gt;安装好后，建立两个文件&lt;br /&gt;&lt;br /&gt;/etc/stunnel/pop3.conf&lt;br /&gt;# /etc/stunnel/pop3.conf&lt;br /&gt;cert = /var/qmail/control/servercert.pem&lt;br /&gt;exec = /var/qmail/bin/qmail-popup&lt;br /&gt;execargs = qmail-popup your.domain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir&lt;br /&gt;&lt;br /&gt;/etc/stunnel/smtp.conf&lt;br /&gt;# /etc/stunnel/smtp.conf&lt;br /&gt;cert = /var/qmail/control/servercert.pem&lt;br /&gt;exec = /var/qmail/bin/qmail-smtpd&lt;br /&gt;execargs = qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true&lt;br /&gt;&lt;br /&gt;建立qmail服务器证书(反正是自己签发证书，想多长时间都可以，这里设定10年，呵呵)：&lt;br /&gt;&lt;br /&gt;# cd /var/qmail/control&lt;br /&gt;# openssl req -new -x509 -nodes -out servercert.pem -days 3650 -keyout servercert.pem&lt;br /&gt;&lt;br /&gt;需改服务器证书文件servercert.pem的文件属性：&lt;br /&gt;&lt;br /&gt;# ln -s /var/qmail/control/servercert.pem clientcert.pem&lt;br /&gt;# chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem&lt;br /&gt;# chmod 600 servercert.pem #这个很重要哦&lt;br /&gt;&lt;br /&gt;建立pop3和smtp ssl的run文件&lt;br /&gt;&lt;br /&gt;# mkdir -p /var/qmail/supervise/qmail-pop3ds/log /var/qmail/supervise/qmail-smtpds/log /var/log/qmail/pop3ds /var/log/qmail/smtpds&lt;br /&gt;&lt;br /&gt;/var/qmail/supervise/qmail-pop3ds/run&lt;br /&gt;#!/bin/sh&lt;br /&gt;MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;exec /usr/local/bin/softlimit -m 20000000 \&lt;br /&gt;/usr/local/bin/tcpserver -H -R -v -l "$LOCAL" -c "$MAXSMTPD" 0 995 \&lt;br /&gt;/sbin/stunnel /etc/stunnel/pop3.conf 2&gt;&amp;amp;1&lt;br /&gt;/var/qmail/supervise/qmail-pop3ds/log/run&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \&lt;br /&gt;  /var/log/qmail/pop3ds&lt;br /&gt;/var/qmail/supervise/qmail-smtpds/run&lt;br /&gt;#!/bin/sh&lt;br /&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;&lt;br /&gt;if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then&lt;br /&gt;  echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in&lt;br /&gt;  echo /var/qmail/supervise/qmail-smtpds/run&lt;br /&gt;  exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ ! -f /var/qmail/control/rcpthosts ]; then&lt;br /&gt;  echo "No /var/qmail/control/rcpthosts!"&lt;br /&gt;  echo "Refusing to start SMTP listener because it'll create an open relay"&lt;br /&gt;  exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;exec /usr/local/bin/softlimit -m 20000000 \&lt;br /&gt;      /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \&lt;br /&gt;     -u 89 -g 89 0 465 \&lt;br /&gt;      /sbin/stunnel /etc/stunnel/smtp.conf 2&gt;&amp;amp;1&lt;br /&gt;/var/qmail/supervise/qmail-smtpds/log/run&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpds&lt;br /&gt;&lt;br /&gt;将执行文件链接到/service中：&lt;br /&gt;&lt;br /&gt;# chmod 755 /var/qmail/supervise/qmail-pop3ds/run /var/qmail/supervise/qmail-pop3ds/log/run /var/qmail/supervise/qmail-smtpds/run /var/qmail/supervise/qmail-smtpds/log/run&lt;br /&gt;# chown -R qmaill /var/log/qmail/pop3ds/ /var/log/qmail/smtpds/&lt;br /&gt;# cd /service&lt;br /&gt;# ln -s /var/qmail/supervise/qmail-pop3ds/ qmail-pop3ds&lt;br /&gt;# ln -s /var/qmail/supervise/qmail-smtpds/ qmail-smtpds&lt;br /&gt;&lt;br /&gt;修改qmailctl文件：&lt;br /&gt;&lt;br /&gt;/var/qmail/bin/qmailctl #这个文件编写的有点复杂，我还有个更简单的，我回头贴出来。&lt;br /&gt;#!/bin/sh&lt;br /&gt;# Description: the qmail MTA&lt;br /&gt;PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin&lt;br /&gt;export PATH&lt;br /&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;  echo "Starting qmail..."&lt;br /&gt;  echo "  qmail-send"&lt;br /&gt;  if svok /service/qmail-send ; then&lt;br /&gt;    svc -u /service/qmail-send /service/qmail-send/log&lt;br /&gt;  else&lt;br /&gt;    echo "  qmail-send supervise not running"&lt;br /&gt;  fi&lt;br /&gt;  echo "  qmail-smtp"&lt;br /&gt;  if svok /service/qmail-smtpd ; then&lt;br /&gt;    svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;  else&lt;br /&gt;    echo "  qmail-smtpd supervise not running"&lt;br /&gt;  fi&lt;br /&gt;  echo "  qmail-smtp ssl"&lt;br /&gt;  if svok /service/qmail-smtpds ; then&lt;br /&gt;    svc -u /service/qmail-smtpds /service/qmail-smtpds/log&lt;br /&gt;  else&lt;br /&gt;    echo "  qmail-smtpd ssl supervise not running"&lt;br /&gt;  fi&lt;br /&gt;  echo "  qmail-pop3d"&lt;br /&gt;  if svok /service/qmail-pop3d ; then&lt;br /&gt;    svc -u /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;  else&lt;br /&gt;    echo "  qmail-pop3d supervise not running"&lt;br /&gt;  fi&lt;br /&gt;  echo "  qmail-pop3d ssl"&lt;br /&gt;  if svok /service/qmail-pop3ds ; then&lt;br /&gt;    svc -u /service/qmail-pop3ds /service/qmail-pop3ds/log&lt;br /&gt;  else&lt;br /&gt;    echo " qmail-pop3d ssl service not running"&lt;br /&gt;  fi&lt;br /&gt;  if [ -d /var/lock/subsys ]; then&lt;br /&gt;    touch /var/lock/subsys/qmail&lt;br /&gt;  fi&lt;br /&gt;  ;;&lt;br /&gt;stop)&lt;br /&gt;  echo "Stopping qmail..."&lt;br /&gt;  echo "  qmail-smtpd"&lt;br /&gt;  svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;  echo "  qmail-smtpd ssl"&lt;br /&gt;  svc -d /service/qmail-smtpds /service/qmail-smtpds/log&lt;br /&gt;  echo "  qmail-send"&lt;br /&gt;  svc -d /service/qmail-send /service/qmail-send/log&lt;br /&gt;  echo "  qmail-pop3d"&lt;br /&gt;  svc -d /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;  echo "  qmail-pop3d ssl"&lt;br /&gt;  svc -d /service/qmail-pop3ds /service/qmail-pop3ds/log&lt;br /&gt;  if [ -f /var/lock/subsys/qmail ]; then&lt;br /&gt;    rm /var/lock/subsys/qmail&lt;br /&gt;  fi&lt;br /&gt;  ;;&lt;br /&gt;stat)&lt;br /&gt;  svstat /service/qmail-send&lt;br /&gt;  svstat /service/qmail-send/log&lt;br /&gt;  svstat /service/qmail-smtpd&lt;br /&gt;  svstat /service/qmail-smtpd/log&lt;br /&gt;  svstat /service/qmail-smtpds&lt;br /&gt;  svstat /service/qmail-smtpds/log&lt;br /&gt;  svstat /service/qmail-pop3d&lt;br /&gt;  svstat /service/qmail-pop3d/log&lt;br /&gt;  svstat /service/qmail-pop3ds&lt;br /&gt;  svstat /service/qmail-pop3ds/log&lt;br /&gt;  qmail-qstat&lt;br /&gt;  ;;&lt;br /&gt;doqueue|alrm|flush)&lt;br /&gt;  echo "Flushing timeout table and sending ALRM signal to qmail-send."&lt;br /&gt;  /var/qmail/bin/qmail-tcpok&lt;br /&gt;  svc -a /service/qmail-send&lt;br /&gt;  ;;&lt;br /&gt;queue)&lt;br /&gt;  qmail-qstat&lt;br /&gt;  qmail-qread&lt;br /&gt;  ;;&lt;br /&gt;reload|hup)&lt;br /&gt;  echo "Sending HUP signal to qmail-send."&lt;br /&gt;  svc -h /service/qmail-send&lt;br /&gt;  ;;&lt;br /&gt;pause)&lt;br /&gt;  echo "Pausing"&lt;br /&gt;  echo "  qmail-send"&lt;br /&gt;  svc -p /service/qmail-send&lt;br /&gt;  echo "  qmail-smtpd"&lt;br /&gt;  svc -p /service/qmail-smtpd&lt;br /&gt;  echo "  qmail-smtpd ssl"&lt;br /&gt;  svc -p /service/qmail-smtpds&lt;br /&gt;  echo "  qmail-pop3d"&lt;br /&gt;  svc -p /service/qmail-pop3d&lt;br /&gt;  echo "  qmail-pop3d ssl"&lt;br /&gt;  svc -p /service/qmail-pop3ds&lt;br /&gt;  ;;&lt;br /&gt;cont)&lt;br /&gt;  echo "Continuing"&lt;br /&gt;  echo "  qmail-send"&lt;br /&gt;  svc -c /service/qmail-send&lt;br /&gt;  echo "  qmail-smtpd"&lt;br /&gt;  svc -c /service/qmail-smtpd&lt;br /&gt;  echo "  qmail-smtpd ssl"&lt;br /&gt;  svc -c /service/qmail-smtpds&lt;br /&gt;  echo "  qmail-pop3d"&lt;br /&gt;  svc -c /service/qmail-pop3d&lt;br /&gt;  echo "  qmail-pop3ds"&lt;br /&gt;  svc -c /service/qmail-pop3ds&lt;br /&gt;  ;;&lt;br /&gt;restart)&lt;br /&gt;  echo "Restarting qmail:"&lt;br /&gt;  echo "* Stopping qmail-smtpd."&lt;br /&gt;  svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;  echo "* Stopping qmail-smtpd ssl."&lt;br /&gt;  svc -d /service/qmail-smtpds /service/qmail-smtpds/log&lt;br /&gt;  echo "* Sending qmail-send SIGTERM and restarting."&lt;br /&gt;  svc -t /service/qmail-send /service/qmail-send/log&lt;br /&gt;  echo "* Restarting qmail-smtpd."&lt;br /&gt;  svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;  echo "* Restarting qmail-smtpd ssl."&lt;br /&gt;  svc -u /service/qmail-smtpds /service/qmail-smtpds/log&lt;br /&gt;  echo "* Restarting qmail-pop3d."&lt;br /&gt;  svc -t /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;  echo "* Restarting qmail-pop3ds."&lt;br /&gt;  svc -t /service/qmail-pop3ds /service/qmail-pop3ds/log&lt;br /&gt;  ;;&lt;br /&gt;cdb)&lt;br /&gt;  tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &lt; /etc/tcp.smtp     chmod 644 /etc/tcp.smtp.cdb     echo "Reloaded /etc/tcp.smtp."     ;;   help)     cat &lt;&lt;help goes="" starts="" connection="" can="" go="" pause="" temporarily="" connections="" nothing="" cont="" continues="" paused="" displays="" mail="" rebuild="" the="" tcpserver="" cdb="" file="" smtp="" restart="" stops="" a="" term="" restarts="" it="" schedules="" queued="" for="" immediate="" delivery="" sends="" rereading="" locals="" and="" virtualdomains="" shows="" status="" of="" alrm="" flush="" doqueue="" hup="" same="" as="" reload="" help="" echo="" queu="" 1="" esac="" exit="" stop="" start="" stat="" send="" smtpd="" smtpds="" pop3d="" pop3ds="" up="" pid="" 3561="" seconds="" 2="" messages="" in="" queue="" but="" not="" yet="" 27="" qmailctl="" ps="" efl="" errors="" v="" grep="" 4="" s="" root="" 5631="" 5626="" 75="" 0="" 303="" pipe_w="" sep01="" 00="" readproctitle="" service="" 25="" 220="" net="" esmtp="" ehlo="" com="" md5="" plain="" pipelining="" 250="" 8bitmime="" auth="" login="" 334="" vxnlcm5hbwu6="" quit="" telnet="" localhost="" 110="" trying="" connected="" to="" escape="" character="" is="" ok=""&gt;&lt;1520.11887344591214@your.domain.com&gt;&lt;br /&gt;    user albert&lt;br /&gt;    +OK&lt;br /&gt;    pass albert&lt;br /&gt;    +OK&lt;br /&gt;    list&lt;br /&gt;    +OK&lt;br /&gt;    1 2734&lt;br /&gt;    2 31807&lt;br /&gt;    3 34957&lt;br /&gt;    4 20644&lt;br /&gt;    5 27798&lt;br /&gt;    6 26584&lt;br /&gt;    .&lt;br /&gt;    quit&lt;br /&gt; 4. # openssl s_client -connect localhost:465&lt;br /&gt;    (执行后，会有大段的证书相关的信息，这里省略，只复制来最后一行，然后测试就和telnet localhost 25 一样了)&lt;br /&gt;    220 your.domain.com ESMTP&lt;br /&gt; 5. openssl s_client -connect localhost:995&lt;br /&gt;    (执行后，会有大段的证书相关的信息，这里省略，只复制来最后一行，然后测试就和telnet localhost 110 一样了)&lt;br /&gt;    +OK &lt;1872.1188791523434@your.domain.com&gt;&lt;br /&gt; 6. 查看主要的日志，包括：&lt;br /&gt;       1. /var/log/qmail/current&lt;br /&gt;       2. /var/log/qmail/pop3d/current&lt;br /&gt;       3. /var/log/qmail/pop3ds/current&lt;br /&gt;       4. /var/log/qmail/smtpd/current&lt;br /&gt;       5. /var/log/qmail/smtpds/current&lt;br /&gt;       6. 另外你也可以在/etc/stunnel/smtp.conf 和 pop3.conf 文件中加入下面两个设置内容，以生成详细的调试日志。&lt;br /&gt;          debug = 7&lt;br /&gt;          output = /var/log/qmail/stunnel.log&lt;br /&gt;&lt;br /&gt;可能遇到的问题：&lt;br /&gt;&lt;br /&gt; 1. 如果你是用复制，那你需要很小心了，因为有的时候文件的换行在你复制到telnet客户端软件的时候会有可能变了，因为dos格式和unix格式有差别。尤其注意运行文件第一行的声明后的换行。&lt;br /&gt; 2. tcpserver: fatal: no IP address for your.domain.com&lt;br /&gt;    表示端口已经被其它进程占用，要么你停掉那个进程，要么换个端口。&lt;br /&gt; 3. Wrong permissions on /var/qmail/control/servercert.pem&lt;br /&gt;    servvercert.pem文件属性设置为600即可&lt;br /&gt; 4. /etc/stunnel/smtp.conf文件中最后的" /bin/true"不能忘记，否则客户端会提示验证不通过。&lt;br /&gt; 5. ssl证书问题，因为我们是自己签发的证书，所以客户端会提示，两个办法：1、购买权威机构签发的证书（非常贵，国内很多是国内范围的便宜价格，国际范围的就不一样了）。2、将serercert.pem文件重命名为 .crt 或 .cer 格式。然后在IE的Internet Options中导入，要选择自动。&lt;br /&gt; 6. 454 oops, unable to write pipe and I can't auth (#4.3.0)&lt;br /&gt;    老版本的smtp验证补丁中，你需要加上域名，才可以验证。就是在/etc/stunnel/smtp.conf文件中的qmail-smtpd后面。这样：&lt;br /&gt;    execargs = qmail-smtpd your.domain.com /home/vpopmail/bin/vchkpw /bin/true&lt;br /&gt;    可以参考这个网页的说明 http://www.fehcom.de/qmail/smtpauth.html&lt;br /&gt;&lt;br /&gt;如果你有问题，可以联系我。msn: amtding # msn 。com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;下面是那个简单的qmailctl文件。(这里把我的行前缩进给弄没了，你自己加吧。:( )&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# chkconfig: 2345 80 30&lt;br /&gt;# description: the qmail MTA&lt;br /&gt;&lt;br /&gt;PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin&lt;br /&gt;export PATH&lt;br /&gt;&lt;br /&gt;SERVICES=" /service/qmail-send \&lt;br /&gt;/service/qmail-send/log \&lt;br /&gt;/service/qmail-smtpd \&lt;br /&gt;/service/qmail-smtpd/log \&lt;br /&gt;/service/qmail-smtpds \&lt;br /&gt;/service/qmail-smtpds/log \&lt;br /&gt;/service/qmail-pop3d \&lt;br /&gt;/service/qmail-pop3d/log \&lt;br /&gt;/service/qmail-pop3ds \&lt;br /&gt;/service/qmail-pop3ds/log"&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;echo "Starting qmail"&lt;br /&gt;svc -u ${SERVICES}&lt;br /&gt;&lt;br /&gt;if [ -d /var/lock/subsys ]; then&lt;br /&gt;touch /var/lock/subsys/qmail&lt;br /&gt;fi&lt;br /&gt;;;&lt;br /&gt;stop)&lt;br /&gt;echo "Stopping qmail..."&lt;br /&gt;svc -d ${SERVICES}&lt;br /&gt;if [ -f /var/lock/subsys/qmail ]; then&lt;br /&gt;rm /var/lock/subsys/qmail&lt;br /&gt;fi&lt;br /&gt;;;&lt;br /&gt;stat)&lt;br /&gt;svstat ${SERVICES}&lt;br /&gt;qmail-qstat&lt;br /&gt;;;&lt;br /&gt;doqueue|alrm|flush)&lt;br /&gt;echo "Flushing timeout table and sending ALRM signal to qmail-send."&lt;br /&gt;/var/qmail/bin/qmail-tcpok&lt;br /&gt;svc -a /service/qmail-send&lt;br /&gt;;;&lt;br /&gt;queue)&lt;br /&gt;qmail-qstat&lt;br /&gt;qmail-qread&lt;br /&gt;;;&lt;br /&gt;reload|hup)&lt;br /&gt;echo "Sending HUP signal to qmail-send."&lt;br /&gt;svc -h /service/qmail-send&lt;br /&gt;;;&lt;br /&gt;pause)&lt;br /&gt;echo "Pausing qmail"&lt;br /&gt;svc -p ${SERVICES}&lt;br /&gt;;;&lt;br /&gt;cont)&lt;br /&gt;echo "Continuing qmail"&lt;br /&gt;svc -c ${SERVICES}&lt;br /&gt;;;&lt;br /&gt;restart)&lt;br /&gt;echo "Restarting qmail"&lt;br /&gt;svc -d ${SERVICES}&lt;br /&gt;svc -u ${SERVICES}&lt;br /&gt;;;&lt;br /&gt;cdb)&lt;br /&gt;/usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp &lt; /home/vpopmail/etc/tcp.smtp chmod 644 /home/vpopmail/etc/tcp.smtp* echo "Reloaded /home/vpopmail/etc/tcp.smtp." ;; help) cat &lt;&lt;help&gt;&lt;br /&gt;stop -- stops mail service (smtp connections refused, nothing goes out)&lt;br /&gt;start -- starts mail service (smtp connection accepted, mail can go out)&lt;br /&gt;pause -- temporarily stops mail service (connections accepted, nothing leaves)&lt;br /&gt;cont -- continues paused mail service&lt;br /&gt;stat -- displays status of mail service&lt;br /&gt;cdb -- rebuild the tcpserver cdb file for smtp&lt;br /&gt;restart -- stops and restarts smtp, sends qmail-send a TERM &amp;amp; restarts it&lt;br /&gt;doqueue -- schedules queued messages for immediate delivery&lt;br /&gt;reload -- sends qmail-send HUP, rereading locals and virtualdomains&lt;br /&gt;queue -- shows status of queue&lt;br /&gt;alrm -- same as doqueue&lt;br /&gt;flush -- same as doqueue&lt;br /&gt;hup -- same as reload&lt;br /&gt;HELP&lt;br /&gt;;;&lt;br /&gt;*)&lt;br /&gt;echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|paus e|cont|cdb|queue|help}"&lt;br /&gt;exit 1&lt;br /&gt;;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit 0 &lt;/help&gt;&lt;/help&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-8998139618763357454?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/8998139618763357454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=8998139618763357454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/8998139618763357454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/8998139618763357454'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/08/qmail-openssl-stunnel-ssl-pop3-995-smtp.html' title='Qmail openssl stunnel ssl pop3 995 smtp 465 配置 安装'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-6396155390244149822</id><published>2008-08-18T08:13:00.000-07:00</published><updated>2008-08-18T08:14:19.890-07:00</updated><title type='text'>Awstats 安装配置记录</title><content type='html'>作者：白东(&lt;a href="http://www.inouting.com"&gt;Albert Ding&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;更换新的服务器，于是重新配置了Awstats日志分析工具。&lt;br /&gt;&lt;br /&gt;Awstats 是什么？（首先简单介绍一下）&lt;br /&gt;&lt;br /&gt;AWStats 是一个专门用来分析 Web 站点日志文件 (log) 的 GPL 授权软件，它同时也支持分析 FTP 站点及邮件服务器的日志文件，此软件的 Web 日志分析部分可以工作和分析 IIS 的 (W3C log format) 日志文件、Apache 的 (NCSA combined/XLF/ELF log format or common/CLF log format) 日志文件，以及其它大部分的 web, proxy, wap, streaming 服务器所产生的日志文件。&lt;br /&gt;&lt;br /&gt;Awstats运行环境&lt;br /&gt;&lt;br /&gt;   1. Linux/Unix/Windows 等 (注：本文讲述的是在Linux下的安装和配置)&lt;br /&gt;   2. Perl 版本需要 5.005_03 或更高版本&lt;br /&gt;&lt;br /&gt;Awstats 下载和解压&lt;br /&gt;&lt;br /&gt;   1. 下载&lt;br /&gt;         1. 地址： http://awstats.sourceforge.net/#DOWNLOAD&lt;br /&gt;         2. 版本：建议下载最新版本&lt;br /&gt;         3. wget http://awstats.sourceforge.net/files/awstats-6.5.tgz&lt;br /&gt;   2. 解压&lt;br /&gt;         1. tar xvfz awstats-6.5.tgz&lt;br /&gt;         2. mv awstats-6.5 /usr/local/awstats (/usr/local/awstats 这个为安装的位置，也可以选择别的位置)&lt;br /&gt;&lt;br /&gt;Awstats 安装和配置&lt;br /&gt;&lt;br /&gt;   1. 安装&lt;br /&gt;         1. cd /usr/local/awstats/tools&lt;br /&gt;         2. perl awstats_configure.pl (运行awstats的安装配置文件)&lt;br /&gt;         3. 按提示操作即可&lt;br /&gt;   2. 配置&lt;br /&gt;         1. 复制 awstats.model.conf 到 /etc/awstats 目录 (cp awstats.model.conf /etc/awstats/)；&lt;br /&gt;         2. 打开 awstats.model.conf 文件修改各配置项目的值，这样在新建立的文件中只需要填写新添加的内容就可以了，其它的就不用每次设置了。( vi /etc/awstats/awstats.model.conf)；&lt;br /&gt;         3. 添加统计项目 cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.www.your-domain-name.com.conf&lt;br /&gt;         4. vi awstats.www.your-domain-name.com.conf；&lt;br /&gt;            LogFile = "/var/log/apache/access.log"&lt;br /&gt;            SiteDomain = "www.your-domain-name.com"&lt;br /&gt;            HostAliases = "your-domain-name.com"&lt;br /&gt;            存盘退出。&lt;br /&gt;   3. 在浏览器中测试。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-6396155390244149822?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/6396155390244149822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=6396155390244149822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6396155390244149822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6396155390244149822'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/08/awstats.html' title='Awstats 安装配置记录'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-6009054665068930065</id><published>2008-07-26T07:21:00.000-07:00</published><updated>2008-07-26T07:22:37.362-07:00</updated><title type='text'>Inouting Pen</title><content type='html'>&lt;a href="http://www.inouting.com" target="_blank"&gt;http://www.inouting.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A manufacture of pens from ShenZhen and HongKong China. Includes a history of pens, product line, history of ball point pens and pencils. Suppliers of promotional products including pen,ball pen,pen,metal pen,plastic pen,stationery and so on. Custom made pens and pencils.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-6009054665068930065?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/6009054665068930065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=6009054665068930065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6009054665068930065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6009054665068930065'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/inouting-pen.html' title='Inouting Pen'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-6618466249831565342</id><published>2008-07-23T22:20:00.000-07:00</published><updated>2008-07-23T22:21:15.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Awstats 安装 配置'/><title type='text'>Awstats 安装配置记录</title><content type='html'>&lt;span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry"&gt;&lt;div id="msgcns!8CE483F458A23E32!512" class="bvMsg"&gt;&lt;p&gt;作者：白东(Albert Ding) &lt;/p&gt;&lt;p&gt;更换新的服务器，于是重新配置了Awstats日志分析工具。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Awstats 是什么？&lt;/strong&gt;（首先简单介绍一下） &lt;/p&gt;&lt;p&gt;&lt;a href="http://awstats.sourceforge.net/" target="_blank"&gt;AWStats&lt;/a&gt; 是一个专门用来分析 Web 站点日志文件 (log) 的 GPL 授权软件，它同时也支持分析 FTP 站点及邮件服务器的日志文件，此软件的 Web 日志分析部分可以工作和分析 IIS 的 (W3C log format) 日志文件、Apache 的 (NCSA combined/XLF/ELF log format or common/CLF log format) 日志文件，以及其它大部分的 web, proxy, wap, streaming 服务器所产生的日志文件。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Awstats运行环境&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Linux/Unix/Windows 等 (注：本文讲述的是在Linux下的安装和配置) &lt;/li&gt;&lt;li&gt;Perl 版本需要 5.005_03 或更高版本&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Awstats 下载和解压&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;下载 &lt;ol&gt;&lt;li&gt;地址： &lt;a href="http://awstats.sourceforge.net/#DOWNLOAD"&gt;http://awstats.sourceforge.net/#DOWNLOAD&lt;/a&gt; &lt;/li&gt;&lt;li&gt;版本：建议下载最新版本 &lt;/li&gt;&lt;li&gt;wget &lt;a href="http://awstats.sourceforge.net/files/awstats-6.5.tgz"&gt;http://awstats.sourceforge.net/files/awstats-6.5.tgz&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;解压 &lt;ol&gt;&lt;li&gt;tar xvfz awstats-6.5.tgz &lt;/li&gt;&lt;li&gt;mv awstats-6.5 /usr/local/awstats (/usr/local/awstats 这个为安装的位置，也可以选择别的位置)&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Awstats 安装和配置&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;安装 &lt;ol&gt;&lt;li&gt;cd /usr/local/awstats/tools &lt;/li&gt;&lt;li&gt;perl awstats_configure.pl (运行awstats的安装配置文件) &lt;/li&gt;&lt;li&gt;按提示操作即可&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;配置 &lt;ol&gt;&lt;li&gt;复制 awstats.model.conf 到 /etc/awstats 目录 (cp awstats.model.conf /etc/awstats/)； &lt;/li&gt;&lt;li&gt;打开 awstats.model.conf 文件修改各配置项目的值，这样在新建立的文件中只需要填写新添加的内容就可以了，其它的就不用每次设置了。( vi /etc/awstats/awstats.model.conf)； &lt;/li&gt;&lt;li&gt;添加统计项目 cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.www.&lt;em&gt;your-domain-name&lt;/em&gt;.com.conf &lt;/li&gt;&lt;li&gt;vi awstats.www.&lt;em&gt;your-domain-name&lt;/em&gt;.com.conf；&lt;br /&gt;LogFile = "/var/log/apache/access.log"&lt;br /&gt;SiteDomain = "&lt;a href="http://www.your-domain-name.com/"&gt;www.&lt;em&gt;your-domain-name&lt;/em&gt;.com&lt;/a&gt;"&lt;br /&gt;HostAliases = "&lt;em&gt;your-domain-name&lt;/em&gt;.com"&lt;br /&gt;存盘退出。&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;在浏览器中测试。&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-6618466249831565342?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/6618466249831565342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=6618466249831565342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6618466249831565342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6618466249831565342'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/awstats.html' title='Awstats 安装配置记录'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-7117415433652082638</id><published>2008-07-23T22:19:00.000-07:00</published><updated>2008-07-23T22:20:37.830-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apache PHP Linux 安装 配置 freetype GD JPEG libpng multbyte charset Zend Optimizer'/><title type='text'>Apache/PHP在Linux安装配置过程记录(freetype, GD, JPEG, libpng, multbyte charset, Zend Optimizer)</title><content type='html'>&lt;span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry"&gt;&lt;div id="msgcns!8CE483F458A23E32!495" class="bvMsg"&gt;&lt;p&gt;作者：白东(Albert Ding) &lt;/p&gt;&lt;p&gt;由于更换了新的服务器，因此安装了新的版本。 &lt;/p&gt;&lt;ol&gt;&lt;li&gt;下载 &lt;a href="http://www.apache.org/" target="_blank"&gt;apache&lt;/a&gt; 、 &lt;a href="http://www.php.net/" target="_blank"&gt;php&lt;/a&gt; 、&lt;a href="http://www.freetype.org/" target="_blank"&gt;freetype&lt;/a&gt;、&lt;a href="http://www.libpng.org/" target="_blank"&gt;libpng&lt;/a&gt;、&lt;a href="http://www.boutell.com/gd/"&gt;GD2&lt;/a&gt;； &lt;/li&gt;&lt;li&gt;解压 (tar xvfz httpd.xxxx.tar.gz)，(tar xvfz php.xxxx.tar.gz)，(tar xvfz freetype-2.1.9.tar.gz)，(tar xvfz gd-2.0.26gif.tar.gz)； &lt;/li&gt;&lt;li&gt;安装Apache： &lt;ol&gt;&lt;li&gt;配置Apache (./configure --prefix=/usr/local/apache --enable-so)，注意这里的参数(--enable-so)为打开DSO(动态共享对象)以便日后升级模块； &lt;/li&gt;&lt;li&gt;编译和安装Apache( make / make install)； &lt;/li&gt;&lt;li&gt;将(/usr/local/apache/bin/apachectl)复制到 /etc/init.d/apache ，也可不做这步； &lt;/li&gt;&lt;li&gt;启动并测试Apache (/etc/init.d/apache start 或 /usr/local/apache/bin/apachectl start)； &lt;/li&gt;&lt;li&gt;停止Apache (/etc/init.d/apache stop 或 /usr/local/apache/bin/apachectl stop)；&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;安装 Freetype &lt;ol&gt;&lt;li&gt;cd freetype-2.1.9 &lt;/li&gt;&lt;li&gt;./configure (默认是安装到 /usr/local 目录中) &lt;/li&gt;&lt;li&gt;make &lt;/li&gt;&lt;li&gt;make install&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;安装 libpng &lt;ol&gt;&lt;li&gt;cd libpng-1.2.8-config &lt;/li&gt;&lt;li&gt;./configure &lt;/li&gt;&lt;li&gt;make &lt;/li&gt;&lt;li&gt;install&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;安装 GD 2 &lt;ol&gt;&lt;li&gt;cd gd-2.0.26gif &lt;/li&gt;&lt;li&gt;./configure &lt;/li&gt;&lt;li&gt;make &lt;/li&gt;&lt;li&gt;make install&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;安装PHP： &lt;ol&gt;&lt;li&gt;配置php ('./configure' &lt;span style="color:#ff0000;"&gt;'--with-apxs2=/usr/local/apache/bin/apxs'&lt;/span&gt; '--with-mysql' '--enable-calendar' '--enable-force-cgi-redirect' &lt;span style="color:#0000ff;"&gt;'--with-gd'&lt;/span&gt; '--enable-gd-imgstrttf' '--enable-gd-native-ttf' '--enable-inline-optimization' '--enable-magic-quotes' '--with-bz2' '--with-ftp' '--with-xml' '--with-zlib=yes' '--with-gd' &lt;span style="color:#009900;"&gt;'--enable-mbstring'&lt;/span&gt; '--with-png-dir=/usr' '--with-ttf' &lt;span style="color:#ff00ff;"&gt;'--with-freetype-dir=/usr/local'&lt;/span&gt; '--enable-ctype' '--enable-dbase' '--enable-ftp' '--with-ftp' '--with-gdbm' '--with-gettext' '--with-tiff-dir=/usr' '--with-jpeg-dir=/usr' '--with-freetype')。 &lt;ol&gt;&lt;li&gt;红色部分 如果之前Apache安装没有设定参数(--enable-so)那么这里就不可以使用这样的方法来配置。 &lt;/li&gt;&lt;li&gt;绿色部分是为了支持 multibyte charset (多字节字符) 的，打开这个使用 &lt;strong&gt;split&lt;/strong&gt; 函数对中文以及其他多字节字符才能完全正确。同时PHPMyAdmin也需要使用这个模块(如果不安装这个模块，PHPMyAdmin的首页会有红色问题提示：&lt;span style="color:#ff0000;"&gt;The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.&lt;/span&gt;因此，如果想要使用PHPMyAdmin来通过web管理MySQL，那么就需要把这个模块打开)。 &lt;/li&gt;&lt;li&gt;蓝色部分是启用GD库。 &lt;/li&gt;&lt;li&gt;紫色部分是打开gd支持 freetype的功能。&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;编译和安装PHP (make / make install)； &lt;/li&gt;&lt;li&gt;复制PHP配置文件 (cp php.ini-dist /usr/local/lib/php/php.ini)； &lt;/li&gt;&lt;li&gt;修改Apache(httpd.conf)文件，添加以下选项： &lt;ol&gt;&lt;li&gt;LoadModule php4_module libexec/libphp4.so (注：PHP可自动添加这个内容到httpd.conf，如果没有则手动添加)； &lt;/li&gt;&lt;li&gt;AddType application/x-httpd-php .php； &lt;/li&gt;&lt;li&gt;AddType application/x-httpd-php-source .phps (注：这项可不添加) &lt;/li&gt;&lt;li&gt;修改：DirectoryIndex index.html index.html.var 后添加：index.php (你也可以填写任何你想要的模块index文件)&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;编写phpinfo()文件以测试PHP是否安装成功； &lt;/li&gt;&lt;li&gt;安装 &lt;a href="http://www.zend.com/store/products/zend-optimizer.php" target="_blank"&gt;Zend Optimizer&lt;/a&gt; (2.5.7的版本需要注意的是，安装后使用phpinfo()页面中看看Configuration File (php.ini) Path 的路径中是否有已经修改过的php.ini或者link文件)；&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;启动Apache (/etc/init.d/apache start)；&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-7117415433652082638?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/7117415433652082638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=7117415433652082638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/7117415433652082638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/7117415433652082638'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/apachephplinuxfreetype-gd-jpeg-libpng.html' title='Apache/PHP在Linux安装配置过程记录(freetype, GD, JPEG, libpng, multbyte charset, Zend Optimizer)'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-576753774804247992</id><published>2008-07-23T22:18:00.001-07:00</published><updated>2008-07-23T22:18:57.424-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='version'/><category scheme='http://www.blogger.com/atom/ns#' term='meminfo'/><category scheme='http://www.blogger.com/atom/ns#' term='Proc 文件系统 cpuinfo'/><category scheme='http://www.blogger.com/atom/ns#' term='netstat'/><title type='text'>理解 Proc 文件系统(包括cpuinfo, meminfo, version, netstat等，以及进一步了解它们的方法)</title><content type='html'>作者：Sandeep Grover&lt;br /&gt;&lt;br /&gt;摘要&lt;br /&gt;Linux 内核提供了一种通过 /proc 文件系统，在运行时访问内核内部数据结构、改变内核设置的机制。尽管在各种硬件平台上的 Linux 系统的 /proc 文件系统的基本概念都是相同的，但本文只讨论基于 intel x86 架构的 Linux /proc 文件系统。&lt;br /&gt;&lt;br /&gt;[the proc filesystem]&lt;br /&gt;&lt;br /&gt;/proc --- 一个虚拟文件系统&lt;br /&gt;/proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互，获取 有关进程的有用信息，在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同，/proc 存在于内存之中而不是硬盘上。如果你察看文件 /proc/mounts (和 mount 命令一样列出所有已经加载的文件系统)，你会看到其中 一行是这样的：&lt;br /&gt;&lt;br /&gt;grep proc /proc/mounts&lt;br /&gt;/proc /proc proc rw 0 0&lt;br /&gt;&lt;br /&gt;/proc 由内核控制，没有承载 /proc 的设备。因为 /proc 主要存放由内核控制的状态信息，所以大部分这些信息的逻辑位置位于内核控制的内存。对 /proc 进行一次 'ls -l' 可以看到大部分文件都是 0 字节大的；不过察看这些文件的时候，确实可以看到一些信息。这怎么可能？这是因为 /proc 文件系统和其他常规的文件系统一样把自己注册到虚拟文件系统层 (VFS) 了。然而，直到当 VFS 调用它，请求文件、目录的 i-node 的时候，/proc 文件系统才根据内核中的信息建立相应的文件和目录。&lt;br /&gt;&lt;br /&gt;加载 proc 文件系统&lt;br /&gt;如果系统中还没有加载 proc 文件系统，可以通过如下命令加载 proc 文件系统：&lt;br /&gt;&lt;br /&gt;mount -t proc proc /proc&lt;br /&gt;&lt;br /&gt;上述命令将成功加载你的 proc 文件系统。更多细节请阅读 mount 命令的 man page。&lt;br /&gt;&lt;br /&gt;察看 /proc 的文件&lt;br /&gt;/proc 的文件可以用于访问有关内核的状态、计算机的属性、正在运行的进程的状态等信息。大部分 /proc 中的文件和目录提供系统物理环境最新的信息。尽管 /proc 中的文件是虚拟的，但它们仍可以使用任何文件编辑器或像'more', 'less'或 'cat'这样的程序来查看。当编辑程序试图打开一个虚拟文件时，这个文件就通过内核中的信息被凭空地 (on the fly) 创建了。这是一些我从我的系统中得到的一些有趣结果：&lt;br /&gt;&lt;br /&gt;$ ls -l /proc/cpuinfo&lt;br /&gt;-r--r--r-- 1 root root 0 Dec 25 11:01 /proc/cpuinfo&lt;br /&gt;&lt;br /&gt;$ file /proc/cpuinfo&lt;br /&gt;/proc/cpuinfo: empty&lt;br /&gt;&lt;br /&gt;$ cat /proc/cpuinfo&lt;br /&gt;&lt;br /&gt;processor       : 0&lt;br /&gt;vendor_id       : GenuineIntel&lt;br /&gt;cpu family      : 6&lt;br /&gt;model           : 8&lt;br /&gt;model name      : Pentium III (Coppermine)&lt;br /&gt;stepping        : 6&lt;br /&gt;cpu MHz         : 1000.119&lt;br /&gt;cache size      : 256 KB&lt;br /&gt;fdiv_bug        : no&lt;br /&gt;hlt_bug         : no&lt;br /&gt;sep_bug         : no&lt;br /&gt;f00f_bug        : no&lt;br /&gt;coma_bug        : no&lt;br /&gt;fpu             : yes&lt;br /&gt;fpu_exception   : yes&lt;br /&gt;cpuid level     : 2&lt;br /&gt;wp              : yes&lt;br /&gt;flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca&lt;br /&gt;cmov pat pse36 mmx fxsr xmm&lt;br /&gt;bogomips        : 1998.85&lt;br /&gt;&lt;br /&gt;processor       : 3&lt;br /&gt;vendor_id       : GenuineIntel&lt;br /&gt;cpu family      : 6&lt;br /&gt;model           : 8&lt;br /&gt;model name      : Pentium III (Coppermine)&lt;br /&gt;stepping        : 6&lt;br /&gt;cpu MHz         : 1000.119&lt;br /&gt;cache size      : 256 KB&lt;br /&gt;fdiv_bug        : no&lt;br /&gt;hlt_bug         : no&lt;br /&gt;sep_bug         : no&lt;br /&gt;f00f_bug        : no&lt;br /&gt;coma_bug        : no&lt;br /&gt;fpu             : yes&lt;br /&gt;fpu_exception   : yes&lt;br /&gt;cpuid level     : 2&lt;br /&gt;wp              : yes&lt;br /&gt;flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca&lt;br /&gt;cmov pat pse36 mmx fxsr xmm&lt;br /&gt;bogomips        : 1992.29&lt;br /&gt;&lt;br /&gt;这是一个从双 CPU 的系统中得到的结果，上述大部分的信息十分清楚地给出了这个系统的有用的硬件信息。有些 /proc 的文件是经过编码的，不同的工具可以被用来解释这些编码过的信息并输出成可读的形式。这样的工具包括：'top', 'ps', 'apm' 等。&lt;br /&gt;&lt;br /&gt;得到有用的系统/内核信息&lt;br /&gt;proc 文件系统可以被用于收集有用的关于系统和运行中的内核的信息。下面是一些重要的文件：&lt;br /&gt;&lt;br /&gt;/proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等)&lt;br /&gt;/proc/meminfo - 物理内存、交换空间等的信息&lt;br /&gt;/proc/mounts - 已加载的文件系统的列表&lt;br /&gt;/proc/devices - 可用设备的列表&lt;br /&gt;/proc/filesystems - 被支持的文件系统&lt;br /&gt;/proc/modules - 已加载的模块&lt;br /&gt;/proc/version - 内核版本&lt;br /&gt;/proc/cmdline - 系统启动时输入的内核命令行参数&lt;br /&gt;&lt;br /&gt;proc 中的文件远不止上面列出的这么多。想要进一步了解的读者可以对 /proc 的每一个文件都'more'一下或读参考文献[1]获取更多的有关 /proc 目录中的文件的信息。我建议使用'more'而不是'cat'，除非你知道这个文件很小，因为有些文件 (比如 kcore) 可能会非常长。 &lt;br /&gt;&lt;br /&gt;有关运行中的进程的信息&lt;br /&gt;/proc 文件系统可以用于获取运行中的进程的信息。在 /proc 中有一些编号的子目录。每个编号的目录对应一个进程 id (PID)。这样，每一个运行中的进程 /proc 中都有一个用它的 PID 命名的目录。这些子目录中包含可以提供有关进程的状态和环境的重要细节信息的文件。让我们试着查找一个运行中的进程。&lt;br /&gt;&lt;br /&gt;$ ps -aef | grep mozilla&lt;br /&gt;root 32558 32425 8  22:53 pts/1  00:01:23  /usr/bin/mozilla&lt;br /&gt;&lt;br /&gt;上述命令显示有一个正在运行的 mozilla 进程的 PID 是 32558。相对应的，/proc 中应该有一个名叫 32558 的目录&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$ ls -l /proc/32558&lt;br /&gt;total 0&lt;br /&gt;-r--r--r--    1 root  root            0 Dec 25 22:59 cmdline&lt;br /&gt;-r--r--r--    1 root  root            0 Dec 25 22:59 cpu&lt;br /&gt;lrwxrwxrwx    1 root  root            0 Dec 25 22:59 cwd -&gt; /proc/&lt;br /&gt;-r--------    1 root  root            0 Dec 25 22:59 environ&lt;br /&gt;lrwxrwxrwx    1 root  root            0 Dec 25 22:59 exe -&gt; /usr/bin/mozilla*&lt;br /&gt;dr-x------    2 root  root            0 Dec 25 22:59 fd/&lt;br /&gt;-r--r--r--    1 root  root            0 Dec 25 22:59 maps&lt;br /&gt;-rw-------    1 root  root            0 Dec 25 22:59 mem&lt;br /&gt;-r--r--r--    1 root  root            0 Dec 25 22:59 mounts&lt;br /&gt;lrwxrwxrwx    1 root  root            0 Dec 25 22:59 root -&gt; //&lt;br /&gt;-r--r--r--    1 root  root            0 Dec 25 22:59 stat&lt;br /&gt;-r--r--r--    1 root  root            0 Dec 25 22:59 statm&lt;br /&gt;-r--r--r--    1 root  root            0 Dec 25 22:59 status&lt;br /&gt;&lt;br /&gt;文件 "cmdline" 包含启动进程时调用的命令行。"envir" 进程的环境变两。 "status" 是进程的状态信息，包括启动进程的用户的用户ID (UID) 和组ID(GID) ，父进程ID (PPID)，还有进程当前的状态，比如"Sleelping"和"Running"。每个进程的目录都有几个符号链接，"cwd"是指向进程当前工作目录的符号链接，"exe"指向运行的进程的可执行程序，"root"指向被这个进程看作是根目录的目录 (通常是"/")。目录"fd"包含指向进程使用的文件描述符的链接。 "cpu"仅在运行 SMP 内核时出现，里面是按 CPU 划分的进程时间。&lt;br /&gt;&lt;br /&gt;/proc/self 是一个有趣的子目录，它使得程序可以方便地使用 /proc 查找本进程地信息。/proc/self 是一个链接到 /proc 中访问 /proc 的进程所对应的 PID 的目录的符号链接。&lt;br /&gt;&lt;br /&gt;通过 /proc 与内核交互&lt;br /&gt;上面讨论的大部分 /proc 的文件是只读的。而实际上 /proc 文件系统通过 /proc 中可读写的文件提供了对内核的交互机制。写这些文件可以改变内核的状态，因而要慎重改动这些文件。/proc/sys 目录存放所有可读写的文件的目录，可以被用于改变内核行为。&lt;br /&gt;&lt;br /&gt;/proc/sys/kernel - 这个目录包含反通用内核行为的信息。 /proc/sys/kernel/{domainname, hostname} 存放着机器/网络的域名和主机名。这些文件可以用于修改这些名字。&lt;br /&gt;&lt;br /&gt;$ hostname&lt;br /&gt;machinename.domainname.com&lt;br /&gt;$ cat /proc/sys/kernel/domainname&lt;br /&gt;domainname.com&lt;br /&gt;$ cat /proc/sys/kernel/hostname&lt;br /&gt;machinename&lt;br /&gt;$ echo "new-machinename"  &gt; /proc/sys/kernel/hostname&lt;br /&gt;$ hostname&lt;br /&gt;new-machinename.domainname.com&lt;br /&gt;&lt;br /&gt;这样，通过修改 /proc 文件系统中的文件，我们可以修改主机名。很多其他可配置的文件存在于 /proc/sys/kernel/。这里不可能列出所有这些文件，读者可以自己去这个目录查看以得到更多细节信息。&lt;br /&gt;另一个可配置的目录是 /proc/sys/net。这个目录中的文件可以用于修改机器/网络的网络属性。比如，简单修改一个文件，你可以在网络上瘾藏匿的计算机。&lt;br /&gt;&lt;br /&gt;$ echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;&lt;br /&gt;这将在网络上瘾藏你的机器，因为它不响应 icmp_echo。主机将不会响应其他主机发出的 ping 查询。&lt;br /&gt;&lt;br /&gt;$ ping machinename.domainname.com&lt;br /&gt;no answer from machinename.domainname.com&lt;br /&gt;&lt;br /&gt;要改回缺省设置，只要&lt;br /&gt;&lt;br /&gt;$ echo 0 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;&lt;br /&gt;/proc/sys 下还有许多其它可以用于改变内核属性。读者可以通过参考文献 [1], [2] 获取更多信息。&lt;br /&gt;&lt;br /&gt;结论&lt;br /&gt;/proc 文件系统提供了一个基于文件的 Linux 内部接口。它可以用于确定系统的各种不同设备和进程的状态。对他们进行配置。因而，理解和应用有关这个文件系统的知识是理解你的 Linux 系统的关键。&lt;br /&gt;&lt;br /&gt;参考文献&lt;br /&gt;&lt;br /&gt;[1] 有关Linux proc 文件系统的文档位于: /usr/src/linux/Documentation/filesystems/proc.txt&lt;br /&gt;&lt;br /&gt;[2] RedHat Guide: The /proc File System: http://www.redhat.com/docs/manuals/linux/RHL-7.3-Manual/ref-guide/ch-proc.html&lt;br /&gt;&lt;br /&gt;关于作者&lt;br /&gt;&lt;br /&gt;Sandeep Grover 为印第安纳州的 Magma Design Automation 工作, -- 这是一个快速成长的 EDA (电子设计自动化) 公司。在他的业余时间，他探索 Linux 的内部机制，并希望有一天能够对内核做出自己的贡献。&lt;br /&gt;&lt;br /&gt;白东注：之前的一篇文章《Linux中如何关掉ping服务？》中的方法和这篇文章中的方法比，就显的比较低级了。这个方法是比较好的！(2005-03-24)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-576753774804247992?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/576753774804247992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=576753774804247992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/576753774804247992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/576753774804247992'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/proc-cpuinfo-meminfo-version-netstat.html' title='理解 Proc 文件系统(包括cpuinfo, meminfo, version, netstat等，以及进一步了解它们的方法)'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-2100728575936473650</id><published>2008-07-23T22:15:00.000-07:00</published><updated>2008-07-23T22:18:11.970-07:00</updated><title type='text'>Apache配置文件(httpd.conf)中文说明</title><content type='html'>&lt;span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry"&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 基于 NCSA 服务的配置文件。 #&lt;br /&gt;#这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。&lt;br /&gt;#&lt;br /&gt;#不要只是简单的阅读这些指令信息而不去理解它。&lt;br /&gt;#这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。&lt;br /&gt;#&lt;br /&gt;#这些配置指令被分为下面三个部分：&lt;br /&gt;#1. 控制整个Apache服务器行为的部分（即全局环境变量）&lt;br /&gt;#2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数&lt;br /&gt;#3. 虚拟主机的设置参数&lt;br /&gt;#&lt;br /&gt;#配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”），&lt;br /&gt;#服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot&lt;br /&gt;#的值附加在文件名的前面，例如，对“logs/foo.log"，如果ServerRoot的值&lt;br /&gt;#为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log”&lt;br /&gt;#&lt;br /&gt;##第一区：全局环境参数&lt;br /&gt;#&lt;br /&gt;#这里设置的参数将影响整个Apache服务器的行为；&lt;br /&gt;#例如Apache能够处理的并发请求的数量等。&lt;br /&gt;#&lt;br /&gt;#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。&lt;br /&gt;#&lt;br /&gt;#注意！如果你想要将它指定为NFS或其它网络上的位置，&lt;br /&gt;#请一定要去阅读与LockFile有关的文档（可能在&lt;br /&gt;#&lt;/span&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;)。&lt;br /&gt;#这将会使你自己也能解决很多问题。&lt;br /&gt;#&lt;br /&gt;#路径的结尾不要添加斜线。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ServerRoot "/usr/loacl/apache2" &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#串行访问的锁文件必须保存在本地磁盘上&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#LockFile logs/accept.lock&lt;/span&gt;&lt;br /&gt;&lt;/ifmodule&gt;&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#ScoreBoardFile:用来保存内部服务进程信息的文件。&lt;br /&gt;#如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中，&lt;br /&gt;#并且它不能被第三方软件所使用。&lt;br /&gt;#如果指定了，要确保不能使用两个Apache使用同一个记分板文件，&lt;br /&gt;#这个记分板文件必须保存在本地磁盘上。&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#ScoreBoardFile logs/apache_runtime_status&lt;/span&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt; &lt;/ifmodule&gt;&lt;/ifmodule&gt;&lt;/ifmodule&gt;&lt;/ifmodule&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#PidFile:记录服务器启动进程号的文件。&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;PidFile logs/httpd.pid&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#Timeout:接收和发送前超时秒数&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;Timeout 300 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#KeepAlive:是否允许稳固的连接（每个连接有多个请求），&lt;br /&gt;#设为"Off"则停用。&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;KeepAlive On &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数，&lt;br /&gt;#设为0表示无限制接入。&lt;br /&gt;#我们推荐你将其设为一个较大的值，以便提高性能&lt;br /&gt;&lt;/span&gt;MaxKeepAliveRequests 100 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;KeepAliveTimeout 15 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;##&lt;br /&gt;##Server-Pool大小设定（针对MPM的）&lt;br /&gt;##&lt;br /&gt;# prefork MPM&lt;br /&gt;# StartServers:启动时服务器启动的进程数&lt;br /&gt;# MinSpareServers:保有的备用进程的最小数目&lt;br /&gt;# MaxSpareServers:保有的备用进程的最大数目&lt;br /&gt;# MaxClients:服务器允许启动的最大进程数&lt;br /&gt;# MaxRequestsPerChild:一个服务进程允许的最大请求数&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;StartServers 5&lt;br /&gt;MinSpareServers 5&lt;br /&gt;MaxSpareServers 10&lt;br /&gt;MaxClients 150&lt;br /&gt;MaxRequestPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# worker MPM&lt;br /&gt;# StartServers:服务器启动时的服务进程数目&lt;br /&gt;# MaxClients:允许同时连接的最大用户数目&lt;br /&gt;# MinSpareThreads:保有的最小工作线程数目&lt;br /&gt;# MaxSpareThreads:允许保有的最大工作线程数目&lt;br /&gt;# ThreadsPerChild:每个服务进程中的工作线程常数&lt;br /&gt;# MaxRequestsPerChild:服务进程中允许的最大请求数目&lt;/span&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;StartServers 2&lt;br /&gt;MaxClients 150&lt;br /&gt;MinSpareThreads 25&lt;br /&gt;MaxSpareThreads 75&lt;br /&gt;ThreadsPerChild 25&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# perchild MPM&lt;br /&gt;# NumServers:服务进程数量&lt;br /&gt;# StartThreads:每个服务进程中的起始线程数量&lt;br /&gt;# MinSpareThreads:保有的最小线程数量&lt;br /&gt;# MaxSpareThreads:保有的最大线程数量&lt;br /&gt;# MaxThreadsPerChild:每个服务进程允许的最大线程数&lt;br /&gt;# MaxRequestsPerChild:每个服务进程允许连接的最大数量&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;NumServers 5&lt;br /&gt;StartThreads 5&lt;br /&gt;MinSpareThreads 5&lt;br /&gt;MaxSpareThreads 10&lt;br /&gt;MaxThreadsPerChild 20&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# WinNT MPM&lt;br /&gt;# ThreadsPerChild:服务进程中工作线程常数&lt;br /&gt;# MaxRequestsPerChild:服务进程允许的最大请求数&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;ThreadsPerChild 250&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# BeOS MPM&lt;br /&gt;# StartThreads:服务器启动时启动的线程数&lt;br /&gt;# MaxClients:可以启动的最大线程数（一个线程等于一个用户）&lt;br /&gt;# MaxRequestsPerThread:每个线程允许的最大请求数&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;StartThreads 10&lt;br /&gt;MaxClients 50&lt;br /&gt;MaxRequestsPerThread 10000&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# NetWare MPM&lt;br /&gt;# ThreadStachSize:为每个工作线程分配的堆栈尺寸&lt;br /&gt;# StartThreads:服务器启动时启动的线程数&lt;br /&gt;# MinSpareThreads:用于处理实发请求的空闲线程数&lt;br /&gt;# MaxSpareThreads:空闲线程的最大数量&lt;br /&gt;# MaxThreads:在同一时间活动的最大线程数&lt;br /&gt;# MaxRequestPerChild:一个线程服务请求的最大数量，&lt;br /&gt;# 推荐将其设置为0，以实现无限制的接入&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;ThreadStackSize 65536&lt;br /&gt;StartThreads 250&lt;br /&gt;MinSpareThreads 25&lt;br /&gt;MaxSpareThreads 250&lt;br /&gt;MaxThreads 1000&lt;br /&gt;MaxRequestPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# OS/2 MPM&lt;br /&gt;# StartServers:启动的服务进程数量&lt;br /&gt;# MinSpareThreads:每个进程允许的最小空闲线程&lt;br /&gt;# MaxSpareThreads:每个进程允许的最大空闲线程&lt;br /&gt;# MaxRequestsPerChild:每个服务进程允许的最大连接数&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;StartServers 2&lt;br /&gt;MinSpareThreads 5&lt;br /&gt;MaxSpareThreads 10&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Listen:允许你绑定Apache服务到指定的IP地址和端口上，以取代默认值&lt;br /&gt;# 参见&lt;virtualhost&gt;指令&lt;br /&gt;# 使用如下命令使Apache只在指定的IP地址上监听，&lt;br /&gt;# 以防止它在IP地址0.0.0.0上监听&lt;br /&gt;#&lt;br /&gt;# Listen 12.34.56.78:80&lt;br /&gt;&lt;/virtualhost&gt;&lt;/span&gt;Listen 80 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 动态共享支持（DSO）&lt;br /&gt;#&lt;br /&gt;# 为了能够使用那些以DSO模式编译的模块中的函数，你必须有相应的“LoadModule”行，&lt;br /&gt;# 因此，在这里包含了这些指令，以便能在使用它之前激活。&lt;br /&gt;# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)&lt;br /&gt;#&lt;br /&gt;# 示例：&lt;br /&gt;# LoadModule foo_module modules/mod_foo.so&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# ExtendedStatus：当调用“server-status”时，控制Apache是产生“全”状态&lt;br /&gt;# 信息（ExtendedStatus On），还是产生基本信息（ExtendedStatus Off）。&lt;br /&gt;# 默认为off&lt;br /&gt;#&lt;br /&gt;# ExtendedStatus On&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;br /&gt;### 第二区：“主”服务配置&lt;br /&gt;#&lt;br /&gt;# 这一区建立被 “主” 服务器用的指令值,以回应那些不被 &lt;virtualhost&gt;&lt;br /&gt;# 定义处理的任何请求。&lt;br /&gt;# 这些数值也提供默认值给后面定义的&lt;virtualhost&gt;容器。&lt;br /&gt;# 如果&lt;virtualhost&gt;中有定义，那么这里定义的指令值将被&lt;br /&gt;# &lt;virtualhost&gt;中的定义所覆盖。&lt;br /&gt;#&lt;br /&gt;&lt;/virtualhost&gt;&lt;/virtualhost&gt;&lt;/virtualhost&gt;&lt;/virtualhost&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 如果你想使httpd以另外的用户或组来运行，你必须在开始时以root方式启动&lt;br /&gt;# 然后再将它切换为你想要使用的用户或组。&lt;br /&gt;#&lt;br /&gt;# User/Group:运行httpd的用户和组&lt;br /&gt;# 在SCO (ODT3)上使用“User nouser”和“Group nogroup”&lt;br /&gt;# 在HPUX上，你可能不能以nobody身份使用共享内存，建议创建一个www用户。&lt;br /&gt;# 注意一些核心（kernel）在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET)，&lt;br /&gt;#节在这些系统上不要使用“Group #-1”。&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;User nobody&lt;br /&gt;Group #-1&lt;br /&gt;&lt;/ifmodule&gt;&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ServerAdmin:你的邮件地址，当发生问题时Apache将向你发出邮件。&lt;br /&gt;# 作为一个出错文档，这个地址显示在server-generated页上，&lt;br /&gt;# 例如：&lt;/span&gt;&lt;a href="mailto:admin@your-domain.com"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;admin@your-domain.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;&lt;/span&gt;ServerAdmin [email]kreny@sina.com[/email] &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ServerName指定Apache用于识别自身的名字和端口号。&lt;br /&gt;# 通常这个值是自动指定的，但是我们推荐你显式的指定它以防止启动时出错&lt;br /&gt;#&lt;br /&gt;# 如果你为你的主机指定了一个无效的DNS名，server-generated重定向将不能工作。&lt;br /&gt;# 参见UseCanonicalName指令&lt;br /&gt;#&lt;br /&gt;# 如果你的主机没有注册DNS名，在这里键入它的IP地址&lt;br /&gt;# 无论如何，你必须使用它的IP地址来提供服务，&lt;br /&gt;# 这里使用一种容易理解的方式重定向服务&lt;br /&gt;ServerName &lt;/span&gt;&lt;a href="http://www.dalouis.com/"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://www.dalouis.com:80&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。&lt;br /&gt;# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。&lt;br /&gt;# 当设置为“On”,Apache会使用ServerName指令的值。&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;UseCanonicalName Off &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# DocumentRoot:你的文档的根目录。默认情况下，所有的请求从这个目录进行应答。&lt;br /&gt;# 但是可以使用符号链接和别名来指向到其他的位置。&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;DocumentRoot "/home/redhat/public_html" &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Apache可以存取的每个目录都可以配置存取权限（包括它的子目录）。&lt;br /&gt;#&lt;br /&gt;# 首先，我们配置一个高限制的特征。&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 这将禁止访问文件系统所在的目录，并添加你希望允许访问的目录块。&lt;br /&gt;# 如下所示&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;directory&gt;&lt;br /&gt;Order Deny,Allow&lt;br /&gt;Deny from all&lt;br /&gt;&lt;/directory&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。&lt;br /&gt;# - 所以，如果Apache没有象你所期待的那样工作的话,&lt;br /&gt;# 请检查你是否在下面明确的指定它可用。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 这将改变到你设置的DocumentRoot&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;directory&gt; &lt;/directory&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Options：这个指令的值可以是“None”，“All”，或者下列选项的任意组合：&lt;br /&gt;# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews&lt;br /&gt;#&lt;br /&gt;# 注意，“MultiViews”必须被显式的指定，“Options All”不能为你提供这个特性。&lt;br /&gt;#&lt;br /&gt;# 这个指令既复杂又重要，请参见&lt;br /&gt;#&lt;/span&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/core.html#optioins&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;Options FollowSymLinks &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# AllowOverride控制那些被放置在.htaccess文件中的指令。&lt;br /&gt;# 它可以是“All”，“None”，或者下列指令的组合：&lt;br /&gt;# Options FileInfo AuthConfig Limit&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;AllowOverride None&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 控制谁可以获得服务。&lt;br /&gt;#&lt;br /&gt;&lt;/span&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;UserDir public_html &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 为防止在UserDir指令上的漏洞，对root用户设置&lt;br /&gt;# 象“./”这样的UserDir是非常有用的。&lt;br /&gt;# 如果你使用Apache 1.3或以上版本，我们强烈建议你&lt;br /&gt;# 在你的服务器配置文件中包含下面的行&lt;/span&gt; &lt;/p&gt;&lt;p&gt;UserDir disabled root &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例：&lt;br /&gt;#&lt;br /&gt;# &lt;directory&gt;&lt;br /&gt;# AllowOverride FileInfo AuthConfig Limit Indexes&lt;br /&gt;# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec&lt;br /&gt;# &lt;limit&gt;&lt;br /&gt;# Order allow,deny&lt;br /&gt;# Allow from all&lt;br /&gt;# &lt;/limit&gt;&lt;br /&gt;# &lt;limitexcept&gt;&lt;br /&gt;# Order deny,allow&lt;br /&gt;# Deny from all&lt;br /&gt;# &lt;/limitexcept&gt;&lt;br /&gt;# &lt;/directory&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# DirectoryIndex:定义请求是一个目录时，Apache向用户提供服务的文件名&lt;br /&gt;#&lt;br /&gt;# index.html.var文件（一个类型映象文件）用于提供一个文档处理列表，&lt;br /&gt;# 出于同样的目的，也可以使用MultiViews选项，但是它会非常慢。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;DirectoryIndex index.php index.html index.html.var &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。&lt;br /&gt;# 参见AllowOverride指令。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;AccessFileName .htaccess &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 下面的行防止.htaccess和.htpasswd文件被Web客户查看。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;files&gt;&lt;br /&gt;Order allow,deny&lt;br /&gt;Deny from all&lt;br /&gt;&lt;/files&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Typeconfig:定义在哪里查询mime.types文件。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;TypeConfig conf/mime.types &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。&lt;br /&gt;# 如果你的服务主要包含text或HTML文档，“text/plain”是一个好的选择；&lt;br /&gt;# 如果大多是二进制文档，诸如软件或图像，你应使用&lt;br /&gt;# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;DefaultType text/plain &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索（hints），&lt;br /&gt;# 这个MIMEMagicFile指令定义hints定义所在的文件。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;MIMEMagicFile conf/magic&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# HostnameLookups：指定记录用户端的名字还是IP地址，例如，本指令为on时&lt;br /&gt;# 记录主机名，如&lt;a href="http://www.blogger.com/post-create.do"&gt;&lt;/a&gt;&lt;a href="http://www.apache.org/"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://www.apache.org&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;；为off时记录IP地址，204.62.129.132。" target="_blank"&gt;www.apache.org；为off时记录IP地址，204.62.129.132。&lt;br /&gt;# 默认值为off，这要比设为on好得多，因为如果设为on则每个用户端请求都将会&lt;br /&gt;# 至少造成对 nameserver 进行一次查询。&lt;br /&gt;#&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;HostnameLookups Off &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# EnableMMAP:控制是否进行内存转储（如果操作系统支持的话）。&lt;br /&gt;# 默认为on，如果你的服务器安装在网络文件系统上（NFS），请关闭它。&lt;br /&gt;# 在一些系统上，关闭它会提升系统性能（与文件系统类型无关）；&lt;br /&gt;# 具体情况请参阅&lt;a href="http://www.blogger.com/post-create.do"&gt;&lt;/a&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;" target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...html#enablemmap&lt;br /&gt;#&lt;br /&gt;# EnableMMAP off&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# EnableSendfile:控制是否使用sendfile kernel支持发送文件&lt;br /&gt;# （如果操作系统支持的话）。默认为on，如果你的服务器安装在网络文件系统&lt;br /&gt;# （NFS）上，请你关闭它。&lt;br /&gt;# 参见&lt;a href="http://www.blogger.com/post-create.do"&gt;&lt;/a&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;" target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...#enablesendfile&lt;br /&gt;#&lt;br /&gt;# EnableSendfile off&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ErrorLog:错误日志文件定位。&lt;br /&gt;# 如果你没有在&lt;virtualhost&gt;内定义ErrorLog指令，这个虚拟主机的错误信息&lt;br /&gt;# 将记录在这里。如果你在那儿定义了ErrorLog，这些错误信息将记录在你所&lt;br /&gt;# 定义的文件里，而不是这儿定义的文件。&lt;br /&gt;#&lt;/virtualhost&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ErrorLog logs/error_log &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# LogLevel:控制记录在错误日志文件中的日志信息数量。&lt;br /&gt;# 可能的值包括：debug，info，notice，warn，error，crit，alert，emerg。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;LogLevel warn &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 下面的指令为CustomLog指令定义格式别名。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined&lt;br /&gt;LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common&lt;br /&gt;LogFormat "%{Referer}i -&gt; %U" referer&lt;br /&gt;LogFormat "%{User-agent}i" agent &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 你需要安装了mod_logio.c模块才能使用%I和%O。&lt;br /&gt;# LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" &lt;/span&gt;combinedio &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 指定接入日志文件的定位和格式（一般日志格式）。&lt;br /&gt;# 如果你没有在&lt;virtualhost&gt;内定义这个指令，传输信息将记录在这里，&lt;br /&gt;# 如果你定义了这个指令，则记录在你指定的位置，而不是这儿定义的位置。&lt;br /&gt;#&lt;/virtualhost&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;CustomLog logs/access_log common &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 如果你想要记录agent和referer信息，可以使用下面的指令&lt;br /&gt;#&lt;br /&gt;# CustomLog logs/referer_log referer&lt;br /&gt;# CustomLog logs/agent_log agent&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 如果你想要使用一个文件记录access，agent和referer信息，&lt;br /&gt;# 你可以如下定义这个指令：&lt;br /&gt;#&lt;br /&gt;# CustomLog logs/access_log combined&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ServerTokens&lt;br /&gt;# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”，&lt;br /&gt;# 这表示在回应头中将包含模块中的操作系统类型和编译信息。&lt;br /&gt;# 可以设为列各值中的一个：&lt;br /&gt;# Full | OS | Minor | Minimal | Major | Prod&lt;br /&gt;# Full传达的信息最多，而Prod最少。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ServerTokens Full &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中&lt;br /&gt;# （内部错误文档，FTP目录列表，mod_status和mod_info输出等等，除了CGI错误&lt;br /&gt;# 或自定义的错误文档以外）。&lt;br /&gt;# 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。&lt;br /&gt;# 可以为如下值：On | Off | EMail&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ServerSignature On &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Aliases:在这时添加你需要的别名，格式如下：&lt;br /&gt;# Alias 别名 真实名&lt;br /&gt;#&lt;br /&gt;# 注意，如果你在别名的未尾包含了“/”，那么在URL中也需要包含“/”。&lt;br /&gt;# 因此，“/icons”不是这个示例中的别名。&lt;br /&gt;# 如果别名中以“/”结尾，那么真实名也必须以“/”结尾，&lt;br /&gt;# 如果别名中省略了结尾的“/”，那么真实名也必须省略。&lt;br /&gt;#&lt;br /&gt;# 我们使用别名“/icons/”来表示FancyIndexed目录列表，如果你不使用、&lt;br /&gt;# FancyIndexing，你可以注释掉它。&lt;br /&gt;#&lt;br /&gt;# Alias /icons/ "/usr/local/apache2/icons/"&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# &lt;directory&gt;&lt;br /&gt;# Options Indexes MultiViews&lt;br /&gt;# AllowOverride None&lt;br /&gt;# Order allow,deny&lt;br /&gt;## Allow from all&lt;br /&gt;# &lt;/directory&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置，&lt;br /&gt;# 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话，&lt;br /&gt;# 你可以注释掉它。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;Alias /manual "/usr/loacl/apache2/manual"&lt;br /&gt;&lt;directory&gt;&lt;br /&gt;Options Indexes FollowSymLinks MultiViews IncludesNoExec&lt;br /&gt;AddOutputFilter Includes html&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ScriptAlias:指定包含服务脚本的目录。&lt;br /&gt;# ScriptAliases 本质上与Aliases一样，除了这里的文档在请求时做为程序处理处理以外。&lt;br /&gt;# 尾部的“/”规则与Alias一样&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/" &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 这里是添加php 4支持的指令&lt;/span&gt;&lt;br /&gt;AddType application/x-httpd-php .php&lt;br /&gt;LoadModule php4_module modules/libphp4.so&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 添加mod_cgid.c设置，mod_cgid提供使用cgid进行通讯的UNIX套接字的&lt;br /&gt;# 脚本接口路径。&lt;br /&gt;#&lt;br /&gt;# Scriptsock logs/cgisock&lt;/span&gt;&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录，&lt;br /&gt;# 如果你配置了的话。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;directory&gt;&lt;br /&gt;AllowOverride None&lt;br /&gt;Options None&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Redirect允许你告诉客户端使用存在于服务器名字空间中的文档，&lt;br /&gt;# 而不是现在的，这帮助客户定位那些改变了位置的文档。&lt;br /&gt;# 例如：&lt;br /&gt;# Redirect permanent /foo &lt;/span&gt;&lt;a href="http://www.example.com/bar"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://www.example.com/bar&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 控制server-generated目录列表显示的指令&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# IndexOptions:控制server-generated目录列表显示特征。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;IndexOptions FancyIndexing VersionSort &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示，&lt;br /&gt;# 只适用于FancyIndexed指令&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip &lt;/p&gt;&lt;p&gt;AddIconByType (TXT,/icons/text.gif) text&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 基于 NCSA 服务的配置文件。&lt;br /&gt;#&lt;br /&gt;#这是Apache服务器主要配置文件。&lt;br /&gt;#它包含服务器的影响服务器运行的配置指令。&lt;br /&gt;#参见&lt;&lt;/span&gt;&lt;a href="http://spaces.msn.com/mmm2005-01-24_16.34/%3Ca"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;URL:&lt;/span&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt; href="&lt;/span&gt;&lt;a href="http://httpd.ache.org/doc-2.0/"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.ache.org/doc-2.0/&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;" target="_blank"&gt;http://httpd.ache.org/doc-2.0/&gt;以取得关于这些指令的详细信息&lt;br /&gt;#&lt;br /&gt;#不要只是简单的阅读这些指令信息而不去理解它。&lt;br /&gt;#这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。&lt;br /&gt;#&lt;br /&gt;#这些配置指令被分为下面三个部分：&lt;br /&gt;#1. 控制整个Apache服务器行为的部分（即全局环境变量）&lt;br /&gt;#2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数&lt;br /&gt;#3. 虚拟主机的设置参数&lt;br /&gt;#&lt;br /&gt;#配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”），&lt;br /&gt;#服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot&lt;br /&gt;#的值附加在文件名的前面，例如，对“logs/foo.log"，如果ServerRoot的值&lt;br /&gt;#为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log”&lt;br /&gt;#&lt;br /&gt;##第一区：全局环境参数&lt;br /&gt;#&lt;br /&gt;#这里设置的参数将影响整个Apache服务器的行为；&lt;br /&gt;#例如Apache能够处理的并发请求的数量等。&lt;br /&gt;#&lt;br /&gt;#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。&lt;br /&gt;#&lt;br /&gt;#注意！如果你想要将它指定为NFS或其它网络上的位置，&lt;br /&gt;#请一定要去阅读与LockFile有关的文档（可能在&lt;br /&gt;#&lt;/span&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;)。&lt;br /&gt;#这将会使你自己也能解决很多问题。&lt;br /&gt;#&lt;br /&gt;#路径的结尾不要添加斜线。&lt;br /&gt;#&lt;/span&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;ServerRoot "/usr/loacl/apache2" &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#串行访问的锁文件必须保存在本地磁盘上&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#LockFile logs/accept.lock&lt;/span&gt;&lt;br /&gt;&lt;/ifmodule&gt;&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#ScoreBoardFile:用来保存内部服务进程信息的文件。&lt;br /&gt;#如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中，&lt;br /&gt;#并且它不能被第三方软件所使用。&lt;br /&gt;#如果指定了，要确保不能使用两个Apache使用同一个记分板文件，&lt;br /&gt;#这个记分板文件必须保存在本地磁盘上。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#ScoreBoardFile logs/apache_runtime_status&lt;/span&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt; &lt;/ifmodule&gt;&lt;/ifmodule&gt;&lt;/ifmodule&gt;&lt;/ifmodule&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#PidFile:记录服务器启动进程号的文件。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;PidFile logs/httpd.pid&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#Timeout:接收和发送前超时秒数&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;Timeout 300 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#KeepAlive:是否允许稳固的连接（每个连接有多个请求），&lt;br /&gt;#设为"Off"则停用。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;KeepAlive On &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数，&lt;br /&gt;#设为0表示无限制接入。&lt;br /&gt;#我们推荐你将其设为一个较大的值，以便提高性能&lt;/span&gt; &lt;/p&gt;&lt;p&gt;MaxKeepAliveRequests 100 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;KeepAliveTimeout 15 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;##&lt;br /&gt;##Server-Pool大小设定（针对MPM的）&lt;br /&gt;##&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# prefork MPM&lt;br /&gt;# StartServers:启动时服务器启动的进程数&lt;br /&gt;# MinSpareServers:保有的备用进程的最小数目&lt;br /&gt;# MaxSpareServers:保有的备用进程的最大数目&lt;br /&gt;# MaxClients:服务器允许启动的最大进程数&lt;br /&gt;# MaxRequestsPerChild:一个服务进程允许的最大请求数&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;StartServers 5&lt;br /&gt;MinSpareServers 5&lt;br /&gt;MaxSpareServers 10&lt;br /&gt;MaxClients 150&lt;br /&gt;MaxRequestPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 51);"&gt;# worker MPM&lt;br /&gt;# StartServers:服务器启动时的服务进程数目&lt;br /&gt;# MaxClients:允许同时连接的最大用户数目&lt;br /&gt;# MinSpareThreads:保有的最小工作线程数目&lt;br /&gt;# MaxSpareThreads:允许保有的最大工作线程数目&lt;br /&gt;# ThreadsPerChild:每个服务进程中的工作线程常数&lt;br /&gt;# MaxRequestsPerChild:服务进程中允许的最大请求数目&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;StartServers 2&lt;br /&gt;MaxClients 150&lt;br /&gt;MinSpareThreads 25&lt;br /&gt;MaxSpareThreads 75&lt;br /&gt;ThreadsPerChild 25&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# perchild MPM&lt;br /&gt;# NumServers:服务进程数量&lt;br /&gt;# StartThreads:每个服务进程中的起始线程数量&lt;br /&gt;# MinSpareThreads:保有的最小线程数量&lt;br /&gt;# MaxSpareThreads:保有的最大线程数量&lt;br /&gt;# MaxThreadsPerChild:每个服务进程允许的最大线程数&lt;br /&gt;# MaxRequestsPerChild:每个服务进程允许连接的最大数量&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;NumServers 5&lt;br /&gt;StartThreads 5&lt;br /&gt;MinSpareThreads 5&lt;br /&gt;MaxSpareThreads 10&lt;br /&gt;MaxThreadsPerChild 20&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# WinNT MPM&lt;br /&gt;# ThreadsPerChild:服务进程中工作线程常数&lt;br /&gt;# MaxRequestsPerChild:服务进程允许的最大请求数&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;ThreadsPerChild 250&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# BeOS MPM&lt;br /&gt;# StartThreads:服务器启动时启动的线程数&lt;br /&gt;# MaxClients:可以启动的最大线程数（一个线程等于一个用户）&lt;br /&gt;# MaxRequestsPerThread:每个线程允许的最大请求数&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;StartThreads 10&lt;br /&gt;MaxClients 50&lt;br /&gt;MaxRequestsPerThread 10000&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# NetWare MPM&lt;br /&gt;# ThreadStachSize:为每个工作线程分配的堆栈尺寸&lt;br /&gt;# StartThreads:服务器启动时启动的线程数&lt;br /&gt;# MinSpareThreads:用于处理实发请求的空闲线程数&lt;br /&gt;# MaxSpareThreads:空闲线程的最大数量&lt;br /&gt;# MaxThreads:在同一时间活动的最大线程数&lt;br /&gt;# MaxRequestPerChild:一个线程服务请求的最大数量，&lt;br /&gt;# 推荐将其设置为0，以实现无限制的接入&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;ThreadStackSize 65536&lt;br /&gt;StartThreads 250&lt;br /&gt;MinSpareThreads 25&lt;br /&gt;MaxSpareThreads 250&lt;br /&gt;MaxThreads 1000&lt;br /&gt;MaxRequestPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# OS/2 MPM&lt;br /&gt;# StartServers:启动的服务进程数量&lt;br /&gt;# MinSpareThreads:每个进程允许的最小空闲线程&lt;br /&gt;# MaxSpareThreads:每个进程允许的最大空闲线程&lt;br /&gt;# MaxRequestsPerChild:每个服务进程允许的最大连接数&lt;br /&gt;&lt;/span&gt;&lt;ifmodule&gt;&lt;br /&gt;StartServers 2&lt;br /&gt;MinSpareThreads 5&lt;br /&gt;MaxSpareThreads 10&lt;br /&gt;MaxRequestsPerChild 0&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Listen:允许你绑定Apache服务到指定的IP地址和端口上，以取代默认值&lt;br /&gt;# 参见&lt;virtualhost&gt;指令&lt;br /&gt;# 使用如下命令使Apache只在指定的IP地址上监听，&lt;br /&gt;# 以防止它在IP地址0.0.0.0上监听&lt;br /&gt;#&lt;br /&gt;# Listen 12.34.56.78:80&lt;/virtualhost&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;Listen 80 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 动态共享支持（DSO）&lt;br /&gt;#&lt;br /&gt;# 为了能够使用那些以DSO模式编译的模块中的函数，你必须有相应的“LoadModule”行，&lt;br /&gt;# 因此，在这里包含了这些指令，以便能在使用它之前激活。&lt;br /&gt;# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)&lt;br /&gt;#&lt;br /&gt;# 示例：&lt;br /&gt;# LoadModule foo_module modules/mod_foo.so&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ExtendedStatus：当调用“server-status”时，控制Apache是产生“全”状态&lt;br /&gt;# 信息（ExtendedStatus On），还是产生基本信息（ExtendedStatus Off）。&lt;br /&gt;# 默认为off&lt;br /&gt;#&lt;br /&gt;# ExtendedStatus On&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;### 第二区：“主”服务配置&lt;br /&gt;#&lt;br /&gt;# 这一区建立被 “主” 服务器用的指令值,以回应那些不被 &lt;virtualhost&gt;&lt;br /&gt;# 定义处理的任何请求。&lt;br /&gt;# 这些数值也提供默认值给后面定义的&lt;virtualhost&gt;容器。&lt;br /&gt;# 如果&lt;virtualhost&gt;中有定义，那么这里定义的指令值将被&lt;br /&gt;# &lt;virtualhost&gt;中的定义所覆盖。&lt;br /&gt;#&lt;/virtualhost&gt;&lt;/virtualhost&gt;&lt;/virtualhost&gt;&lt;/virtualhost&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 如果你想使httpd以另外的用户或组来运行，你必须在开始时以root方式启动&lt;br /&gt;# 然后再将它切换为你想要使用的用户或组。&lt;br /&gt;#&lt;br /&gt;# User/Group:运行httpd的用户和组&lt;br /&gt;# 在SCO (ODT3)上使用“User nouser”和“Group nogroup”&lt;br /&gt;# 在HPUX上，你可能不能以nobody身份使用共享内存，建议创建一个www用户。&lt;br /&gt;# 注意一些核心（kernel）在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET)，&lt;br /&gt;#节在这些系统上不要使用“Group #-1”。&lt;br /&gt;#&lt;/span&gt; &lt;/ifmodule&gt;&lt;/ifmodule&gt;&lt;/p&gt;&lt;p&gt;User nobody&lt;br /&gt;Group #-1&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ServerAdmin:你的邮件地址，当发生问题时Apache将向你发出邮件。&lt;br /&gt;# 作为一个出错文档，这个地址显示在server-generated页上，&lt;br /&gt;# 例如：&lt;/span&gt;&lt;a href="mailto:admin@your-domain.com"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;admin@your-domain.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ServerAdmin [email]kreny@sina.com[/email] &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ServerName指定Apache用于识别自身的名字和端口号。&lt;br /&gt;# 通常这个值是自动指定的，但是我们推荐你显式的指定它以防止启动时出错&lt;br /&gt;#&lt;br /&gt;# 如果你为你的主机指定了一个无效的DNS名，server-generated重定向将不能工作。&lt;br /&gt;# 参见UseCanonicalName指令&lt;br /&gt;#&lt;br /&gt;# 如果你的主机没有注册DNS名，在这里键入它的IP地址&lt;br /&gt;# 无论如何，你必须使用它的IP地址来提供服务，&lt;br /&gt;# 这里使用一种容易理解的方式重定向服务&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ServerName &lt;a href="http://www.blogger.com/%3Ca%20href="&gt;http://www.dalouis.com:80&lt;/a&gt;" target="_blank"&gt;www.dalouis.com:80 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。&lt;br /&gt;# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。&lt;br /&gt;# 当设置为“On”,Apache会使用ServerName指令的值。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;UseCanonicalName Off &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# DocumentRoot:你的文档的根目录。默认情况下，所有的请求从这个目录进行应答。&lt;br /&gt;# 但是可以使用符号链接和别名来指向到其他的位置。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;DocumentRoot "/home/redhat/public_html" &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Apache可以存取的每个目录都可以配置存取权限（包括它的子目录）。&lt;br /&gt;#&lt;br /&gt;# 首先，我们配置一个高限制的特征。&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 这将禁止访问文件系统所在的目录，并添加你希望允许访问的目录块。&lt;br /&gt;# 如下所示&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;directory&gt;&lt;br /&gt;Order Deny,Allow&lt;br /&gt;Deny from all&lt;br /&gt;&lt;/directory&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。&lt;br /&gt;# - 所以，如果Apache没有象你所期待的那样工作的话,&lt;br /&gt;# 请检查你是否在下面明确的指定它可用。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 这将改变到你设置的DocumentRoot&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;directory&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Options：这个指令的值可以是“None”，“All”，或者下列选项的任意组合：&lt;br /&gt;# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews&lt;br /&gt;#&lt;br /&gt;# 注意，“MultiViews”必须被显式的指定，“Options All”不能为你提供这个特性。&lt;br /&gt;#&lt;br /&gt;# 这个指令既复杂又重要，请参见&lt;br /&gt;#&lt;/span&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/core.html#optioins&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;/span&gt;&lt;br /&gt;Options FollowSymLinks&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# AllowOverride控制那些被放置在.htaccess文件中的指令。&lt;br /&gt;# 它可以是“All”，“None”，或者下列指令的组合：&lt;br /&gt;# Options FileInfo AuthConfig Limit&lt;br /&gt;#&lt;br /&gt;AllowOverride None&lt;br /&gt;#&lt;br /&gt;# 控制谁可以获得服务。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;UserDir public_html &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 为防止在UserDir指令上的漏洞，对root用户设置&lt;br /&gt;# 象“./”这样的UserDir是非常有用的。&lt;br /&gt;# 如果你使用Apache 1.3或以上版本，我们强烈建议你&lt;br /&gt;# 在你的服务器配置文件中包含下面的行&lt;/span&gt; &lt;/p&gt;&lt;p&gt;UserDir disabled root &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例：&lt;br /&gt;#&lt;br /&gt;# &lt;directory&gt;&lt;br /&gt;# AllowOverride FileInfo AuthConfig Limit Indexes&lt;br /&gt;# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec&lt;br /&gt;# &lt;limit&gt;&lt;br /&gt;# Order allow,deny&lt;br /&gt;# Allow from all&lt;br /&gt;# &lt;/limit&gt;&lt;br /&gt;# &lt;limitexcept&gt;&lt;br /&gt;# Order deny,allow&lt;br /&gt;# Deny from all&lt;br /&gt;# &lt;/limitexcept&gt;&lt;br /&gt;# &lt;/directory&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# DirectoryIndex:定义请求是一个目录时，Apache向用户提供服务的文件名&lt;br /&gt;#&lt;br /&gt;# index.html.var文件（一个类型映象文件）用于提供一个文档处理列表，&lt;br /&gt;# 出于同样的目的，也可以使用MultiViews选项，但是它会非常慢。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;DirectoryIndex index.php index.html index.html.var &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。&lt;br /&gt;# 参见AllowOverride指令。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;AccessFileName .htaccess &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 下面的行防止.htaccess和.htpasswd文件被Web客户查看。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;&lt;files&gt;&lt;br /&gt;Order allow,deny&lt;br /&gt;Deny from all&lt;br /&gt;&lt;/files&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Typeconfig:定义在哪里查询mime.types文件。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;TypeConfig conf/mime.types &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。&lt;br /&gt;# 如果你的服务主要包含text或HTML文档，“text/plain”是一个好的选择；&lt;br /&gt;# 如果大多是二进制文档，诸如软件或图像，你应使用&lt;br /&gt;# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;DefaultType text/plain &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索（hints），&lt;br /&gt;# 这个MIMEMagicFile指令定义hints定义所在的文件。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;&lt;ifmodule&gt;&lt;br /&gt;MIMEMagicFile conf/magic&lt;br /&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# HostnameLookups：指定记录用户端的名字还是IP地址，例如，本指令为on时&lt;br /&gt;# 记录主机名，如&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;为off时记录IP地址，204.62.129.132。" www.apache.org；为off时记录IP地址，204.62.129.132。&lt;br /&gt;# 默认值为off，这要比设为on好得多，因为如果设为on则每个用户端请求都将会&lt;br /&gt;# 至少造成对 nameserver 进行一次查询。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;HostnameLookups Off &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# EnableMMAP:控制是否进行内存转储（如果操作系统支持的话）。&lt;br /&gt;# 默认为on，如果你的服务器安装在网络文件系统上（NFS），请关闭它。&lt;br /&gt;# 在一些系统上，关闭它会提升系统性能（与文件系统类型无关）；&lt;br /&gt;# 具体情况请参阅&lt;a href="http://www.blogger.com/post-create.do"&gt;&lt;/a&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;" &lt;/span&gt;target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...html#enablemmap&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# EnableMMAP off&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# EnableSendfile:控制是否使用sendfile kernel支持发送文件&lt;br /&gt;# （如果操作系统支持的话）。默认为on，如果你的服务器安装在网络文件系统&lt;br /&gt;# （NFS）上，请你关闭它。&lt;br /&gt;# 参见&lt;a href="http://www.blogger.com/post-create.do"&gt;&lt;/a&gt;&lt;a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;" target="_blank"&gt;http://httpd.apache.org/docs-2.0/mo...#enablesendfile&lt;br /&gt;#&lt;br /&gt;# EnableSendfile off&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ErrorLog:错误日志文件定位。&lt;br /&gt;# 如果你没有在&lt;virtualhost&gt;内定义ErrorLog指令，这个虚拟主机的错误信息&lt;br /&gt;# 将记录在这里。如果你在那儿定义了ErrorLog，这些错误信息将记录在你所&lt;br /&gt;# 定义的文件里，而不是这儿定义的文件。&lt;br /&gt;#&lt;/virtualhost&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ErrorLog logs/error_log &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# LogLevel:控制记录在错误日志文件中的日志信息数量。&lt;br /&gt;# 可能的值包括：debug，info，notice，warn，error，crit，alert，emerg。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;LogLevel warn &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 下面的指令为CustomLog指令定义格式别名。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined&lt;br /&gt;LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common&lt;br /&gt;LogFormat "%{Referer}i -&gt; %U" referer&lt;br /&gt;LogFormat "%{User-agent}i" agent &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 你需要安装了mod_logio.c模块才能使用%I和%O。&lt;br /&gt;# LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" &lt;/span&gt;combinedio &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 指定接入日志文件的定位和格式（一般日志格式）。&lt;br /&gt;# 如果你没有在&lt;virtualhost&gt;内定义这个指令，传输信息将记录在这里，&lt;br /&gt;# 如果你定义了这个指令，则记录在你指定的位置，而不是这儿定义的位置。&lt;br /&gt;#&lt;/virtualhost&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;CustomLog logs/access_log common &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 如果你想要记录agent和referer信息，可以使用下面的指令&lt;br /&gt;#&lt;br /&gt;# CustomLog logs/referer_log referer&lt;br /&gt;# CustomLog logs/agent_log agent&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 如果你想要使用一个文件记录access，agent和referer信息，&lt;br /&gt;# 你可以如下定义这个指令：&lt;br /&gt;#&lt;br /&gt;# CustomLog logs/access_log combined&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ServerTokens&lt;br /&gt;# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”，&lt;br /&gt;# 这表示在回应头中将包含模块中的操作系统类型和编译信息。&lt;br /&gt;# 可以设为列各值中的一个：&lt;br /&gt;# Full | OS | Minor | Minimal | Major | Prod&lt;br /&gt;# Full传达的信息最多，而Prod最少。&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ServerTokens Full &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中&lt;br /&gt;# （内部错误文档，FTP目录列表，mod_status和mod_info输出等等，除了CGI错误&lt;br /&gt;# 或自定义的错误文档以外）。&lt;br /&gt;# 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。&lt;br /&gt;# 可以为如下值：On | Off | EMail&lt;br /&gt;#&lt;/span&gt; &lt;/p&gt;&lt;p&gt;ServerSignature On &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Aliases:在这时添加你需要的别名，格式如下：&lt;br /&gt;# Alias 别名 真实名&lt;br /&gt;#&lt;br /&gt;# 注意，如果你在别名的未尾包含了“/”，那么在URL中也需要包含“/”。&lt;br /&gt;# 因此，“/icons”不是这个示例中的别名。&lt;br /&gt;# 如果别名中以“/”结尾，那么真实名也必须以“/”结尾，&lt;br /&gt;# 如果别名中省略了结尾的“/”，那么真实名也必须省略。&lt;br /&gt;#&lt;br /&gt;# 我们使用别名“/icons/”来表示FancyIndexed目录列表，如果你不使用、&lt;br /&gt;# FancyIndexing，你可以注释掉它。&lt;br /&gt;#&lt;br /&gt;# Alias /icons/ "/usr/local/apache2/icons/"&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# &lt;directory&gt;&lt;br /&gt;# Options Indexes MultiViews&lt;br /&gt;# AllowOverride None&lt;br /&gt;# Order allow,deny&lt;br /&gt;## Allow from all&lt;br /&gt;# &lt;/directory&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置，&lt;br /&gt;# 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话，&lt;br /&gt;# 你可以注释掉它。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;Alias /manual "/usr/loacl/apache2/manual"&lt;br /&gt;&lt;directory&gt;&lt;br /&gt;Options Indexes FollowSymLinks MultiViews IncludesNoExec&lt;br /&gt;AddOutputFilter Includes html&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# ScriptAlias:指定包含服务脚本的目录。&lt;br /&gt;# ScriptAliases 本质上与Aliases一样，除了这里的文档在请求时做为程序处理处理以外。&lt;br /&gt;# 尾部的“/”规则与Alias一样&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/" &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# 这里是添加php 4支持的指令&lt;/span&gt;&lt;br /&gt;AddType application/x-httpd-php .php&lt;br /&gt;LoadModule php4_module modules/libphp4.so &lt;/p&gt;&lt;p&gt;&lt;ifmodule&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 添加mod_cgid.c设置，mod_cgid提供使用cgid进行通讯的UNIX套接字的&lt;br /&gt;# 脚本接口路径。&lt;br /&gt;#&lt;br /&gt;# Scriptsock logs/cgisock&lt;br /&gt;&lt;/span&gt;&lt;/ifmodule&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录，&lt;br /&gt;# 如果你配置了的话。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;&lt;directory&gt;&lt;br /&gt;AllowOverride None&lt;br /&gt;Options None&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# Redirect允许你告诉客户端使用存在于服务器名字空间中的文档，&lt;br /&gt;# 而不是现在的，这帮助客户定位那些改变了位置的文档。&lt;br /&gt;# 例如：&lt;br /&gt;# Redirect permanent /foo &lt;a href="http://www.blogger.com/post-create.do"&gt;&lt;/a&gt;&lt;a href="http://www.example.com/bar"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;http://www.example.com/bar&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;" target="_blank"&gt;http://www.example.com/bar&lt;br /&gt;#&lt;br /&gt;# 控制server-generated目录列表显示的指令&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# IndexOptions:控制server-generated目录列表显示特征。&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;IndexOptions FancyIndexing VersionSort &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#&lt;br /&gt;# AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示，&lt;br /&gt;# 只适用于FancyIndexed指令&lt;br /&gt;#&lt;/span&gt;&lt;br /&gt;AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip&lt;br /&gt;AddIconByType (TXT,/icons/text.gif) text &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-2100728575936473650?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/2100728575936473650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=2100728575936473650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/2100728575936473650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/2100728575936473650'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/apachehttpdconf.html' title='Apache配置文件(httpd.conf)中文说明'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-7878050897262426791</id><published>2008-07-23T21:55:00.001-07:00</published><updated>2008-07-23T22:11:51.125-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qmail qmail-smtpd-auth ucspi-tcp daemontools vpopmail mysql 安装 配置'/><title type='text'>qmail邮件服务器安装配置记录(qmail, qmail-smtpd-auth, ucspi-tcp, daemontools, vpopmail, mysql)</title><content type='html'>&lt;span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry"&gt;&lt;div id="msgcns!8CE483F458A23E32!510" class="bvMsg"&gt;&lt;p&gt;作者：白东(Albert Ding) &lt;/p&gt;&lt;p&gt;由于更换服务器，因此重建了邮件服务器。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;相关网站：&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail ( &lt;a href="http://www.qmail.org/"&gt;http://www.qmail.org&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;qmail-smtpd-auth&lt;/span&gt; (smtp验证模块)( &lt;a href="http://members.elysium.pl/brush/qmail-smtpd-auth/"&gt;http://members.elysium.pl/brush/qmail-smtpd-auth/&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;ucspi-tcp 和 daemontools ( &lt;a href="http://cr.yp.to/software.html"&gt;http://cr.yp.to/software.html&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;vpopmail ( &lt;a href="http://sourceforge.net/projects/vpopmail/"&gt;http://sourceforge.net/projects/vpopmail/&lt;/a&gt; );&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;下载所需的源文件(如果下载不了，可能是已经有了升级，那么就需要到这些网站上去下载了)： &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail ( &lt;a href="http://www.qmail.org/netqmail-1.05.tar.gz" target="_blank"&gt;http://www.qmail.org/netqmail-1.05.tar.gz&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;qmail-smtpd-auth&lt;/span&gt; ( &lt;a href="http://members.elysium.pl/brush/qmail-smtpd-auth/dist/"&gt;http://members.elysium.pl/brush/qmail-smtpd-auth/dist/&lt;/a&gt; 到这个页面下载最新的版本 ); &lt;/li&gt;&lt;li&gt;ucspi-tcp ( &lt;a href="ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" target="_blank"&gt;ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;daemontools ( &lt;a href="ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz" target="_blank"&gt;ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;vpopmail ( &lt;a href="http://sourceforge.net/projects/vpopmail/"&gt;http://sourceforge.net/projects/vpopmail/&lt;/a&gt; 到这个页面查看下载最新版本);&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;解压&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail &lt;ol&gt;&lt;li&gt;tar xvfz netqmail-1.05.tar.gz &lt;/li&gt;&lt;li&gt;cd netqmail-1.05 &lt;/li&gt;&lt;li&gt;./collate.sh (1.05后，需要在解压后执行这个文件)&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;qmail-smtpd-auth&lt;/span&gt; &lt;ol&gt;&lt;li&gt;tar xvfz qmail-smtpd-auth-0.31.tar.gz &lt;/li&gt;&lt;li&gt;cp README.auth base64.c base64.h ../netqmail-1.05/netqmail-1.05 &lt;/li&gt;&lt;li&gt;patch -d ../netqmail-1.05/netqmail-1.05 &lt;&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;ucspi-tcp &lt;ol&gt;&lt;li&gt;tar xvfz ucspi-tcp-0.88.tar.gz&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;daemontools &lt;ol&gt;&lt;li&gt;mkdir -p /package &lt;/li&gt;&lt;li&gt;mv daemontools-0.76.tar.gz /package &lt;/li&gt;&lt;li&gt;tar xvfz daemontools-0.76.tar.gz&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;vpopmail &lt;ol&gt;&lt;li&gt;tar xvfz vpopmail-5.4.9.tar.gz&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;安装qmail&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail &lt;ol&gt;&lt;li&gt;mkdir /var/qmail &lt;/li&gt;&lt;li&gt;建立qmail用户和用户组，见 &lt;span style="color: rgb(0, 153, 0);"&gt;附录1&lt;/span&gt; &lt;/li&gt;&lt;li&gt;make setup check &lt;/li&gt;&lt;li&gt;./config (如果不成功，使用 ./config-fast &lt;em&gt;the.full.hostname &lt;/em&gt;)&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;ucspi-tcp &lt;ol&gt;&lt;li&gt;patch &lt; /usr/src/netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch &lt;/li&gt;&lt;li&gt;make &lt;/li&gt;&lt;li&gt;make setup check&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;daemontools &lt;ol&gt;&lt;li&gt;cd src &lt;/li&gt;&lt;li&gt;patch &lt; /usr/src/netqmail-1.05/other-patches/daemontools-0.76.errno.patch &lt;/li&gt;&lt;li&gt;cd .. &lt;/li&gt;&lt;li&gt;package/install&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;设置qmail &lt;/strong&gt;(&lt;span style="color: rgb(255, 0, 0);"&gt;请注意在安装vpopmail前的设置和附录中的文件，和在安装vpopmail后，会有所变化&lt;/span&gt;) &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件：/var/qmail/rc，见&lt;span style="color: rgb(0, 153, 0);"&gt;附录2&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;chmod 755 /var/qmail/rc&lt;/span&gt; &lt;/li&gt;&lt;li&gt;mkdir /var/log/qmail &lt;/li&gt;&lt;li&gt;echo ./Mailbox &gt;/var/qmail/control/defaultdelivery &lt;/li&gt;&lt;li&gt;建立启动文件： &lt;ol&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;/var/qmail/bin/qmailctl (qmail运行控制文件)见&lt;span style="color: rgb(0, 153, 0);"&gt;附录3&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/bin/qmailctl (赋可执行权限) &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/bin/qmailctl /usr/bin (在bin中建立链接，运行时不用输入完整路径) &lt;/li&gt;&lt;li&gt;mkdir -p /var/qmail/supervise/qmail-send/log (发送日志执行文件目录) &lt;/li&gt;&lt;li&gt;mkdir -p /var/qmail/supervise/qmail-smtpd/log  (smtp登陆日志执行目录) &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件 /var/qmail/supervise/qmail-send/run (启动发送邮件文件)见&lt;span style="color: rgb(0, 153, 0);"&gt;附录4&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件 /var/qmail/supervise/qmail-send/log/run (发送日志运行文件) 见&lt;span style="color: rgb(0, 153, 0);"&gt;附录5&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件 /var/qmail/supervise/qmail-smtpd/run (smtp进程启动文件) 见&lt;span style="color: rgb(0, 153, 0);"&gt;附录6&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;echo 20 &gt; /var/qmail/control/concurrencyincoming (并发数量)&lt;/span&gt; &lt;/li&gt;&lt;li&gt;chmod 644 /var/qmail/control/concurrencyincoming (改变属性) &lt;/li&gt;&lt;li&gt;建立文件 &lt;span style="font-family:Courier New;"&gt;/var/qmail/supervise/qmail-smtpd/log/run (smtp日志执行文件) 见&lt;span style="color: rgb(0, 153, 51);"&gt;附录7&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-send/run (赋予可执行权限) &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-send/log/run &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-smtpd/run &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-smtpd/log/run &lt;/li&gt;&lt;li&gt;mkdir -p /var/log/qmail/smtpd (建立smtp登陆日志文件保存目录) &lt;/li&gt;&lt;li&gt;chown qmaill /var/log/qmail /var/log/qmail/smtpd (改变目录所有者) &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service (建立链接，以便守护进程启动它们) &lt;/li&gt;&lt;li&gt;echo '127.:allow,RELAYCLIENT=""' &gt;&gt;/etc/tcp.smtp (建立smtp允许规则) &lt;/li&gt;&lt;li&gt;qmailctl cdb (为smtp重建tcpserver cdb文件) &lt;/li&gt;&lt;li&gt;mkdir -p /var/qmail/supervise/qmail-pop3d/log (建立pop3日志执行文件目录) &lt;/li&gt;&lt;li&gt;建立文件 /var/qmail/supervise/qmail-pop3d/run (pop3启动文件) 见&lt;span style="color: rgb(0, 153, 0);"&gt;附录9&lt;/span&gt; &lt;/li&gt;&lt;li&gt;建立文件 /var/qmail/supervise/qmail-pop3d/log/run (pop3日志执行文件) 见&lt;span style="color: rgb(0, 153, 0);"&gt;附录10&lt;/span&gt; &lt;/li&gt;&lt;li&gt;mkdir /var/log/qmail/pop3d (建立pop3日志保存目录) &lt;/li&gt;&lt;li&gt;chown qmaill /var/log/qmail/pop3d (改变目录所有者) &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-pop3d/run (赋予run可执行权限) &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-pop3d/log/run &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/supervise/qmail-pop3d /service (建立链接，以便守护进程启动它) &lt;/li&gt;&lt;li&gt;修改 qmailctl 文件内容，添加了pop3部分的完整内容 见&lt;span style="color: rgb(0, 153, 0);"&gt;附录11&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;删除sendmail，及建立链接到qmail &lt;ol&gt;&lt;li&gt;mv /usr/lib/sendmail /usr/lib/sendmail.old                  &lt;i&gt;# ignore errors&lt;/i&gt; &lt;/li&gt;&lt;li&gt;mv /usr/sbin/sendmail /usr/sbin/sendmail.old                &lt;i&gt;# ignore errors&lt;/i&gt; &lt;/li&gt;&lt;li&gt;chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old        &lt;i&gt;# ignore errors&lt;/i&gt; &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/bin/sendmail /usr/lib &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/bin/sendmail /usr/sbin&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;建立系统级别名 &lt;ol&gt;&lt;li&gt;echo &lt;em&gt;your-name&lt;/em&gt; &gt; /var/qmail/alias/.qmail-root &lt;/li&gt;&lt;li&gt;echo &lt;em&gt;your-name&lt;/em&gt; &gt; /var/qmail/alias/.qmail-postmaster &lt;/li&gt;&lt;li&gt;ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon &lt;/li&gt;&lt;li&gt;chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;启动qmail &lt;/p&gt;&lt;ol&gt;&lt;li&gt;# qmailctl start&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;测试qmail &lt;/p&gt;&lt;ol&gt;&lt;li&gt;# qmailctl stat 执行后应看到以下信息：&lt;br /&gt;/service/qmail-send: up (pid 30303) 187 seconds&lt;br /&gt;/service/qmail-send/log: up (pid 30304) 187 seconds&lt;br /&gt;/service/qmail-smtpd: up (pid 30305) 187 seconds&lt;br /&gt;/service/qmail-smtpd/log: up (pid 30308) 187 seconds&lt;br /&gt;messages in queue: 0&lt;br /&gt;messages in queue but not yet preprocessed: 0 &lt;/li&gt;&lt;li&gt;建立文件 inst_check，见&lt;span style="color: rgb(0, 153, 51);"&gt;附录8&lt;/span&gt; &lt;/li&gt;&lt;li&gt;执行命令：sh inst_check，如果成功，则有如下提示：&lt;br /&gt;Congratulations, your LWQ installation looks good! &lt;/li&gt;&lt;li&gt;ps -efl | grep "service errors" | grep -v grep 会看到类似下面的信息：&lt;br /&gt;4 S root      3878  3866  0  85   0 -   305 pipe_w 15:14 ?        00:00:00 readproctitle service errors: ........... &lt;/li&gt;&lt;li&gt;如果“......."后面没有内容，那就说明正确，如果有内容，则是错误提示 &lt;/li&gt;&lt;li&gt;添加了 pop3 部分的 qmailctl 查看的状态是：&lt;br /&gt;/service/qmail-send: up (pid 4119) 513 seconds&lt;br /&gt;/service/qmail-send/log: up (pid 4132) 513 seconds&lt;br /&gt;/service/qmail-smtpd: up (pid 4120) 513 seconds&lt;br /&gt;/service/qmail-smtpd/log: up (pid 4133) 513 seconds&lt;br /&gt;messages in queue: 0&lt;br /&gt;messages in queue but not yet preprocessed: 0&lt;br /&gt;/service/qmail-pop3d: up (pid 5176) 1 seconds&lt;br /&gt;/service/qmail-pop3d/log: up (pid 4134) 513 seconds &lt;/li&gt;&lt;li&gt;到这里qmail安装成功，下面安装设置vpopmail&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;vpopmail 安装及配置 &lt;/p&gt;&lt;ol&gt;&lt;li&gt;准备 &lt;ol&gt;&lt;li&gt;新建用户 vpopmail 和 用户组 vchkpw ，大多数用都会把 uid 和 gid 设定为89，这个其实无所谓，其实脚本里完全可以不需要这个，加个获得uid和gid的代码就可以了。所以这里说uid和gid，你不用去太关心。 &lt;/li&gt;&lt;li&gt;而你要关心的是 vpopmail 这个用户的用户根目录设定在哪里？ &lt;ol&gt;&lt;li&gt;如果你已经为保存邮件而设定了一个分区，那么就把vpopmail的用户根目录设定为这个分区。 &lt;/li&gt;&lt;li&gt;如果没有，建议设定到一个比较大的相对独立的分区，如果可以，不要设定在home分区，因为保存邮件的分区随着邮件服务器运行会不断的产生大量磁盘碎片，这会非常影响home分区中其它用户的使用的性能。&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;安装 &lt;ol&gt;&lt;li&gt;添加用户vpopmail和用户组vchkpw，当然，可以使用任何添加用户和用户组的方法新建它们，这里给出的是命令行方式： &lt;ol&gt;&lt;li&gt;groupadd -g 89 vchkpw &lt;/li&gt;&lt;li&gt;useradd -g vchkpw -u 89 -d /home/vpopmail vpopmail&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;mkdir ~vpopmail/etc (建立etc目录) &lt;/li&gt;&lt;li&gt;chown vpopmail.vchkpw ~vpopmail/etc (改变所属用户和组) &lt;/li&gt;&lt;li&gt;echo "localhost|0|&lt;i&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;vpopmailuser&lt;/span&gt;&lt;/i&gt;|&lt;i&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;vpoppasswd&lt;/span&gt;&lt;/i&gt;|vpopmail" &gt; ~vpopmail/etc/vpopmail.mysql (建立vpopmail链接MySQL数据库的配置文件) &lt;/li&gt;&lt;li&gt;chown vpopmail.vchkpw ~vpopmail/etc/vpopmail.mysql (改变所属用户和组) &lt;/li&gt;&lt;li&gt;chmod 640 ~vpopmail/etc/vpopmail.mysql (修改文件属性) &lt;/li&gt;&lt;li&gt;在 MySQL 中建立一个用户：vpopmail，不要给这个用户任何权限 &lt;/li&gt;&lt;li&gt;在 MysQL 中建立一个数据库：vpopmail &lt;/li&gt;&lt;li&gt;在 MySQL 中设定数据库权限，将数据库vpopmail只运行vpopmail这个用户访问，权限设定为：select,insert,update,delete,create,drop 。 &lt;/li&gt;&lt;li&gt;配置vpopmail (配置选项扼要解释：关闭了登陆pop3后可发送smtp的功能，因为我们的qmail安装了smtp验证；关闭了邮箱容量限制；校验模块使用MySQL；打开别名功能)&lt;br /&gt;./configure --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --disable-many-domains --enable-auth-logging --enable-sql-logging --enable-valias --disable-mysql-limits &lt;/li&gt;&lt;li&gt;编译和安装&lt;br /&gt;make&lt;br /&gt;make install-strip &lt;/li&gt;&lt;li&gt;如果你想设定邮箱容量限制，那么修改 vlimits.default：&lt;br /&gt;vi ~vpopmail/etc/vlimits.default&lt;br /&gt;# in particular set the default mailbox size to be something reasonable eg 20Mb&lt;br /&gt;default_quota 20971520 (修改这个内容，默认的是20M) &lt;/li&gt;&lt;li&gt;设定默认域（这个问题，有的人说没必要，我认为有必要，这样对主域来说，在客户端就不需要在用户名处输入全部邮件地址了。）&lt;br /&gt;echo "&lt;span style="color: rgb(255, 0, 102);"&gt;yourdomain.com&lt;/span&gt;" &gt; ~vpopmail/etc/defaultdomain &lt;/li&gt;&lt;li&gt;设定邮箱内邮件总容量达到邮箱限制的90%的提示内容文件&lt;br /&gt;~vpopmail/domains/.quotawarn.msg 见&lt;span style="color: rgb(0, 153, 0);"&gt;附录12&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;设定邮箱已满的提示信息内容（写中文也可以，不过如果客户端不一定能正常显示，所以还是写英文吧）&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;echo "Message rejected. Not enough storage space in user's mailbox to accept message." &gt; ~vpopmail/domains/.over-quota.msg&lt;/span&gt; &lt;/li&gt;&lt;li&gt;好了vpopmail安装和设定好了。现在要修改 qmail pop3启动内容。就是让qmail的pop3部分使用vpopmail的校验，当然也需要修改smtp部分的内容，是让qmail的smtp验证使用vpopmail的校验。 &lt;/li&gt;&lt;li&gt;修改文件 /var/qmail/supervise/qmail-pop3d/run 见&lt;span style="color: rgb(0, 153, 0);"&gt;附录13&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;修改文件 /var/qmail/supervise/qmail-smtpd/run 见&lt;/span&gt;附录14&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;重新启动qmail&lt;br /&gt;qmailctl restart&lt;/span&gt; &lt;/li&gt;&lt;li&gt;用telnet方式来测试： &lt;ol&gt;&lt;li&gt;测试 pop3 的命令(&lt;span style="color: rgb(255, 153, 0);"&gt;橙色部分为系统显示内容&lt;/span&gt;)：&lt;br /&gt;# telnet localhost 110&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;+OK &lt;/span&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;4047.1110877290@&lt;em&gt;your-domain-address&lt;/em&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;&lt;br /&gt;&lt;/span&gt;user &lt;em&gt;your-email-user-name&lt;/em&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;+OK&lt;/span&gt;&lt;br /&gt;pass &lt;em&gt;your-email-user's-password&lt;/em&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;+OK&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;如果输入password后显示"+OK"那就表示正确！&lt;/span&gt; &lt;/li&gt;&lt;li&gt;测试 smtp 的命令(&lt;span style="color: rgb(255, 153, 0);"&gt;橙色部分为系统显示内容&lt;/span&gt;)：&lt;br /&gt;# telnet localhost 25&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;220 &lt;em&gt;your-domain-address&lt;/em&gt; ESMTP&lt;br /&gt;&lt;/span&gt;HELO&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;250 &lt;em&gt;your-domain-address&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;MAIL FROM:&lt;em&gt;user&lt;/em&gt;@ &lt;em&gt;your-domain-address&lt;/em&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;250 ok&lt;/span&gt;&lt;br /&gt;RCPT TO:&lt;em&gt;receive-user&lt;/em&gt;@ &lt;em&gt;receive-user-domain-address&lt;/em&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;250 ok&lt;br /&gt;&lt;/span&gt;DATA&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;354 go ahead&lt;/span&gt;&lt;br /&gt;Subject: test message&lt;br /&gt;&lt;br /&gt;This is a test message&lt;br /&gt;.&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;250 ok 1110872613 qp 22398&lt;/span&gt; &lt;/li&gt;&lt;li&gt;用户邮件客户端软件测试。&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;维护 &lt;ol&gt;&lt;li&gt;添加域：~vpopmail/bin/vadddomain &lt;em&gt;your-domain-name&lt;/em&gt; &lt;/li&gt;&lt;li&gt;添加用户邮箱：~vpopmail/bin/vadduser &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;删除用户邮箱：~vpopmail/bin/vdeluser &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;删除域：~vpopmail/bin/vdeldomain &lt;em&gt;your-domain-name&lt;/em&gt; &lt;/li&gt;&lt;li&gt;修改用户邮箱的密码：~vpopmail/bin/vpasswd &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;查看用户邮箱信息：~vpopmail/bin/vuserinfo &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;其它更多的命令，需要查看帮助中的解释和说明&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;有可能遇到的问题：&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Outlook提示：Server Error: 553, Error Number: 0x800CCC79 错误信息。客户端无法收发信，总是提示用户名和密码错误。&lt;br /&gt;&lt;strong&gt;原因：&lt;/strong&gt;这个很可能是由于softlimit的-m的值过小，导致：vchkpw:error while loading shared libraries:libc.so.6: failed to map segment from shared...。&lt;br /&gt;&lt;strong&gt;解决办法：&lt;/strong&gt;将smtp启动脚本中的softlimit -m 值设置大些。例如设定成4000000（4M）或者更大。 &lt;/li&gt;&lt;li&gt;如 果qmail正确，确总是出现用户名密码错误，这多部分说明是vpopmail验证部分出问题了，仔细检查启动脚本中是否有错误，例如：你可能设定 vpopmail用户的用户根目录不是/home/vpopmail，而在脚本中写的是/home/vpopmail，如果是这样，建议你在绝大多数情况 下，写成 ~vpopmail。 &lt;/li&gt;&lt;li&gt;Vpopmail 编译安装后，数据库vpopmail中没有增加表等内容。这说明你的MySQL安装有问题，或者是 share模块安装的不正确，解决办法： &lt;ol&gt;&lt;li&gt;使用你设定的MySQL中的vpopmail账号进行登陆MySQL以及访问vpopmail数据库的尝试，如果成功，则是MySQL share部分的问题，重新安装它。 &lt;/li&gt;&lt;li&gt;如果使用该账号不能访问成功，说明MySQL中账号或权限设定有问题。&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;============&lt;br /&gt;||       &lt;strong&gt;附    录     &lt;/strong&gt;||&lt;br /&gt;============ &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;用于建立qmail用户和用户组的脚本(文件名：IDS) &lt;/strong&gt;(改变权限：chmod 700 IDS)&lt;br /&gt;groupadd nofiles&lt;br /&gt;useradd -g nofiles -d /var/qmail/alias alias&lt;br /&gt;useradd -g nofiles -d /var/qmail qmaild&lt;br /&gt;useradd -g nofiles -d /var/qmail qmaill&lt;br /&gt;useradd -g nofiles -d /var/qmail qmailp&lt;br /&gt;groupadd qmail&lt;br /&gt;useradd -g qmail -d /var/qmail qmailq&lt;br /&gt;useradd -g qmail -d /var/qmail qmailr&lt;br /&gt;useradd -g qmail -d /var/qmail qmails &lt;/li&gt;&lt;li&gt;&lt;strong&gt;文件 /var/qmail/rc&lt;br /&gt;&lt;/strong&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# Using stdout for logging&lt;br /&gt;# Using control/defaultdelivery from qmail-local to deliver messages by default&lt;br /&gt;&lt;br /&gt;exec env - PATH="/var/qmail/bin:$PATH" \&lt;br /&gt;qmail-start "`cat /var/qmail/control/defaultdelivery`" &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/bin/qmailctl&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# description: the qmail MTA&lt;br /&gt;&lt;br /&gt;PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin&lt;br /&gt;export PATH&lt;br /&gt;&lt;br /&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt; start)&lt;br /&gt;   echo "Starting qmail"&lt;br /&gt;   if svok /service/qmail-send ; then&lt;br /&gt;     svc -u /service/qmail-send /service/qmail-send/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-send supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if svok /service/qmail-smtpd ; then&lt;br /&gt;     svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-smtpd supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if [ -d /var/lock/subsys ]; then&lt;br /&gt;     touch /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   ;;&lt;br /&gt; stop)&lt;br /&gt;   echo "Stopping qmail..."&lt;br /&gt;   echo "  qmail-smtpd"&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "  qmail-send"&lt;br /&gt;   svc -d /service/qmail-send /service/qmail-send/log&lt;br /&gt;   if [ -f /var/lock/subsys/qmail ]; then&lt;br /&gt;     rm /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   ;;&lt;br /&gt; stat)&lt;br /&gt;   svstat /service/qmail-send&lt;br /&gt;   svstat /service/qmail-send/log&lt;br /&gt;   svstat /service/qmail-smtpd&lt;br /&gt;   svstat /service/qmail-smtpd/log&lt;br /&gt;   qmail-qstat&lt;br /&gt;   ;;&lt;br /&gt; doqueue|alrm|flush)&lt;br /&gt;   echo "Flushing timeout table and sending ALRM signal to qmail-send."&lt;br /&gt;   /var/qmail/bin/qmail-tcpok&lt;br /&gt;   svc -a /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; queue)&lt;br /&gt;   qmail-qstat&lt;br /&gt;   qmail-qread&lt;br /&gt;   ;;&lt;br /&gt; reload|hup)&lt;br /&gt;   echo "Sending HUP signal to qmail-send."&lt;br /&gt;   svc -h /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; pause)&lt;br /&gt;   echo "Pausing qmail-send"&lt;br /&gt;   svc -p /service/qmail-send&lt;br /&gt;   echo "Pausing qmail-smtpd"&lt;br /&gt;   svc -p /service/qmail-smtpd&lt;br /&gt;   ;;&lt;br /&gt; cont)&lt;br /&gt;   echo "Continuing qmail-send"&lt;br /&gt;   svc -c /service/qmail-send&lt;br /&gt;   echo "Continuing qmail-smtpd"&lt;br /&gt;   svc -c /service/qmail-smtpd&lt;br /&gt;   ;;&lt;br /&gt; restart)&lt;br /&gt;   echo "Restarting qmail:"&lt;br /&gt;   echo "* Stopping qmail-smtpd."&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "* Sending qmail-send SIGTERM and restarting."&lt;br /&gt;   svc -t /service/qmail-send /service/qmail-send/log&lt;br /&gt;   echo "* Restarting qmail-smtpd."&lt;br /&gt;   svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   ;;&lt;br /&gt; cdb)&lt;br /&gt;   tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &lt; /etc/tcp.smtp     chmod 644 /etc/tcp.smtp.cdb     echo "Reloaded /etc/tcp.smtp."     ;;   help)     cat &lt;&lt;help stop="" goes="" start="" starts="" connection="" can="" go="" pause="" temporarily="" connections="" nothing="" cont="" continues="" paused="" stat="" displays="" mail="" service="" rebuild="" the="" tcpserver="" cdb="" file="" smtp="" restart="" stops="" a="" term="" restarts="" it="" schedules="" queued="" messages="" for="" immediate="" delivery="" sends="" send="" rereading="" locals="" and="" virtualdomains="" shows="" status="" of="" queue="" alrm="" flush="" doqueue="" hup="" same="" as="" reload="" help="" echo="" 1="" esac="" exit="" 0=""&gt;&lt;/help&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-send/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /var/qmail/rc&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-send/log/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-smtpd/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then&lt;br /&gt;   echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in&lt;br /&gt;   echo /var/qmail/supervise/qmail-smtpd/run&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f /var/qmail/control/rcpthosts ]; then&lt;br /&gt;   echo "No /var/qmail/control/rcpthosts!"&lt;br /&gt;   echo "Refusing to start SMTP listener because it'll create an open relay"&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;exec /usr/local/bin/softlimit -m 2000000 \&lt;br /&gt;   /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \&lt;br /&gt;       -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2&gt;&amp;amp;1&lt;br /&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-smtpd/log/run&lt;br /&gt;&lt;/strong&gt;#!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 inst_check&lt;br /&gt;&lt;/strong&gt;# Dave Sill, 2003-11-10&lt;br /&gt;# &lt;a href="http://lifewithqmail.org/inst_check"&gt;http://lifewithqmail.org/inst_check&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;# set to n if you're not running a pop3 server, y if you are&lt;br /&gt;CHECKPOP=n&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;QMHOME=/var/qmail&lt;br /&gt;LBIN=/usr/local/bin&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;OK=1&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ $# -eq 1 ]; then&lt;br /&gt; if [ "$1" = "-v" ]; then&lt;br /&gt;   VERB=y&lt;br /&gt; else&lt;br /&gt;   VERB=n&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -d $QMHOME ]; then&lt;br /&gt; echo "! Couldn't find qmail's home directory, $QMHOME!"&lt;br /&gt;else&lt;br /&gt; if [ "$VERB" = y ]; then&lt;br /&gt;   echo "$QMHOME exists"&lt;br /&gt; fi&lt;br /&gt; for i in alias bin boot control doc man queue supervise users; do&lt;br /&gt;   if [ ! -d $QMHOME/$i ]; then&lt;br /&gt;     echo "! Couldn't find $QMHOME/$i!"&lt;br /&gt;     OK=0&lt;br /&gt;   elif [ "$VERB" = y ]; then&lt;br /&gt;     echo "$QMHOME/$i exists"&lt;br /&gt;   fi&lt;br /&gt; done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;  if [ ! -f $QMHOME/rc ]; then&lt;br /&gt;   echo "! $QMHOME/rc is missing"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ ! -x $QMHOME/rc ]; then&lt;br /&gt;   echo "! $QMHOME/rc is not executable"&lt;br /&gt;   echo "...try: chmod 755 $QMHOME/rc"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ `head -1 $QMHOME/rc|cat -vet` != '#!/bin/sh$' ]; then&lt;br /&gt;   echo "! $QMHOME/rc has bad magic cookie"&lt;br /&gt;   echo "...try: dos2unix $QMHOME/rc"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$QMHOME/rc is executable and has a valid magic cookie"&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in alias qmaild qmaill qmailp qmailq qmailr qmails; do&lt;br /&gt; grep "^$i:" /etc/passwd &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find $i user in /etc/passwd"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i user exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in qmail nofiles; do&lt;br /&gt; grep "^$i:" /etc/group &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find $i group in /etc/group"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i group exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in tcprules tcpserver; do&lt;br /&gt; if [ ! -x $LBIN/$i ]; then&lt;br /&gt;   echo "! Couldn't find $LBIN/$i from ucspi-tcp"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i from ucspi-tcp is installed"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in multilog softlimit setuidgid supervise svok svscan tai64nlocal; do&lt;br /&gt; if [ ! -x $LBIN/$i ]; then&lt;br /&gt;   echo "! Couldn't find $LBIN/$i from daemontools"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i from daemontools is installed"&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -d /service ]; then&lt;br /&gt; echo "! /service directory is missing"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/service directory exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ -f /etc/inittab ]; then&lt;br /&gt; grep "^SV" /etc/inittab &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find SV entry in inittab"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "svscan /service is configured to run via /etc/inittab"&lt;br /&gt; fi&lt;br /&gt; PS="ps -ef"&lt;br /&gt;else&lt;br /&gt; grep "svscanboot" /etc/rc.local &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find 'csh -cf '/command/svscanboot &amp;amp;' in /etc/rc.local"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "/command/svscanboot is configured to run via /etc/rc.local"&lt;br /&gt; fi&lt;br /&gt; PS="ps -waux"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;SVRUN=`$PS | grep "svscan /service" | grep -v grep`&lt;br /&gt;if [ -z "$SVRUN" ]; then&lt;br /&gt; echo "'! svscan /service' doesn't seem to be running"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "svscan /service is running"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f $QMHOME/control/defaultdelivery ]; then&lt;br /&gt; echo "! Couldn't find $QMHOME/control/defaultdelivery"&lt;br /&gt; OK=0&lt;br /&gt;elif [ ! -s $QMHOME/control/defaultdelivery ]; then&lt;br /&gt; echo "! $QMHOME/control/defaultdelivery is empty"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "$QMHOME/control/defaultdelivery looks OK"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f $QMHOME/bin/qmailctl ]; then&lt;br /&gt; echo "! $QMHOME/bin/qmailctl is missing"&lt;br /&gt; OK=0&lt;br /&gt;elif [ ! -s $QMHOME/bin/qmailctl ]; then&lt;br /&gt; echo "! $QMHOME/bin/qmailctl is empty"&lt;br /&gt; OK=0&lt;br /&gt;elif [ `head -1 $QMHOME/bin/qmailctl|cat -vet` != '#!/bin/sh$' ]; then&lt;br /&gt;   echo "! $QMHOME/bin/qmailctl has bad magic cookie"&lt;br /&gt;   echo "...try: dos2unix $QMHOME/bin/qmailctl"&lt;br /&gt;   OK=0&lt;br /&gt;elif [ ! -x $QMHOME/bin/qmailctl ]; then&lt;br /&gt; echo "! $QMHOME/bin/qmailctl is not executable"&lt;br /&gt; echo "...try: chmod 755 $QMHOME/bin/qmailctl"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "$QMHOME/bin/qmailctl looks OK"&lt;br /&gt;fi&lt;br /&gt;if [ ! -L /usr/bin/qmailctl ]; then&lt;br /&gt; echo "! /usr/bin/qmailctl is missing"&lt;br /&gt; echo "...try: ln -s $QMHOME/bin/qmailctl /usr/bin"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/usr/bin/qmailctl exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;SVCDIRS="qmail-send qmail-send/log qmail-smtpd qmail-smtpd/log"&lt;br /&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; SVCDIRS="$SVCDIRS qmail-pop3d qmail-pop3d/log"&lt;br /&gt;fi&lt;br /&gt;for i in $SVCDIRS; do&lt;br /&gt; if [ ! -f $QMHOME/supervise/$i/run ]; then&lt;br /&gt;   echo "! $QMHOME/supervise/$i/run file is missing"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ `head -1 $QMHOME/supervise/$i/run|cat -vet` != '#!/bin/sh$' ]; then&lt;br /&gt;   echo "! $QMHOME/supervise/$i/run has bad magic cookie"&lt;br /&gt;   echo "...try: dos2unix $QMHOME/supervise/$i/run"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ ! -x $QMHOME/supervise/$i/run ]; then&lt;br /&gt;   echo "! $QMHOME/supervise/$i/run file is not executable"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$QMHOME/supervise/$i/run looks OK"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f $QMHOME/control/concurrencyincoming ]; then&lt;br /&gt; echo "! $QMHOME/control/concurrencyincoming is missing"&lt;br /&gt; echo "...try: echo 20 &gt;$QMHOME/control/concurrencyincoming"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "$QMHOME/control/concurrencyincoming looks OK"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;LOGDIRS="/var/log/qmail /var/log/qmail/smtpd"&lt;br /&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; LOGDIRS="$LOGDIRS /var/log/qmail/pop3d"&lt;br /&gt;fi&lt;br /&gt;for i in $LOGDIRS; do&lt;br /&gt; if [ ! -d $i ]; then&lt;br /&gt;   echo "! $i is missing"&lt;br /&gt;   echo "...try: mkdir -p $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "`ls -ld $i|awk '{print $3}'`" != "qmaill" ]; then&lt;br /&gt;   echo "! $i has wrong owner, should be qmaill"&lt;br /&gt;   echo "...try: chown qmaill $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "`ls -ld $i|awk '{print $1}'`" != "drwxr-xr-x" ]; then&lt;br /&gt;   echo "! $i has wrong mode, should be 755"&lt;br /&gt;   echo "...try: chmod 755 $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i looks OK"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;SVCLINKS="/service/qmail-send /service/qmail-smtpd"&lt;br /&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; SVCLINKS="$SVCLINKS /service/qmail-pop3d"&lt;br /&gt;fi&lt;br /&gt;for i in $SVCLINKS; do&lt;br /&gt; if [ ! -L $i ]; then&lt;br /&gt;   echo "! $i is missing"&lt;br /&gt;   echo "...try: ln -s $QMHOME$i $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f /etc/tcp.smtp ]; then&lt;br /&gt; echo "! /etc/tcp.smtp is missing"&lt;br /&gt; echo "...try: echo '127.:allow,RELAYCLIENT=\"\"' &gt;&gt;/etc/tcp.smtp"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/etc/tcp.smtp exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f /etc/tcp.smtp.cdb ]; then&lt;br /&gt; echo "! /etc/tcp.smtp.cdb is missing"&lt;br /&gt; echo "...try: $QMHOME/bin/qmailctl cdb"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/etc/tcp.smtp.cdb exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;AHOME=`grep "^alias:" /etc/passwd | awk -F: '{print $6}'`&lt;br /&gt;if [ -z "$AHOME" ]; then&lt;br /&gt; echo "! Couldn't find user alias's home directory"&lt;br /&gt; OK=0&lt;br /&gt;else&lt;br /&gt; for i in root postmaster mailer-daemon; do&lt;br /&gt;   if [ ! -f $AHOME/.qmail-$i ]; then&lt;br /&gt;     echo "! Alias for $i is missing"&lt;br /&gt;     echo "...try: echo me &gt;$AHOME/.qmail-$i"&lt;br /&gt;     OK=0&lt;br /&gt;   elif [ "$VERB" = y ]; then&lt;br /&gt;     echo "$i alias exists"&lt;br /&gt;   fi&lt;br /&gt; done&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if netstat -a | grep smtp | grep -i listen &gt;/dev/null; then&lt;br /&gt; if $PS | grep sendmail | grep -v grep &gt;/dev/null; then&lt;br /&gt;   echo "! Sendmail is still running"&lt;br /&gt;   echo "...try: $RCDIR/init.d/sendmail stop"&lt;br /&gt;   OK=0&lt;br /&gt; elif $LBIN/svok /service/qmail-smtpd; then&lt;br /&gt;   if [ "$VERB" = y ]; then&lt;br /&gt;     echo "/service/qmail-smtpd is running"&lt;br /&gt;   fi&lt;br /&gt; else&lt;br /&gt;   echo "! Something is listening on port 25 (not tcpserver/qmail-smtpd)"&lt;br /&gt;   echo "...try: disabling current MTA"&lt;br /&gt;   OK=0&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; if netstat -a | grep pop | grep -i listen &gt;/dev/null; then&lt;br /&gt;   if $LBIN/svok /service/qmail-pop3d; then&lt;br /&gt;     if [ "$VERB" = y ]; then&lt;br /&gt;       echo "/service/qmail-pop3d is running"&lt;br /&gt;     fi&lt;br /&gt;   else&lt;br /&gt;     echo "! Something is listening on port 110 (not tcpserver/qmail-pop3d)"&lt;br /&gt;     echo "...try: disabling other POP server"&lt;br /&gt;     OK=0&lt;br /&gt;   fi&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in /usr/lib/sendmail /usr/sbin/sendmail; do&lt;br /&gt; if [ -f $i -a ! -L $i ]; then&lt;br /&gt;   echo "! $i is a file, should be a link"&lt;br /&gt;   echo "...try: uninstalling current MTA or: mv $i $i.old; ln -s $QMHOME/bin/sendmail $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ ! -f $i ];then&lt;br /&gt;   echo "! $i is missing"&lt;br /&gt;   echo "...try: ln -s $QMHOME/bin/sendmail $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ $OK -eq 1 ]; then&lt;br /&gt; echo "Congratulations, your LWQ installation looks good!"&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "! Potential problems were found with your LWQ installation"&lt;br /&gt;fi&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-pop3d/run&lt;br /&gt;(注：2000000这个比较小，最好是设置大些，以免出现不能载入的问题)&lt;br /&gt;&lt;/strong&gt;#!/bin/sh&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;exec /usr/local/bin/softlimit -m 2000000 \&lt;br /&gt;   /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \&lt;br /&gt;       "$LOCAL" /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2&gt;&amp;amp;1&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-pop3d/log/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \&lt;br /&gt;   /var/log/qmail/pop3d&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;添加了 pop3 部分的完整的 qmailctl 文件&lt;br /&gt;&lt;/strong&gt;#!/bin/sh&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;# Description: the qmail MTA&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin&lt;br /&gt;export PATH&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;case "$1" in&lt;br /&gt; start)&lt;br /&gt;   echo "Starting qmail"&lt;br /&gt;   if svok /service/qmail-send ; then&lt;br /&gt;     svc -u /service/qmail-send /service/qmail-send/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-send supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if svok /service/qmail-smtpd ; then&lt;br /&gt;     svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-smtpd supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if [ -d /var/lock/subsys ]; then&lt;br /&gt;     touch /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   if svok /service/qmail-pop3d ; then&lt;br /&gt;     svc -u /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;   else&lt;br /&gt;     echo qmail-pop3d supervise not running&lt;br /&gt;   fi&lt;br /&gt;   ;;&lt;br /&gt; stop)&lt;br /&gt;   echo "Stopping qmail..."&lt;br /&gt;   echo "  qmail-smtpd"&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "  qmail-send"&lt;br /&gt;   svc -d /service/qmail-send /service/qmail-send/log&lt;br /&gt;   if [ -f /var/lock/subsys/qmail ]; then&lt;br /&gt;     rm /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   echo "  qmail-pop3d"&lt;br /&gt;   svc -d /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;   ;;&lt;br /&gt; stat)&lt;br /&gt;   svstat /service/qmail-send&lt;br /&gt;   svstat /service/qmail-send/log&lt;br /&gt;   svstat /service/qmail-smtpd&lt;br /&gt;   svstat /service/qmail-smtpd/log&lt;br /&gt;   qmail-qstat&lt;br /&gt;   svstat /service/qmail-pop3d&lt;br /&gt;   svstat /service/qmail-pop3d/log&lt;br /&gt;   ;;&lt;br /&gt; doqueue|alrm|flush)&lt;br /&gt;   echo "Flushing timeout table and sending ALRM signal to qmail-send."&lt;br /&gt;   /var/qmail/bin/qmail-tcpok&lt;br /&gt;   svc -a /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; queue)&lt;br /&gt;   qmail-qstat&lt;br /&gt;   qmail-qread&lt;br /&gt;   ;;&lt;br /&gt; reload|hup)&lt;br /&gt;   echo "Sending HUP signal to qmail-send."&lt;br /&gt;   svc -h /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; pause)&lt;br /&gt;   echo "Pausing qmail-send"&lt;br /&gt;   svc -p /service/qmail-send&lt;br /&gt;   echo "Pausing qmail-smtpd"&lt;br /&gt;   svc -p /service/qmail-smtpd&lt;br /&gt;   echo "Pausing qmail-pop3d"&lt;br /&gt;   svc -p /service/qmail-pop3d&lt;br /&gt;   ;;&lt;br /&gt; cont)&lt;br /&gt;   echo "Continuing qmail-send"&lt;br /&gt;   svc -c /service/qmail-send&lt;br /&gt;   echo "Continuing qmail-smtpd"&lt;br /&gt;   svc -c /service/qmail-smtpd&lt;br /&gt;   echo "Continuing qmail-pop3d"&lt;br /&gt;   svc -c /service/qmail-pop3d&lt;br /&gt;   ;;&lt;br /&gt; restart)&lt;br /&gt;   echo "Restarting qmail:"&lt;br /&gt;   echo "* Stopping qmail-smtpd."&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "* Sending qmail-send SIGTERM and restarting."&lt;br /&gt;   svc -t /service/qmail-send /service/qmail-send/log&lt;br /&gt;   echo "* Restarting qmail-smtpd."&lt;br /&gt;   svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "* Restarting qmail-pop3d."&lt;br /&gt;   svc -t /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;   ;;&lt;br /&gt; cdb)&lt;br /&gt;   tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &lt; /etc/tcp.smtp     chmod 644 /etc/tcp.smtp.cdb     echo "Reloaded /etc/tcp.smtp."     ;;   help)     cat &lt;&lt;help stop="" goes="" start="" starts="" connection="" can="" go="" pause="" temporarily="" connections="" nothing="" cont="" continues="" paused="" stat="" displays="" mail="" service="" rebuild="" the="" tcpserver="" cdb="" file="" smtp="" restart="" stops="" a="" term="" restarts="" it="" schedules="" queued="" messages="" for="" immediate="" delivery="" sends="" send="" rereading="" locals="" and="" virtualdomains="" shows="" status="" of="" queue="" alrm="" flush="" doqueue="" hup="" same="" as="" reload="" help="" echo="" 0="" exit="" 1="" esac=""&gt;&lt;/help&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;exit 0&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 ~vpopmail/domains/.quotawarn.msg&lt;/strong&gt;&lt;br /&gt;From: &lt;em&gt;YourCompany&lt;/em&gt; Postmaster &lt;postmaster@&gt;YourCompany.com&gt;&lt;br /&gt;Reply-To: postmaster@ &lt;em&gt;YourCompany&lt;/em&gt;.com&lt;br /&gt;To: &lt;em&gt;YourCompany&lt;/em&gt; User:;&lt;br /&gt;Subject: Mail quota warning&lt;br /&gt;Mime-Version: 1.0&lt;br /&gt;Content-Type: text/plain; charset=iso-8859-1&lt;br /&gt;Content-Transfer-Encoding: 7bit&lt;br /&gt;&lt;/postmaster@&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;Your mailbox on the server is now more than 90% full.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;So that you can continue to receive mail,&lt;br /&gt;you need to remove some messages from your mailbox.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;If you require assistance with this,&lt;br /&gt;please contact our support department :&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;  Email : xxx @ xxx.com&lt;br /&gt; Telphone: xxx xxx xxx&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-pop3d/run （安装了vpopmail后的文件）&lt;br /&gt;（注：如果内存够大，这个-m 的值还是设大些的好。这里设定为10M）&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;exec /usr/local/bin/softlimit -m 10000000 \&lt;br /&gt;/usr/local/bin/tcpserver -v -R -H -l 0 0 pop3 /var/qmail/bin/qmail-popup \&lt;br /&gt;"$LOCAL" ~vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2&gt;&amp;amp;1&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-smtpd/run （安装了vpopmail后的文件）&lt;br /&gt;（注：如果内存够大，这个-m 的值还是设大些的好。这里设定为10M）&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;VPOPMAILUID='id -u vpopmail'&lt;br /&gt;VCHKPWGID='id -g vchkpw'&lt;br /&gt;MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then&lt;br /&gt;   echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in&lt;br /&gt;   echo /var/qmail/supervise/qmail-smtpd/run&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;if [ ! -f /var/qmail/control/rcpthosts ]; then&lt;br /&gt;   echo "No /var/qmail/control/rcpthosts!"&lt;br /&gt;   echo "Refusing to start SMTP listener because it'll create an open relay"&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;exec /usr/local/bin/softlimit -m 20000000 \&lt;br /&gt;/usr/local/bin/tcpserver -H -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \&lt;br /&gt;-u "$VPOPMAILUID" -g "$VCHKPWGID" 0 smtp /var/qmail/bin/qmail-smtpd "$LOCAL" ~vpopmail/bin/vchkpw /bin/true 2&gt;&amp;amp;1&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-7878050897262426791?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/7878050897262426791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=7878050897262426791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/7878050897262426791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/7878050897262426791'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/qmailqmail-qmail-smtpd-auth-ucspi-tcp.html' title='qmail邮件服务器安装配置记录(qmail, qmail-smtpd-auth, ucspi-tcp, daemontools, vpopmail, mysql)'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-6308872478486925960</id><published>2008-07-23T21:55:00.000-07:00</published><updated>2008-07-23T22:55:13.654-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qmail qmail-smtpd-auth ucspi-tcp daemontools vpopmail mysql 安装 配置'/><title type='text'>qmail邮件服务器安装配置记录(qmail, qmail-smtpd-auth, ucspi-tcp, daemontools, vpopmail, mysql)</title><content type='html'>&lt;span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry"&gt;&lt;div id="msgcns!8CE483F458A23E32!510" class="bvMsg"&gt;&lt;p&gt;作者：白东(Albert Ding) &lt;/p&gt;&lt;p&gt;由于更换服务器，因此重建了邮件服务器。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;相关网站：&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail ( &lt;a href="http://www.qmail.org/"&gt;http://www.qmail.org&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;qmail-smtpd-auth&lt;/span&gt; (smtp验证模块)( &lt;a href="http://members.elysium.pl/brush/qmail-smtpd-auth/"&gt;http://members.elysium.pl/brush/qmail-smtpd-auth/&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;ucspi-tcp 和 daemontools ( &lt;a href="http://cr.yp.to/software.html"&gt;http://cr.yp.to/software.html&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;vpopmail ( &lt;a href="http://sourceforge.net/projects/vpopmail/"&gt;http://sourceforge.net/projects/vpopmail/&lt;/a&gt; );&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;下载所需的源文件(如果下载不了，可能是已经有了升级，那么就需要到这些网站上去下载了)： &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail ( &lt;a href="http://www.qmail.org/netqmail-1.05.tar.gz" target="_blank"&gt;http://www.qmail.org/netqmail-1.05.tar.gz&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;qmail-smtpd-auth&lt;/span&gt; ( &lt;a href="http://members.elysium.pl/brush/qmail-smtpd-auth/dist/"&gt;http://members.elysium.pl/brush/qmail-smtpd-auth/dist/&lt;/a&gt; 到这个页面下载最新的版本 ); &lt;/li&gt;&lt;li&gt;ucspi-tcp ( &lt;a href="ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" target="_blank"&gt;ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;daemontools ( &lt;a href="ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz" target="_blank"&gt;ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz&lt;/a&gt; ); &lt;/li&gt;&lt;li&gt;vpopmail ( &lt;a href="http://sourceforge.net/projects/vpopmail/"&gt;http://sourceforge.net/projects/vpopmail/&lt;/a&gt; 到这个页面查看下载最新版本);&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;解压&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail &lt;ol&gt;&lt;li&gt;tar xvfz netqmail-1.05.tar.gz &lt;/li&gt;&lt;li&gt;cd netqmail-1.05 &lt;/li&gt;&lt;li&gt;./collate.sh (1.05后，需要在解压后执行这个文件)&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;qmail-smtpd-auth&lt;/span&gt; &lt;ol&gt;&lt;li&gt;tar xvfz qmail-smtpd-auth-0.31.tar.gz &lt;/li&gt;&lt;li&gt;cp README.auth base64.c base64.h ../netqmail-1.05/netqmail-1.05 &lt;/li&gt;&lt;li&gt;patch -d ../netqmail-1.05/netqmail-1.05 &lt;&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;ucspi-tcp &lt;ol&gt;&lt;li&gt;tar xvfz ucspi-tcp-0.88.tar.gz&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;daemontools &lt;ol&gt;&lt;li&gt;mkdir -p /package &lt;/li&gt;&lt;li&gt;mv daemontools-0.76.tar.gz /package &lt;/li&gt;&lt;li&gt;tar xvfz daemontools-0.76.tar.gz&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;vpopmail &lt;ol&gt;&lt;li&gt;tar xvfz vpopmail-5.4.9.tar.gz&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;安装qmail&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;qmail &lt;ol&gt;&lt;li&gt;mkdir /var/qmail &lt;/li&gt;&lt;li&gt;建立qmail用户和用户组，见 &lt;span style="color:#009900;"&gt;附录1&lt;/span&gt; &lt;/li&gt;&lt;li&gt;make setup check &lt;/li&gt;&lt;li&gt;./config (如果不成功，使用 ./config-fast &lt;em&gt;the.full.hostname &lt;/em&gt;)&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;ucspi-tcp &lt;ol&gt;&lt;li&gt;patch &lt; /usr/src/netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch &lt;/li&gt;&lt;li&gt;make &lt;/li&gt;&lt;li&gt;make setup check&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;daemontools &lt;ol&gt;&lt;li&gt;cd src &lt;/li&gt;&lt;li&gt;patch &lt; /usr/src/netqmail-1.05/other-patches/daemontools-0.76.errno.patch &lt;/li&gt;&lt;li&gt;cd .. &lt;/li&gt;&lt;li&gt;package/install&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;设置qmail &lt;/strong&gt;(&lt;span style="color:#ff0000;"&gt;请注意在安装vpopmail前的设置和附录中的文件，和在安装vpopmail后，会有所变化&lt;/span&gt;) &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件：/var/qmail/rc，见&lt;span style="color:#009900;"&gt;附录2&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;chmod 755 /var/qmail/rc&lt;/span&gt; &lt;/li&gt;&lt;li&gt;mkdir /var/log/qmail &lt;/li&gt;&lt;li&gt;echo ./Mailbox &gt;/var/qmail/control/defaultdelivery &lt;/li&gt;&lt;li&gt;建立启动文件： &lt;ol&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;/var/qmail/bin/qmailctl (qmail运行控制文件)见&lt;span style="color:#009900;"&gt;附录3&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/bin/qmailctl (赋可执行权限) &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/bin/qmailctl /usr/bin (在bin中建立链接，运行时不用输入完整路径) &lt;/li&gt;&lt;li&gt;mkdir -p /var/qmail/supervise/qmail-send/log (发送日志执行文件目录) &lt;/li&gt;&lt;li&gt;mkdir -p /var/qmail/supervise/qmail-smtpd/log  (smtp登陆日志执行目录) &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件 /var/qmail/supervise/qmail-send/run (启动发送邮件文件)见&lt;span style="color:#009900;"&gt;附录4&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件 /var/qmail/supervise/qmail-send/log/run (发送日志运行文件) 见&lt;span style="color:#009900;"&gt;附录5&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;建立文件 /var/qmail/supervise/qmail-smtpd/run (smtp进程启动文件) 见&lt;span style="color:#009900;"&gt;附录6&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;echo 20 &gt; /var/qmail/control/concurrencyincoming (并发数量)&lt;/span&gt; &lt;/li&gt;&lt;li&gt;chmod 644 /var/qmail/control/concurrencyincoming (改变属性) &lt;/li&gt;&lt;li&gt;建立文件 &lt;span style="font-family:Courier New;"&gt;/var/qmail/supervise/qmail-smtpd/log/run (smtp日志执行文件) 见&lt;span style="color:#009933;"&gt;附录7&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-send/run (赋予可执行权限) &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-send/log/run &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-smtpd/run &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-smtpd/log/run &lt;/li&gt;&lt;li&gt;mkdir -p /var/log/qmail/smtpd (建立smtp登陆日志文件保存目录) &lt;/li&gt;&lt;li&gt;chown qmaill /var/log/qmail /var/log/qmail/smtpd (改变目录所有者) &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service (建立链接，以便守护进程启动它们) &lt;/li&gt;&lt;li&gt;echo '127.:allow,RELAYCLIENT=""' &gt;&gt;/etc/tcp.smtp (建立smtp允许规则) &lt;/li&gt;&lt;li&gt;qmailctl cdb (为smtp重建tcpserver cdb文件) &lt;/li&gt;&lt;li&gt;mkdir -p /var/qmail/supervise/qmail-pop3d/log (建立pop3日志执行文件目录) &lt;/li&gt;&lt;li&gt;建立文件 /var/qmail/supervise/qmail-pop3d/run (pop3启动文件) 见&lt;span style="color:#009900;"&gt;附录9&lt;/span&gt; &lt;/li&gt;&lt;li&gt;建立文件 /var/qmail/supervise/qmail-pop3d/log/run (pop3日志执行文件) 见&lt;span style="color:#009900;"&gt;附录10&lt;/span&gt; &lt;/li&gt;&lt;li&gt;mkdir /var/log/qmail/pop3d (建立pop3日志保存目录) &lt;/li&gt;&lt;li&gt;chown qmaill /var/log/qmail/pop3d (改变目录所有者) &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-pop3d/run (赋予run可执行权限) &lt;/li&gt;&lt;li&gt;chmod 755 /var/qmail/supervise/qmail-pop3d/log/run &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/supervise/qmail-pop3d /service (建立链接，以便守护进程启动它) &lt;/li&gt;&lt;li&gt;修改 qmailctl 文件内容，添加了pop3部分的完整内容 见&lt;span style="color:#009900;"&gt;附录11&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;删除sendmail，及建立链接到qmail &lt;ol&gt;&lt;li&gt;mv /usr/lib/sendmail /usr/lib/sendmail.old                  &lt;i&gt;# ignore errors&lt;/i&gt; &lt;/li&gt;&lt;li&gt;mv /usr/sbin/sendmail /usr/sbin/sendmail.old                &lt;i&gt;# ignore errors&lt;/i&gt; &lt;/li&gt;&lt;li&gt;chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old        &lt;i&gt;# ignore errors&lt;/i&gt; &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/bin/sendmail /usr/lib &lt;/li&gt;&lt;li&gt;ln -s /var/qmail/bin/sendmail /usr/sbin&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;建立系统级别名 &lt;ol&gt;&lt;li&gt;echo &lt;em&gt;your-name&lt;/em&gt; &gt; /var/qmail/alias/.qmail-root &lt;/li&gt;&lt;li&gt;echo &lt;em&gt;your-name&lt;/em&gt; &gt; /var/qmail/alias/.qmail-postmaster &lt;/li&gt;&lt;li&gt;ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon &lt;/li&gt;&lt;li&gt;chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;启动qmail &lt;/p&gt;&lt;ol&gt;&lt;li&gt;# qmailctl start&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;测试qmail &lt;/p&gt;&lt;ol&gt;&lt;li&gt;# qmailctl stat 执行后应看到以下信息：&lt;br /&gt;/service/qmail-send: up (pid 30303) 187 seconds&lt;br /&gt;/service/qmail-send/log: up (pid 30304) 187 seconds&lt;br /&gt;/service/qmail-smtpd: up (pid 30305) 187 seconds&lt;br /&gt;/service/qmail-smtpd/log: up (pid 30308) 187 seconds&lt;br /&gt;messages in queue: 0&lt;br /&gt;messages in queue but not yet preprocessed: 0 &lt;/li&gt;&lt;li&gt;建立文件 inst_check，见&lt;span style="color:#009933;"&gt;附录8&lt;/span&gt; &lt;/li&gt;&lt;li&gt;执行命令：sh inst_check，如果成功，则有如下提示：&lt;br /&gt;Congratulations, your LWQ installation looks good! &lt;/li&gt;&lt;li&gt;ps -efl | grep "service errors" | grep -v grep 会看到类似下面的信息：&lt;br /&gt;4 S root      3878  3866  0  85   0 -   305 pipe_w 15:14 ?        00:00:00 readproctitle service errors: ........... &lt;/li&gt;&lt;li&gt;如果“......."后面没有内容，那就说明正确，如果有内容，则是错误提示 &lt;/li&gt;&lt;li&gt;添加了 pop3 部分的 qmailctl 查看的状态是：&lt;br /&gt;/service/qmail-send: up (pid 4119) 513 seconds&lt;br /&gt;/service/qmail-send/log: up (pid 4132) 513 seconds&lt;br /&gt;/service/qmail-smtpd: up (pid 4120) 513 seconds&lt;br /&gt;/service/qmail-smtpd/log: up (pid 4133) 513 seconds&lt;br /&gt;messages in queue: 0&lt;br /&gt;messages in queue but not yet preprocessed: 0&lt;br /&gt;/service/qmail-pop3d: up (pid 5176) 1 seconds&lt;br /&gt;/service/qmail-pop3d/log: up (pid 4134) 513 seconds &lt;/li&gt;&lt;li&gt;到这里qmail安装成功，下面安装设置vpopmail&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;vpopmail 安装及配置 &lt;/p&gt;&lt;ol&gt;&lt;li&gt;准备 &lt;ol&gt;&lt;li&gt;新建用户 vpopmail 和 用户组 vchkpw ，大多数用都会把 uid 和 gid 设定为89，这个其实无所谓，其实脚本里完全可以不需要这个，加个获得uid和gid的代码就可以了。所以这里说uid和gid，你不用去太关心。 &lt;/li&gt;&lt;li&gt;而你要关心的是 vpopmail 这个用户的用户根目录设定在哪里？ &lt;ol&gt;&lt;li&gt;如果你已经为保存邮件而设定了一个分区，那么就把vpopmail的用户根目录设定为这个分区。 &lt;/li&gt;&lt;li&gt;如果没有，建议设定到一个比较大的相对独立的分区，如果可以，不要设定在home分区，因为保存邮件的分区随着邮件服务器运行会不断的产生大量磁盘碎片，这会非常影响home分区中其它用户的使用的性能。&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;安装 &lt;ol&gt;&lt;li&gt;添加用户vpopmail和用户组vchkpw，当然，可以使用任何添加用户和用户组的方法新建它们，这里给出的是命令行方式： &lt;ol&gt;&lt;li&gt;groupadd -g 89 vchkpw &lt;/li&gt;&lt;li&gt;useradd -g vchkpw -u 89 -d /home/vpopmail vpopmail&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;mkdir ~vpopmail/etc (建立etc目录) &lt;/li&gt;&lt;li&gt;chown vpopmail.vchkpw ~vpopmail/etc (改变所属用户和组) &lt;/li&gt;&lt;li&gt;echo "localhost|0|&lt;i&gt;&lt;span style="color:#ff0000;"&gt;vpopmailuser&lt;/span&gt;&lt;/i&gt;|&lt;i&gt;&lt;span style="color:#ff0000;"&gt;vpoppasswd&lt;/span&gt;&lt;/i&gt;|vpopmail" &gt; ~vpopmail/etc/vpopmail.mysql (建立vpopmail链接MySQL数据库的配置文件) &lt;/li&gt;&lt;li&gt;chown vpopmail.vchkpw ~vpopmail/etc/vpopmail.mysql (改变所属用户和组) &lt;/li&gt;&lt;li&gt;chmod 640 ~vpopmail/etc/vpopmail.mysql (修改文件属性) &lt;/li&gt;&lt;li&gt;在 MySQL 中建立一个用户：vpopmail，不要给这个用户任何权限 &lt;/li&gt;&lt;li&gt;在 MysQL 中建立一个数据库：vpopmail &lt;/li&gt;&lt;li&gt;在 MySQL 中设定数据库权限，将数据库vpopmail只运行vpopmail这个用户访问，权限设定为：select,insert,update,delete,create,drop 。 &lt;/li&gt;&lt;li&gt;配置vpopmail (配置选项扼要解释：关闭了登陆pop3后可发送smtp的功能，因为我们的qmail安装了smtp验证；关闭了邮箱容量限制；校验模块使用MySQL；打开别名功能)&lt;br /&gt;./configure --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --disable-many-domains --enable-auth-logging --enable-sql-logging --enable-valias --disable-mysql-limits &lt;/li&gt;&lt;li&gt;编译和安装&lt;br /&gt;make&lt;br /&gt;make install-strip &lt;/li&gt;&lt;li&gt;如果你想设定邮箱容量限制，那么修改 vlimits.default：&lt;br /&gt;vi ~vpopmail/etc/vlimits.default&lt;br /&gt;# in particular set the default mailbox size to be something reasonable eg 20Mb&lt;br /&gt;default_quota 20971520 (修改这个内容，默认的是20M) &lt;/li&gt;&lt;li&gt;设定默认域（这个问题，有的人说没必要，我认为有必要，这样对主域来说，在客户端就不需要在用户名处输入全部邮件地址了。）&lt;br /&gt;echo "&lt;span style="color:#ff0066;"&gt;yourdomain.com&lt;/span&gt;" &gt; ~vpopmail/etc/defaultdomain &lt;/li&gt;&lt;li&gt;设定邮箱内邮件总容量达到邮箱限制的90%的提示内容文件&lt;br /&gt;~vpopmail/domains/.quotawarn.msg 见&lt;span style="color:#009900;"&gt;附录12&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="color:#009900;"&gt;&lt;span style="color:#000000;"&gt;设定邮箱已满的提示信息内容（写中文也可以，不过如果客户端不一定能正常显示，所以还是写英文吧）&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;echo "Message rejected. Not enough storage space in user's mailbox to accept message." &gt; ~vpopmail/domains/.over-quota.msg&lt;/span&gt; &lt;/li&gt;&lt;li&gt;好了vpopmail安装和设定好了。现在要修改 qmail pop3启动内容。就是让qmail的pop3部分使用vpopmail的校验，当然也需要修改smtp部分的内容，是让qmail的smtp验证使用vpopmail的校验。 &lt;/li&gt;&lt;li&gt;修改文件 /var/qmail/supervise/qmail-pop3d/run 见&lt;span style="color:#009900;"&gt;附录13&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="color:#009900;"&gt;&lt;span style="color:#000000;"&gt;修改文件 /var/qmail/supervise/qmail-smtpd/run 见&lt;/span&gt;附录14&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="color:#000000;"&gt;重新启动qmail&lt;br /&gt;qmailctl restart&lt;/span&gt; &lt;/li&gt;&lt;li&gt;用telnet方式来测试： &lt;ol&gt;&lt;li&gt;测试 pop3 的命令(&lt;span style="color:#ff9900;"&gt;橙色部分为系统显示内容&lt;/span&gt;)：&lt;br /&gt;# telnet localhost 110&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;+OK &lt;/span&gt;&lt;span style="color:#ff9900;"&gt;4047.1110877290@&lt;em&gt;your-domain-address&lt;/em&gt;&lt;/span&gt;&lt;span style="color:#ff9900;"&gt;&lt;br /&gt;&lt;/span&gt;user &lt;em&gt;your-email-user-name&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;+OK&lt;/span&gt;&lt;br /&gt;pass &lt;em&gt;your-email-user's-password&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;+OK&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;如果输入password后显示"+OK"那就表示正确！&lt;/span&gt; &lt;/li&gt;&lt;li&gt;测试 smtp 的命令(&lt;span style="color:#ff9900;"&gt;橙色部分为系统显示内容&lt;/span&gt;)：&lt;br /&gt;# telnet localhost 25&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;220 &lt;em&gt;your-domain-address&lt;/em&gt; ESMTP&lt;br /&gt;&lt;/span&gt;HELO&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;250 &lt;em&gt;your-domain-address&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;MAIL FROM:&lt;em&gt;user&lt;/em&gt;@ &lt;em&gt;your-domain-address&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;250 ok&lt;/span&gt;&lt;br /&gt;RCPT TO:&lt;em&gt;receive-user&lt;/em&gt;@ &lt;em&gt;receive-user-domain-address&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;250 ok&lt;br /&gt;&lt;/span&gt;DATA&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;354 go ahead&lt;/span&gt;&lt;br /&gt;Subject: test message&lt;br /&gt;&lt;br /&gt;This is a test message&lt;br /&gt;.&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;250 ok 1110872613 qp 22398&lt;/span&gt; &lt;/li&gt;&lt;li&gt;用户邮件客户端软件测试。&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;维护 &lt;ol&gt;&lt;li&gt;添加域：~vpopmail/bin/vadddomain &lt;em&gt;your-domain-name&lt;/em&gt; &lt;/li&gt;&lt;li&gt;添加用户邮箱：~vpopmail/bin/vadduser &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;删除用户邮箱：~vpopmail/bin/vdeluser &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;删除域：~vpopmail/bin/vdeldomain &lt;em&gt;your-domain-name&lt;/em&gt; &lt;/li&gt;&lt;li&gt;修改用户邮箱的密码：~vpopmail/bin/vpasswd &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;查看用户邮箱信息：~vpopmail/bin/vuserinfo &lt;a href="mailto:username@your-domain-name.com"&gt;username@your-domain-name.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;其它更多的命令，需要查看帮助中的解释和说明&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;有可能遇到的问题：&lt;/strong&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Outlook提示：Server Error: 553, Error Number: 0x800CCC79 错误信息。客户端无法收发信，总是提示用户名和密码错误。&lt;br /&gt;&lt;strong&gt;原因：&lt;/strong&gt;这个很可能是由于softlimit的-m的值过小，导致：vchkpw:error while loading shared libraries:libc.so.6: failed to map segment from shared...。&lt;br /&gt;&lt;strong&gt;解决办法：&lt;/strong&gt;将smtp启动脚本中的softlimit -m 值设置大些。例如设定成4000000（4M）或者更大。 &lt;/li&gt;&lt;li&gt;如 果qmail正确，确总是出现用户名密码错误，这多部分说明是vpopmail验证部分出问题了，仔细检查启动脚本中是否有错误，例如：你可能设定 vpopmail用户的用户根目录不是/home/vpopmail，而在脚本中写的是/home/vpopmail，如果是这样，建议你在绝大多数情况 下，写成 ~vpopmail。 &lt;/li&gt;&lt;li&gt;Vpopmail 编译安装后，数据库vpopmail中没有增加表等内容。这说明你的MySQL安装有问题，或者是 share模块安装的不正确，解决办法： &lt;ol&gt;&lt;li&gt;使用你设定的MySQL中的vpopmail账号进行登陆MySQL以及访问vpopmail数据库的尝试，如果成功，则是MySQL share部分的问题，重新安装它。 &lt;/li&gt;&lt;li&gt;如果使用该账号不能访问成功，说明MySQL中账号或权限设定有问题。&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;============&lt;br /&gt;||       &lt;strong&gt;附    录     &lt;/strong&gt;||&lt;br /&gt;============ &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;用于建立qmail用户和用户组的脚本(文件名：IDS) &lt;/strong&gt;(改变权限：chmod 700 IDS)&lt;br /&gt;groupadd nofiles&lt;br /&gt;useradd -g nofiles -d /var/qmail/alias alias&lt;br /&gt;useradd -g nofiles -d /var/qmail qmaild&lt;br /&gt;useradd -g nofiles -d /var/qmail qmaill&lt;br /&gt;useradd -g nofiles -d /var/qmail qmailp&lt;br /&gt;groupadd qmail&lt;br /&gt;useradd -g qmail -d /var/qmail qmailq&lt;br /&gt;useradd -g qmail -d /var/qmail qmailr&lt;br /&gt;useradd -g qmail -d /var/qmail qmails &lt;/li&gt;&lt;li&gt;&lt;strong&gt;文件 /var/qmail/rc&lt;br /&gt;&lt;/strong&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# Using stdout for logging&lt;br /&gt;# Using control/defaultdelivery from qmail-local to deliver messages by default&lt;br /&gt;&lt;br /&gt;exec env - PATH="/var/qmail/bin:$PATH" \&lt;br /&gt;qmail-start "`cat /var/qmail/control/defaultdelivery`" &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/bin/qmailctl&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# description: the qmail MTA&lt;br /&gt;&lt;br /&gt;PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin&lt;br /&gt;export PATH&lt;br /&gt;&lt;br /&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt; start)&lt;br /&gt;   echo "Starting qmail"&lt;br /&gt;   if svok /service/qmail-send ; then&lt;br /&gt;     svc -u /service/qmail-send /service/qmail-send/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-send supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if svok /service/qmail-smtpd ; then&lt;br /&gt;     svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-smtpd supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if [ -d /var/lock/subsys ]; then&lt;br /&gt;     touch /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   ;;&lt;br /&gt; stop)&lt;br /&gt;   echo "Stopping qmail..."&lt;br /&gt;   echo "  qmail-smtpd"&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "  qmail-send"&lt;br /&gt;   svc -d /service/qmail-send /service/qmail-send/log&lt;br /&gt;   if [ -f /var/lock/subsys/qmail ]; then&lt;br /&gt;     rm /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   ;;&lt;br /&gt; stat)&lt;br /&gt;   svstat /service/qmail-send&lt;br /&gt;   svstat /service/qmail-send/log&lt;br /&gt;   svstat /service/qmail-smtpd&lt;br /&gt;   svstat /service/qmail-smtpd/log&lt;br /&gt;   qmail-qstat&lt;br /&gt;   ;;&lt;br /&gt; doqueue|alrm|flush)&lt;br /&gt;   echo "Flushing timeout table and sending ALRM signal to qmail-send."&lt;br /&gt;   /var/qmail/bin/qmail-tcpok&lt;br /&gt;   svc -a /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; queue)&lt;br /&gt;   qmail-qstat&lt;br /&gt;   qmail-qread&lt;br /&gt;   ;;&lt;br /&gt; reload|hup)&lt;br /&gt;   echo "Sending HUP signal to qmail-send."&lt;br /&gt;   svc -h /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; pause)&lt;br /&gt;   echo "Pausing qmail-send"&lt;br /&gt;   svc -p /service/qmail-send&lt;br /&gt;   echo "Pausing qmail-smtpd"&lt;br /&gt;   svc -p /service/qmail-smtpd&lt;br /&gt;   ;;&lt;br /&gt; cont)&lt;br /&gt;   echo "Continuing qmail-send"&lt;br /&gt;   svc -c /service/qmail-send&lt;br /&gt;   echo "Continuing qmail-smtpd"&lt;br /&gt;   svc -c /service/qmail-smtpd&lt;br /&gt;   ;;&lt;br /&gt; restart)&lt;br /&gt;   echo "Restarting qmail:"&lt;br /&gt;   echo "* Stopping qmail-smtpd."&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "* Sending qmail-send SIGTERM and restarting."&lt;br /&gt;   svc -t /service/qmail-send /service/qmail-send/log&lt;br /&gt;   echo "* Restarting qmail-smtpd."&lt;br /&gt;   svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   ;;&lt;br /&gt; cdb)&lt;br /&gt;   tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &lt; /etc/tcp.smtp     chmod 644 /etc/tcp.smtp.cdb     echo "Reloaded /etc/tcp.smtp."     ;;   help)     cat &lt;&lt;help stop="" goes="" start="" starts="" connection="" can="" go="" pause="" temporarily="" connections="" nothing="" cont="" continues="" paused="" stat="" displays="" mail="" service="" rebuild="" the="" tcpserver="" cdb="" file="" smtp="" restart="" stops="" a="" term="" restarts="" it="" schedules="" queued="" messages="" for="" immediate="" delivery="" sends="" send="" rereading="" locals="" and="" virtualdomains="" shows="" status="" of="" queue="" alrm="" flush="" doqueue="" hup="" same="" as="" reload="" help="" echo="" 1="" esac="" exit="" 0=""&gt;&lt;/help&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-send/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /var/qmail/rc&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-send/log/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-smtpd/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then&lt;br /&gt;   echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in&lt;br /&gt;   echo /var/qmail/supervise/qmail-smtpd/run&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f /var/qmail/control/rcpthosts ]; then&lt;br /&gt;   echo "No /var/qmail/control/rcpthosts!"&lt;br /&gt;   echo "Refusing to start SMTP listener because it'll create an open relay"&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;exec /usr/local/bin/softlimit -m 2000000 \&lt;br /&gt;   /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \&lt;br /&gt;       -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2&gt;&amp;amp;1&lt;br /&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-smtpd/log/run&lt;br /&gt;&lt;/strong&gt;#!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 inst_check&lt;br /&gt;&lt;/strong&gt;# Dave Sill, 2003-11-10&lt;br /&gt;# &lt;a href="http://lifewithqmail.org/inst_check"&gt;http://lifewithqmail.org/inst_check&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;# set to n if you're not running a pop3 server, y if you are&lt;br /&gt;CHECKPOP=n&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;QMHOME=/var/qmail&lt;br /&gt;LBIN=/usr/local/bin&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;OK=1&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ $# -eq 1 ]; then&lt;br /&gt; if [ "$1" = "-v" ]; then&lt;br /&gt;   VERB=y&lt;br /&gt; else&lt;br /&gt;   VERB=n&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -d $QMHOME ]; then&lt;br /&gt; echo "! Couldn't find qmail's home directory, $QMHOME!"&lt;br /&gt;else&lt;br /&gt; if [ "$VERB" = y ]; then&lt;br /&gt;   echo "$QMHOME exists"&lt;br /&gt; fi&lt;br /&gt; for i in alias bin boot control doc man queue supervise users; do&lt;br /&gt;   if [ ! -d $QMHOME/$i ]; then&lt;br /&gt;     echo "! Couldn't find $QMHOME/$i!"&lt;br /&gt;     OK=0&lt;br /&gt;   elif [ "$VERB" = y ]; then&lt;br /&gt;     echo "$QMHOME/$i exists"&lt;br /&gt;   fi&lt;br /&gt; done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;  if [ ! -f $QMHOME/rc ]; then&lt;br /&gt;   echo "! $QMHOME/rc is missing"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ ! -x $QMHOME/rc ]; then&lt;br /&gt;   echo "! $QMHOME/rc is not executable"&lt;br /&gt;   echo "...try: chmod 755 $QMHOME/rc"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ `head -1 $QMHOME/rc|cat -vet` != '#!/bin/sh$' ]; then&lt;br /&gt;   echo "! $QMHOME/rc has bad magic cookie"&lt;br /&gt;   echo "...try: dos2unix $QMHOME/rc"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$QMHOME/rc is executable and has a valid magic cookie"&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in alias qmaild qmaill qmailp qmailq qmailr qmails; do&lt;br /&gt; grep "^$i:" /etc/passwd &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find $i user in /etc/passwd"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i user exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in qmail nofiles; do&lt;br /&gt; grep "^$i:" /etc/group &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find $i group in /etc/group"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i group exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in tcprules tcpserver; do&lt;br /&gt; if [ ! -x $LBIN/$i ]; then&lt;br /&gt;   echo "! Couldn't find $LBIN/$i from ucspi-tcp"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i from ucspi-tcp is installed"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in multilog softlimit setuidgid supervise svok svscan tai64nlocal; do&lt;br /&gt; if [ ! -x $LBIN/$i ]; then&lt;br /&gt;   echo "! Couldn't find $LBIN/$i from daemontools"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i from daemontools is installed"&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -d /service ]; then&lt;br /&gt; echo "! /service directory is missing"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/service directory exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ -f /etc/inittab ]; then&lt;br /&gt; grep "^SV" /etc/inittab &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find SV entry in inittab"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "svscan /service is configured to run via /etc/inittab"&lt;br /&gt; fi&lt;br /&gt; PS="ps -ef"&lt;br /&gt;else&lt;br /&gt; grep "svscanboot" /etc/rc.local &gt;/dev/null&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;   echo "! Couldn't find 'csh -cf '/command/svscanboot &amp;amp;' in /etc/rc.local"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "/command/svscanboot is configured to run via /etc/rc.local"&lt;br /&gt; fi&lt;br /&gt; PS="ps -waux"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;SVRUN=`$PS | grep "svscan /service" | grep -v grep`&lt;br /&gt;if [ -z "$SVRUN" ]; then&lt;br /&gt; echo "'! svscan /service' doesn't seem to be running"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "svscan /service is running"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f $QMHOME/control/defaultdelivery ]; then&lt;br /&gt; echo "! Couldn't find $QMHOME/control/defaultdelivery"&lt;br /&gt; OK=0&lt;br /&gt;elif [ ! -s $QMHOME/control/defaultdelivery ]; then&lt;br /&gt; echo "! $QMHOME/control/defaultdelivery is empty"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "$QMHOME/control/defaultdelivery looks OK"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f $QMHOME/bin/qmailctl ]; then&lt;br /&gt; echo "! $QMHOME/bin/qmailctl is missing"&lt;br /&gt; OK=0&lt;br /&gt;elif [ ! -s $QMHOME/bin/qmailctl ]; then&lt;br /&gt; echo "! $QMHOME/bin/qmailctl is empty"&lt;br /&gt; OK=0&lt;br /&gt;elif [ `head -1 $QMHOME/bin/qmailctl|cat -vet` != '#!/bin/sh$' ]; then&lt;br /&gt;   echo "! $QMHOME/bin/qmailctl has bad magic cookie"&lt;br /&gt;   echo "...try: dos2unix $QMHOME/bin/qmailctl"&lt;br /&gt;   OK=0&lt;br /&gt;elif [ ! -x $QMHOME/bin/qmailctl ]; then&lt;br /&gt; echo "! $QMHOME/bin/qmailctl is not executable"&lt;br /&gt; echo "...try: chmod 755 $QMHOME/bin/qmailctl"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "$QMHOME/bin/qmailctl looks OK"&lt;br /&gt;fi&lt;br /&gt;if [ ! -L /usr/bin/qmailctl ]; then&lt;br /&gt; echo "! /usr/bin/qmailctl is missing"&lt;br /&gt; echo "...try: ln -s $QMHOME/bin/qmailctl /usr/bin"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/usr/bin/qmailctl exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;SVCDIRS="qmail-send qmail-send/log qmail-smtpd qmail-smtpd/log"&lt;br /&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; SVCDIRS="$SVCDIRS qmail-pop3d qmail-pop3d/log"&lt;br /&gt;fi&lt;br /&gt;for i in $SVCDIRS; do&lt;br /&gt; if [ ! -f $QMHOME/supervise/$i/run ]; then&lt;br /&gt;   echo "! $QMHOME/supervise/$i/run file is missing"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ `head -1 $QMHOME/supervise/$i/run|cat -vet` != '#!/bin/sh$' ]; then&lt;br /&gt;   echo "! $QMHOME/supervise/$i/run has bad magic cookie"&lt;br /&gt;   echo "...try: dos2unix $QMHOME/supervise/$i/run"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ ! -x $QMHOME/supervise/$i/run ]; then&lt;br /&gt;   echo "! $QMHOME/supervise/$i/run file is not executable"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$QMHOME/supervise/$i/run looks OK"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f $QMHOME/control/concurrencyincoming ]; then&lt;br /&gt; echo "! $QMHOME/control/concurrencyincoming is missing"&lt;br /&gt; echo "...try: echo 20 &gt;$QMHOME/control/concurrencyincoming"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "$QMHOME/control/concurrencyincoming looks OK"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;LOGDIRS="/var/log/qmail /var/log/qmail/smtpd"&lt;br /&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; LOGDIRS="$LOGDIRS /var/log/qmail/pop3d"&lt;br /&gt;fi&lt;br /&gt;for i in $LOGDIRS; do&lt;br /&gt; if [ ! -d $i ]; then&lt;br /&gt;   echo "! $i is missing"&lt;br /&gt;   echo "...try: mkdir -p $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "`ls -ld $i|awk '{print $3}'`" != "qmaill" ]; then&lt;br /&gt;   echo "! $i has wrong owner, should be qmaill"&lt;br /&gt;   echo "...try: chown qmaill $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "`ls -ld $i|awk '{print $1}'`" != "drwxr-xr-x" ]; then&lt;br /&gt;   echo "! $i has wrong mode, should be 755"&lt;br /&gt;   echo "...try: chmod 755 $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i looks OK"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;SVCLINKS="/service/qmail-send /service/qmail-smtpd"&lt;br /&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; SVCLINKS="$SVCLINKS /service/qmail-pop3d"&lt;br /&gt;fi&lt;br /&gt;for i in $SVCLINKS; do&lt;br /&gt; if [ ! -L $i ]; then&lt;br /&gt;   echo "! $i is missing"&lt;br /&gt;   echo "...try: ln -s $QMHOME$i $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f /etc/tcp.smtp ]; then&lt;br /&gt; echo "! /etc/tcp.smtp is missing"&lt;br /&gt; echo "...try: echo '127.:allow,RELAYCLIENT=\"\"' &gt;&gt;/etc/tcp.smtp"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/etc/tcp.smtp exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ ! -f /etc/tcp.smtp.cdb ]; then&lt;br /&gt; echo "! /etc/tcp.smtp.cdb is missing"&lt;br /&gt; echo "...try: $QMHOME/bin/qmailctl cdb"&lt;br /&gt; OK=0&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "/etc/tcp.smtp.cdb exists"&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;AHOME=`grep "^alias:" /etc/passwd | awk -F: '{print $6}'`&lt;br /&gt;if [ -z "$AHOME" ]; then&lt;br /&gt; echo "! Couldn't find user alias's home directory"&lt;br /&gt; OK=0&lt;br /&gt;else&lt;br /&gt; for i in root postmaster mailer-daemon; do&lt;br /&gt;   if [ ! -f $AHOME/.qmail-$i ]; then&lt;br /&gt;     echo "! Alias for $i is missing"&lt;br /&gt;     echo "...try: echo me &gt;$AHOME/.qmail-$i"&lt;br /&gt;     OK=0&lt;br /&gt;   elif [ "$VERB" = y ]; then&lt;br /&gt;     echo "$i alias exists"&lt;br /&gt;   fi&lt;br /&gt; done&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if netstat -a | grep smtp | grep -i listen &gt;/dev/null; then&lt;br /&gt; if $PS | grep sendmail | grep -v grep &gt;/dev/null; then&lt;br /&gt;   echo "! Sendmail is still running"&lt;br /&gt;   echo "...try: $RCDIR/init.d/sendmail stop"&lt;br /&gt;   OK=0&lt;br /&gt; elif $LBIN/svok /service/qmail-smtpd; then&lt;br /&gt;   if [ "$VERB" = y ]; then&lt;br /&gt;     echo "/service/qmail-smtpd is running"&lt;br /&gt;   fi&lt;br /&gt; else&lt;br /&gt;   echo "! Something is listening on port 25 (not tcpserver/qmail-smtpd)"&lt;br /&gt;   echo "...try: disabling current MTA"&lt;br /&gt;   OK=0&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ "$CHECKPOP" = "y" ]; then&lt;br /&gt; if netstat -a | grep pop | grep -i listen &gt;/dev/null; then&lt;br /&gt;   if $LBIN/svok /service/qmail-pop3d; then&lt;br /&gt;     if [ "$VERB" = y ]; then&lt;br /&gt;       echo "/service/qmail-pop3d is running"&lt;br /&gt;     fi&lt;br /&gt;   else&lt;br /&gt;     echo "! Something is listening on port 110 (not tcpserver/qmail-pop3d)"&lt;br /&gt;     echo "...try: disabling other POP server"&lt;br /&gt;     OK=0&lt;br /&gt;   fi&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;for i in /usr/lib/sendmail /usr/sbin/sendmail; do&lt;br /&gt; if [ -f $i -a ! -L $i ]; then&lt;br /&gt;   echo "! $i is a file, should be a link"&lt;br /&gt;   echo "...try: uninstalling current MTA or: mv $i $i.old; ln -s $QMHOME/bin/sendmail $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ ! -f $i ];then&lt;br /&gt;   echo "! $i is missing"&lt;br /&gt;   echo "...try: ln -s $QMHOME/bin/sendmail $i"&lt;br /&gt;   OK=0&lt;br /&gt; elif [ "$VERB" = y ]; then&lt;br /&gt;   echo "$i exists"&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;if [ $OK -eq 1 ]; then&lt;br /&gt; echo "Congratulations, your LWQ installation looks good!"&lt;br /&gt;elif [ "$VERB" = y ]; then&lt;br /&gt; echo "! Potential problems were found with your LWQ installation"&lt;br /&gt;fi&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-pop3d/run&lt;br /&gt;(注：2000000这个比较小，最好是设置大些，以免出现不能载入的问题)&lt;br /&gt;&lt;/strong&gt;#!/bin/sh&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;exec /usr/local/bin/softlimit -m 2000000 \&lt;br /&gt;   /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \&lt;br /&gt;       "$LOCAL" /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2&gt;&amp;amp;1&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-pop3d/log/run&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \&lt;br /&gt;   /var/log/qmail/pop3d&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;添加了 pop3 部分的完整的 qmailctl 文件&lt;br /&gt;&lt;/strong&gt;#!/bin/sh&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;# Description: the qmail MTA&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin&lt;br /&gt;export PATH&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;case "$1" in&lt;br /&gt; start)&lt;br /&gt;   echo "Starting qmail"&lt;br /&gt;   if svok /service/qmail-send ; then&lt;br /&gt;     svc -u /service/qmail-send /service/qmail-send/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-send supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if svok /service/qmail-smtpd ; then&lt;br /&gt;     svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   else&lt;br /&gt;     echo "qmail-smtpd supervise not running"&lt;br /&gt;   fi&lt;br /&gt;   if [ -d /var/lock/subsys ]; then&lt;br /&gt;     touch /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   if svok /service/qmail-pop3d ; then&lt;br /&gt;     svc -u /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;   else&lt;br /&gt;     echo qmail-pop3d supervise not running&lt;br /&gt;   fi&lt;br /&gt;   ;;&lt;br /&gt; stop)&lt;br /&gt;   echo "Stopping qmail..."&lt;br /&gt;   echo "  qmail-smtpd"&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "  qmail-send"&lt;br /&gt;   svc -d /service/qmail-send /service/qmail-send/log&lt;br /&gt;   if [ -f /var/lock/subsys/qmail ]; then&lt;br /&gt;     rm /var/lock/subsys/qmail&lt;br /&gt;   fi&lt;br /&gt;   echo "  qmail-pop3d"&lt;br /&gt;   svc -d /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;   ;;&lt;br /&gt; stat)&lt;br /&gt;   svstat /service/qmail-send&lt;br /&gt;   svstat /service/qmail-send/log&lt;br /&gt;   svstat /service/qmail-smtpd&lt;br /&gt;   svstat /service/qmail-smtpd/log&lt;br /&gt;   qmail-qstat&lt;br /&gt;   svstat /service/qmail-pop3d&lt;br /&gt;   svstat /service/qmail-pop3d/log&lt;br /&gt;   ;;&lt;br /&gt; doqueue|alrm|flush)&lt;br /&gt;   echo "Flushing timeout table and sending ALRM signal to qmail-send."&lt;br /&gt;   /var/qmail/bin/qmail-tcpok&lt;br /&gt;   svc -a /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; queue)&lt;br /&gt;   qmail-qstat&lt;br /&gt;   qmail-qread&lt;br /&gt;   ;;&lt;br /&gt; reload|hup)&lt;br /&gt;   echo "Sending HUP signal to qmail-send."&lt;br /&gt;   svc -h /service/qmail-send&lt;br /&gt;   ;;&lt;br /&gt; pause)&lt;br /&gt;   echo "Pausing qmail-send"&lt;br /&gt;   svc -p /service/qmail-send&lt;br /&gt;   echo "Pausing qmail-smtpd"&lt;br /&gt;   svc -p /service/qmail-smtpd&lt;br /&gt;   echo "Pausing qmail-pop3d"&lt;br /&gt;   svc -p /service/qmail-pop3d&lt;br /&gt;   ;;&lt;br /&gt; cont)&lt;br /&gt;   echo "Continuing qmail-send"&lt;br /&gt;   svc -c /service/qmail-send&lt;br /&gt;   echo "Continuing qmail-smtpd"&lt;br /&gt;   svc -c /service/qmail-smtpd&lt;br /&gt;   echo "Continuing qmail-pop3d"&lt;br /&gt;   svc -c /service/qmail-pop3d&lt;br /&gt;   ;;&lt;br /&gt; restart)&lt;br /&gt;   echo "Restarting qmail:"&lt;br /&gt;   echo "* Stopping qmail-smtpd."&lt;br /&gt;   svc -d /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "* Sending qmail-send SIGTERM and restarting."&lt;br /&gt;   svc -t /service/qmail-send /service/qmail-send/log&lt;br /&gt;   echo "* Restarting qmail-smtpd."&lt;br /&gt;   svc -u /service/qmail-smtpd /service/qmail-smtpd/log&lt;br /&gt;   echo "* Restarting qmail-pop3d."&lt;br /&gt;   svc -t /service/qmail-pop3d /service/qmail-pop3d/log&lt;br /&gt;   ;;&lt;br /&gt; cdb)&lt;br /&gt;   tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &lt; /etc/tcp.smtp     chmod 644 /etc/tcp.smtp.cdb     echo "Reloaded /etc/tcp.smtp."     ;;   help)     cat &lt;&lt;help stop="" goes="" start="" starts="" connection="" can="" go="" pause="" temporarily="" connections="" nothing="" cont="" continues="" paused="" stat="" displays="" mail="" service="" rebuild="" the="" tcpserver="" cdb="" file="" smtp="" restart="" stops="" a="" term="" restarts="" it="" schedules="" queued="" messages="" for="" immediate="" delivery="" sends="" send="" rereading="" locals="" and="" virtualdomains="" shows="" status="" of="" queue="" alrm="" flush="" doqueue="" hup="" same="" as="" reload="" help="" echo="" 0="" exit="" 1="" esac=""&gt;&lt;/help&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;exit 0&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 ~vpopmail/domains/.quotawarn.msg&lt;/strong&gt;&lt;br /&gt;From: &lt;em&gt;YourCompany&lt;/em&gt; Postmaster &lt;postmaster@&gt;&lt;em&gt;YourCompany&lt;/em&gt;.com&gt;&lt;br /&gt;Reply-To: postmaster@ &lt;em&gt;YourCompany&lt;/em&gt;.com&lt;br /&gt;To: &lt;em&gt;YourCompany&lt;/em&gt; User:;&lt;br /&gt;Subject: Mail quota warning&lt;br /&gt;Mime-Version: 1.0&lt;br /&gt;Content-Type: text/plain; charset=iso-8859-1&lt;br /&gt;Content-Transfer-Encoding: 7bit&lt;br /&gt;&lt;/postmaster@&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;Your mailbox on the server is now more than 90% full.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;So that you can continue to receive mail,&lt;br /&gt;you need to remove some messages from your mailbox.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;If you require assistance with this,&lt;br /&gt;please contact our support department :&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;  Email : xxx @ xxx.com&lt;br /&gt; Telphone: xxx xxx xxx&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-pop3d/run （安装了vpopmail后的文件）&lt;br /&gt;（注：如果内存够大，这个-m 的值还是设大些的好。这里设定为10M）&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;exec /usr/local/bin/softlimit -m 10000000 \&lt;br /&gt;/usr/local/bin/tcpserver -v -R -H -l 0 0 pop3 /var/qmail/bin/qmail-popup \&lt;br /&gt;"$LOCAL" ~vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2&gt;&amp;amp;1&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Courier New;"&gt;&lt;strong&gt;文件 /var/qmail/supervise/qmail-smtpd/run （安装了vpopmail后的文件）&lt;br /&gt;（注：如果内存够大，这个-m 的值还是设大些的好。这里设定为10M）&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;QMAILDUID=`id -u qmaild`&lt;br /&gt;NOFILESGID=`id -g qmaild`&lt;br /&gt;VPOPMAILUID='id -u vpopmail'&lt;br /&gt;VCHKPWGID='id -g vchkpw'&lt;br /&gt;MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`&lt;br /&gt;LOCAL=`head -1 /var/qmail/control/me`&lt;br /&gt;if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then&lt;br /&gt;   echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in&lt;br /&gt;   echo /var/qmail/supervise/qmail-smtpd/run&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;if [ ! -f /var/qmail/control/rcpthosts ]; then&lt;br /&gt;   echo "No /var/qmail/control/rcpthosts!"&lt;br /&gt;   echo "Refusing to start SMTP listener because it'll create an open relay"&lt;br /&gt;   exit 1&lt;br /&gt;fi&lt;br /&gt;exec /usr/local/bin/softlimit -m 20000000 \&lt;br /&gt;/usr/local/bin/tcpserver -H -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \&lt;br /&gt;-u "$VPOPMAILUID" -g "$VCHKPWGID" 0 smtp /var/qmail/bin/qmail-smtpd "$LOCAL" ~vpopmail/bin/vchkpw /bin/true 2&gt;&amp;amp;1&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-6308872478486925960?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/6308872478486925960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=6308872478486925960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6308872478486925960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/6308872478486925960'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/qmailqmail-qmail-smtpd-auth-ucspi-tcp_23.html' title='qmail邮件服务器安装配置记录(qmail, qmail-smtpd-auth, ucspi-tcp, daemontools, vpopmail, mysql)'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5496696981703298746.post-4031900625914283617</id><published>2008-07-23T21:36:00.000-07:00</published><updated>2008-07-23T21:55:27.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux Bind DNS 安装 配置'/><title type='text'>Bind 9 DNS服务器的安装配置记录</title><content type='html'>&lt;p&gt;作者：白东(Albert Ding) &lt;/p&gt;&lt;p&gt;由于更换服务器，因此更换了bind 8为bind 9的版本。 &lt;/p&gt;&lt;p&gt;Bind 官方网站地址是：&lt;a href="http://www.isc.org/"&gt;http://www.isc.org/&lt;/a&gt; &lt;/p&gt;&lt;p&gt;安装版本为：9.3.0，下载地址是：&lt;a href="ftp://ftp.isc.org/isc/bind9/9.3.0/bind-9.3.0.tar.gz"&gt;ftp://ftp.isc.org/isc/bind9/9.3.0/bind-9.3.0.tar.gz&lt;/a&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;解压： ( tar xvfz bind-9.3.0.tar.gz ) &lt;/li&gt;&lt;li&gt;Bind 配置： ( ./configure --sbindir=/usr/sbin --sysconfdir=/etc --libdir=/var/lib --datadir=/usr/share/bind --localstatedir=/var --mandir=/usr/man --with-openssl=no)&lt;br /&gt;安装后一些相关文件的位置是： &lt;ol&gt;&lt;li&gt;named.conf ( /etc/named.conf ) &lt;/li&gt;&lt;li&gt;rndc.key ( /etc/rndc.key ) &lt;/li&gt;&lt;li&gt;rndc-access.conf (/etc/named.d/rndc-access.conf ) &lt;/li&gt;&lt;li&gt;named ( /usr/sbin/named ) &lt;/li&gt;&lt;li&gt;named-checkconf ( /usr/sbin/named-checkconf ) &lt;/li&gt;&lt;li&gt;named-checkzone ( /usr/sbin/named-checkzone ) &lt;/li&gt;&lt;li&gt;&lt;strong&gt;zone files &lt;/strong&gt;( /var/lib/named/ ) &lt;/li&gt;&lt;li&gt;createNamedConfInclude ( /usr/share/bind/createNamedConfInclude ) &lt;/li&gt;&lt;li&gt;ldapdump ( /usr/share/bind/ldapdump ) &lt;/li&gt;&lt;li&gt;named.pid ( /var/lib/named/var/run/named.pid  这个文件本来想设定在 /var/run/named.pid 后来没弄了)&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;编译和安装 ( make / make install ) &lt;/li&gt;&lt;li&gt;配置文件见附录。 &lt;/li&gt;&lt;li&gt;启动 named DNS Server ( /usr/sbin/named -c /etc/named.conf -t /var/lib/named ) &lt;/li&gt;&lt;li&gt;如果要调试启动（即启动时输出错误提示） ( /usr/sbin/named -&lt;span style="color:#ff0000;"&gt;g&lt;/span&gt;c /etc/named.conf -t /var/lib/named ) &lt;/li&gt;&lt;li&gt;编写一个启动脚本 ( /etc/init.d/named ) &lt;/li&gt;&lt;li&gt;测试 &lt;ol&gt;&lt;li&gt;rndc status&lt;br /&gt;系统显示：&lt;br /&gt;number of zones: 11 #注意这里的数字和你在named.conf中设定的数目是相等的&lt;br /&gt;debug level: 0&lt;br /&gt;xfers running: 0&lt;br /&gt;xfers deferred: 0&lt;br /&gt;soa queries in progress: 0&lt;br /&gt;query logging is OFF&lt;br /&gt;recursive clients: 0/1000&lt;br /&gt;tcp clients: 0/100&lt;br /&gt;server is up and running &lt;/li&gt;&lt;li&gt;使用 named-checkconf 和 named-checkzone 进行测试 &lt;/li&gt;&lt;li&gt;使用nslookup测试 （下面的“...”为系统显示内容）&lt;br /&gt;$ nslookup - 127.0.0.1&lt;br /&gt;&gt; set all&lt;br /&gt;...&lt;br /&gt;&gt; ns.demo.com. #名字服务器地址&lt;br /&gt;...&lt;br /&gt;&gt; set query=any&lt;br /&gt;&gt; demo.com. #域名&lt;br /&gt;...&lt;br /&gt;&gt; set query=ptr&lt;br /&gt;&gt; 10.0.0.1 #IP地址&lt;br /&gt;...&lt;br /&gt;&gt; set class=CHAOS&lt;br /&gt;&gt; version.bind #bind 版本&lt;br /&gt;... &lt;/li&gt;&lt;li&gt;如果以上都正确，那bind安装设置成功！&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;==============&lt;br /&gt;||          附录          ||&lt;br /&gt;============== &lt;/p&gt;&lt;p&gt;&lt;strong&gt;named.conf&lt;/strong&gt;&lt;br /&gt;======== &lt;/p&gt;&lt;p&gt;options {&lt;br /&gt; directory "/var/lib/named";&lt;br /&gt; dump-file "/var/log/named_dump.db";&lt;br /&gt; statistics-file "/var/log/named.stats";&lt;br /&gt; listen-on-v6 { any; };&lt;br /&gt; notify no;&lt;br /&gt;}; &lt;/p&gt;&lt;p&gt;zone "." in {&lt;br /&gt; type hint;&lt;br /&gt; file "root.hint";&lt;br /&gt;}; &lt;/p&gt;&lt;p&gt;zone "localhost" in {&lt;br /&gt; type master;&lt;br /&gt; file "localhost.zone";&lt;br /&gt;}; &lt;/p&gt;&lt;p&gt;zone "0.0.127.in-addr.arpa" in {&lt;br /&gt; type master;&lt;br /&gt; file "127.0.0.zone";&lt;br /&gt;}; &lt;/p&gt;&lt;p&gt;zone "master.demo.zone" {&lt;br /&gt;        type master;                    // what used to be called "primary"&lt;br /&gt;        database "somedb -option1 -option2 arg1 arg2 arg3";&lt;br /&gt;        file "master.demo.zone";&lt;br /&gt;        check-names fail;&lt;br /&gt;        allow-update { none; };&lt;br /&gt;        allow-update-forwarding { 10.0.0.5; !any; };&lt;br /&gt;        allow-transfer { any; };&lt;br /&gt;        allow-query { any; };&lt;br /&gt;        sig-validity-interval 990;&lt;br /&gt;        notify explicit;&lt;br /&gt;        also-notify {  1.0.0.1; };      // don't notify any nameservers other&lt;br /&gt;                                        // than those on the NS list for this&lt;br /&gt;                                        // zone&lt;br /&gt;        forward first;&lt;br /&gt;        forwarders { 10.0.0.3; 1:2:3:4:5:6:7:8; };&lt;br /&gt;}; &lt;/p&gt;&lt;p&gt;zone "slave.demo.zone" {&lt;br /&gt;        type slave;                     // what used to be called "secondary"&lt;br /&gt;        file "slave.demo.zone";&lt;br /&gt;        ixfr-base  "slave.demo.zone.ixfr";  // File name for IXFR transaction log file&lt;br /&gt;        masters {&lt;br /&gt;                1.2.3.4 port 10 key "foo"; // where to zone transfer from&lt;br /&gt;                5.6.7.8;&lt;br /&gt;                6.7.8.9 key "zippo";&lt;br /&gt;        };&lt;br /&gt;        transfer-source 10.0.0.53;      // fixes multihoming problems&lt;br /&gt;        check-names warn;&lt;br /&gt;        allow-update { none; };&lt;br /&gt;        allow-transfer { any; };&lt;br /&gt;        allow-update-forwarding { any; };&lt;br /&gt;        allow-query { any; };&lt;br /&gt;        max-transfer-time-in 120;       // if not set, global option is used.&lt;br /&gt;        max-transfer-time-out 1;        // if not set, global option is used.&lt;br /&gt;        max-transfer-idle-in 2; // if not set, global option is used.&lt;br /&gt;        max-transfer-idle-out 3;        // if not set, global option is used.&lt;br /&gt;        also-notify { 1.0.0.2; };&lt;br /&gt;        forward only;&lt;br /&gt;        forwarders { 10.45.45.45; 10.0.0.3; 1:2:3:4:5:6:7:8; };&lt;br /&gt;}; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;include "/etc/named.conf.include";&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;rndc-access.conf&lt;/strong&gt;&lt;br /&gt;============ &lt;/p&gt;&lt;p&gt;include "/etc/rndc.key"; &lt;/p&gt;&lt;p&gt;controls {&lt;br /&gt;        # Bind BIND's control channel to localhost and allow access from&lt;br /&gt;        # loopback addresses only.&lt;br /&gt;        # This control channel is used for the init script /etc/init.d/named,&lt;br /&gt;        # rcnamed while called with the option reload or status&lt;br /&gt;        inet 127.0.0.1 allow {&lt;br /&gt;                127.0.0.0/8;&lt;br /&gt;        } keys { rndc-key; }; &lt;/p&gt;&lt;p&gt;        # In the following example BIND's control channel in addition is bound&lt;br /&gt;        # to IP address 192.0.2.1 and access is granted to loopback addresses&lt;br /&gt;        # and the 192.0.2.0/24 network. &lt;/p&gt;&lt;p&gt;        #inet 192.0.2.1 allow {&lt;br /&gt;        #       127.0.0.0/8;&lt;br /&gt;        #       192.0.2.0/24;&lt;br /&gt;        #} keys { rndc-key; };&lt;br /&gt;};&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;rndc.key&lt;/strong&gt;&lt;br /&gt;======= &lt;/p&gt;&lt;p&gt;key "rndc-key" {&lt;br /&gt;        algorithm hmac-md5;&lt;br /&gt;        secret "/EtMpzgu4tiyK+Q8sGJIzsI2w73Q/MNfOmpcWluLIi1kC8Ae0s2ryZR0UloKmR2JSbmdjXtR0QohgL8i0BW0Ug==";&lt;br /&gt;}; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;named (启动脚本)&lt;/strong&gt;&lt;br /&gt;============= &lt;/p&gt;&lt;p&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;#Description: named (BIND) is a Domain Name Server (DNS)&lt;br /&gt;export PATH=/usr/sbin &lt;/p&gt;&lt;p&gt;case "$1" in&lt;br /&gt;  start)&lt;br /&gt; echo -n "Starting named: "&lt;br /&gt; named -c /etc/named.conf&lt;br /&gt; echo "done"&lt;br /&gt; ;;&lt;br /&gt;  stop)&lt;br /&gt; echo -n "Shutting down named: "&lt;br /&gt; rndc stop&lt;br /&gt; echo "done"&lt;br /&gt; ;;&lt;br /&gt;  status)&lt;br /&gt;        rndc status&lt;br /&gt;        exit $?&lt;br /&gt;        ;;&lt;br /&gt;  restart)&lt;br /&gt; echo -n "Reload named: "&lt;br /&gt; rndc reload&lt;br /&gt; echo "done"&lt;br /&gt; ;;&lt;br /&gt;  reload)&lt;br /&gt; echo -n "Reload named: "&lt;br /&gt; rndc reload&lt;br /&gt; echo "done"&lt;br /&gt; ;;&lt;br /&gt;  *)&lt;br /&gt;        echo "Usage: named {start|stop|status|restart|reload}"&lt;br /&gt;        exit 1&lt;br /&gt;esac &lt;/p&gt;&lt;p&gt;exit 0&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5496696981703298746-4031900625914283617?l=reachsilu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reachsilu.blogspot.com/feeds/4031900625914283617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5496696981703298746&amp;postID=4031900625914283617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/4031900625914283617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5496696981703298746/posts/default/4031900625914283617'/><link rel='alternate' type='text/html' href='http://reachsilu.blogspot.com/2008/07/bind-9-dns.html' title='Bind 9 DNS服务器的安装配置记录'/><author><name>Albert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
