[修改回复]
删除回复
插入表情:
宋体
楷体
幼圆
黑体
隶书
华文行楷
方正舒体
Arial
Arial Black
Arial Narrow
Century Gothic
Comic Sans MS
#0000FF
#8A2BE2
#DEB887
#5F9EA0
#7FFF00
#000000
#D2691E
#FF7F50
#FF0000
#DC143C
#99ccff
字体颜色
#FFF8DC
#00FFFF
#EE82EE
#F5DEB3
#FFFFFF
#F5F5F5
#FFFF00
#9ACD32
使用帮助
网络组建之(企业网组建)(五) Linux 组建Inteanet (Red Hat Linux) 安装LILO L I L O (the LInux LOader )是在基于I n t e l 系统上启动L i n u x 的最常见方式。为了启动你的Red Hat Linux 系统,通常需要安装L I L O 。安装时,安装界面中有S k i p 选项,如果选择了此选项,就会放弃安装L I L O 。这将导致不能直接启动Linux 系统,而必须通过其他启动方式(启动盘)来启动。一般,除非有其他相对快捷的启动方式,你都应该安装L I L O 。L I L O 的安装界面如图1 所示。 提示可以把L I L O 安装在以下两个地方之一: 1) 将L I L O 安装在主启动记录(Master Boot Record )。 如果将L I L O 装在M B R ,当机器启动时,L I L O 将显示一个"b o o t :"提示;然后,可以启动Red Hat Linux 或L I L O 配置的其他操作系统。 2) 将L I L O 装在根分区的第一个扇区(First sector of boot partition )。 如果你已经在使用其他启动管理器(例如O S / 2 的Boot Manager ),请使用这种安装方式。这时,你的其他启动管理器将首先取得对机器的控制,而你可以设置你的启动管理器来启动L I L O ,然后由L I L O 启动Red Hat Linux 。 请根据你的实际情况,选择一种方式,按O K 键,继续安装。 接下来,安装程序会问是否想为L I L O 启动命令增加默认参数,如图2 所示。在这里输入的任何选项在每次启动时都将被传给L i n u x 内核。这个步骤是可以省略的,如果不需要内核自动调用什么程序,就不要费心填写了,只需将它空置即可。如果计算机使用L B A 模式访问硬盘,就可选择Use linear mode 项。然后选择O K ,并按空格。 最后,安装程序会出现Bootable Partiton 对话框。因为L i n u x 可以启动其他操作系统,像D O S 、Wi n d o w s 等等。它列出了所有可以启动的分区,包括用于其他操作系统的分区。安装界面比较友好,在最后列出了Boot Label 项,对每一行进行注释。如图3 所示,我们进行一下解释。 Boot Label 栏为D O S 的,标志这是D O S 分区; Boot Label 栏为L i n u x 的,标志这是你的Red Hat Linux 根文件系统的分区。 当然其他分区也可能有启动标记,只是这里没有显示。 看到下面的E d i t 按钮了吗,如果你想为其他分区增加启动标记或修改一个已存在的启动标记,只需用光标 键选择那个分区,然后使用Ta b 键(这个键在你的键盘上)选择E d i t 按钮,并按空格。这时将看到一个小的对话框让你输入或修改分区的启动标记。修改完后按O K 即可。还有一栏叫"D e f a u l t ",其中只有一个分区包含一个星号(*)。这表示,如果在启动时没有用户输入,则系统会将L I L O 启动自动包含到带星号的那个分区。 一般默认Red Hat Linux 根分区为"D e f a u l t "。如果想修改,把光标键移到想选的默认分区再按F 2 ,就可使星号移到选择的分区,然后选O K ,并按空格键即可。不过,请不要随便更改默认设置。因为L I L O 不是一个程序,而是一组程序,所以在安装的过程中可能会碰到一些意外导致某一两个程序不可用。下面介绍一下L I L O 安装过程中会遇到的一些情况,大家可以大致判断出自己碰到的问题症结所在。当L I L O 装入时,每完成一个特定的过程,会显示一个字母。正确安装完毕后,屏幕上会显示出整个单词"L I L O "。如果L I L O 在某个地方安装失败了,屏幕上就停留那个字母,而不再继续向下显示,以指示错误发生的地方。注意,如果磁盘发生瞬间故障,可能会在第一个字母"L "后插入一些十六进制数字。除非L I L O 停在那里并不停地产生错误码流,否则并不说明有严重问题,大可继续安装下去。如果在写操作过程中发生错误,则在错误码前有个前缀"w "。尽管写错误并不影响启动过程,但它们会指示一些错误,因此建议重新配置L I L O 为只读(r e a d - o n l y )。 Linux 组建Inteanet (Red Hat Linux) 配置PPP 服务器 P P P 是严格的点对点协议,就像上面所说,"客户端"和"服务器"除了在连接建立的过程中有"主叫"和"被叫"的区别外,其余都是完全对等的,因此,以上面介绍的客户端为基础,建立P P P 服务器最重要的就是处理"等待用户拨入"和"建立连接"。下面介绍一种实现P P P 服务器的方法。 1. 系统的支持 所谓系统的支持就是L i n u x 核心支持和p p p d 。 在开始下一步之前先测试一下系统:在提示符下键入"p p p d ",不加任何参数,如果能够看到: ~y}#.!}!!} }8}}$}%U}"}&} } } } }%}& ...}`}"}(}"} .~~y}y!!) 这样的乱码,说明系统支持已经具备,可以进入下一阶段配置了。 2. 编辑配置文件 如果已经按照5 . 2 . 2 正确建立了P P P 连接,下面的文件已经存在,只需加以修改。如果不需要或者还没有建立P P P 客户端连接,就自己创建这个文件: e t c / p p p / o p t i o n s 文件内容 # 动获取I P 地址;0 . 0 . 0 . 0 : # 不使用任何"溢出"控制序列; asyncmap 0# 子网掩码; netmask 255.255.255.0 # 使用uucp 格式的锁定文件以避免他人使用串口; l o c k # 使用硬件流量控制; c r t s c t s # 使用调制解调器控制线; m o d e m # 使用代理地址解释协议来传送数据包; p r o x y a r p # 最大传送包大小为552 bytes ; mtu 552 # 最大接收包大小为552 bytes ; mru 1500 # 子网掩码和最后两项在不同的机器设置不同,可以在命令行键入: i f c o n f i g 来查看具体的数值。 3. 创建用户和编辑用户shell 用a d d u s e r 命令建立用户帐号,注意,用户的s h e l l 设置为p p p l o g i n 。也可以对不同的用户建立不同的s h e l l ,如用户p p p 1 对应p p p 1 l o g i n 。 然后要给每个用户设立一个自动登陆的s h e l l 文件: e x e c /u s r /s b i n /p p p d p a s s i v e /d e v /t t y S 0 5 5 2 n e t m a s k 2 5 5 .2 5 5 .2 5 5 .0 p r o x y a r p : 1 0 . 0 . 0 . 1 参数1 0 . 0 . 0 . 1 是用户用P P P 登陆后自动获取的I P ,这里是局域网内部的一个例子,使用中可以设置自己的值。 还要记得将p p p l o g i n 文件设为可执行的。然后就可以使用另一台计算机尝试通过调制解调器和电话线连接这台P P P 服务器了。 Linux 组建Inteanet (Red Hat Linux) sendmail 服务器的设置 S e n d m a i l 对一般的系统管理者而言,往往是个难点,因为系统的使用者对E - m a i l 的需求与依赖程度高,不能有分毫差错。 Sendmail 8.9.3.1 是目前Sendmail 8.9.x 系列的最高版本。系统安全方面,是目前评价最好的,目前已知的BUG 都已经改好了。因为本软件是一public domain ,可以在网路上各f t ps e r v e r 上找到其source code 。由于该软件的发展者把一些必要的设定步骤自动化了,所以,其实安装这个软件并不是非常的困难。 S e n d m a i l 的安装分成几个步骤: 1) 获取此软件:(通过f t p 相关站点或直接从安装光盘上获取),至少要有 sendmail.8.9.3.1.base.tar.gz sendmail.8.9.3.1.cf.tar.gz sendmail.8.9.3.1.xdoc.tar.gz 这三个文件,其中,第一个文件是此软件的程序;第二个文件是此软件的设定,此二者 是必要的文档;第三个是文本文件,如果不想看,可以不要。得到以上文件以后,解开文件。 建议管理者读一读此软件的相关文件。 2) 全解压开后应该会在该目录下建立几个目录,其中程序是在"~/ s e n d m a i l / s r c "的目录下,设定文件在"~/ s e n d m a i l / c f "目录下。请1 转换至"~/ s e n d m a i l / s r c "的目录,用ls 命令 可以看到许多名Makefile.xxx 的文件档案。请使用者找到一个适合自己系统的m a k e f i l e ,如:假设是用IBM AIX 的系统,那就使用M a k e f i l e . A I X ;用H P 的系统,那就用M a k e f i l e . H P - U X ;如果是Sun 系统,那就用M a k e f i l e . S u n O S . x . x ,但如果是SunOS 4.1.3 ,就得要用M a k e f i l e . S u n O S 这个m a k e f i l e 文件,而如果是Solaris 2.3 ,则得要用M a k e f i l e . S u n O S . 5 . x 。用v i或任何其他编辑器,调出刚挑出的m a k e f i l e 文件,做一点点必要的修改。所要修改的地方不多,下面是可能要修改的地方: o "CC ="如果原文件所用的c o m p i l e r 并不是自己系统的,这才要改。 o 本系统是否有安装Berkerlay 的New database ?如果有,跳过本点,到第3 点。如果没有 (如:一般SunOS 都没有装),那么请修改这几行(下面以M a k e f i l e . S u n O S 为例,但其他系统也类似): a .在DBMDEF= -DNDBM -DNEWDB -DNIS 一行,请改成: DBMDEF= -DNDBM -DNIS(即去掉- D N E W D B ) b .把这两行R E M A R K 起来: I N C D I R S = - I / u s r / s w w / i n c l u d e / d b --> # INCDIRS=-I/usr/sww/include/db L I B D I R S = - L / u s r / s w w / l i b --> # LIBDIRS=-L/usr/sww/lib c .修改LIBS= -ldb -ldbm -lresolv 这一行成: LIBS= -ldbm -lresolv (即去掉- d b ) 把n r o ff 的"- m a n d o c "参数改成一般系统可以接受的"- m a n "(当然,这得依你的系统而定)。如果不改也并不会影响s e n d m a i l 的安装,只是不能看到格式化后的s e n d m a i l 相关文件罢了。 3) 输入make -f Makefile.xxx 等待编译完毕。不过,笔者可以乘这个空文件把旧的s e n d m a i l相关文件案备份起来,以防万一有什么不测,还可以有所储备)。要备份的文件是: /usr/lib/sendmail 和s e n d m a i l . c f (后者所在位置得依原系统而定,不过,一般都是在/ e t c 下或/ e t c / m a i l 下)。有一点要记住的是,原来的/usr/lib/sendmail 是个suid root 的程序,备份的请记住执行chmod u-s xxxx ,要不然,留着这样一个suid root 的程序,也是会让人有机可乘的! 4) 此一步骤也可以在compile 程序时进行,就是要产生系统设定文件,即sendmail.cf 。 请切换至设定文件目录~/sendmail/cf/cf 之下。找一个合适自己系统的x x x x . m c 文件。笔者一般是使用tcpproto.mc 这一个不用u u c p 的文件。如果是用tcpproto.mc 这个文件,笔者在solaris 2.3 试了,在文件中要加上一行:OSTYPE(solaris2) ,如果不小心忘了加上O S T Y P E ( ),会有"unknow mailer "的错误,然后信寄不出去。 选定了某一个合意的.mc 文件,接下来可执行m 4 产生.cf 文件。请用下面指令: # m4 XXX.mc > YYY.cf如果是sun 4.1.3 ,可能系统会抱怨m 4 的版本太旧了。请试用: # /usr/5bin/m4 XXX.mc >YYY.cf 若还是不行,那就去找新版的m 4 回来c o m p i l e 。 产生出来的Y Y Y. c f 一般得要改某个地方才能正常地收信。请寻找"C w ",原来产生的. c f文件,C w 应是: Cwlocalhost 请在localhost 之后加上你那一台机器所有可能用来当收信地址的host name ,如: Cwlocalhost tarn.ustc.edu.cn man.ustc.edu.cn 如果这个步骤忘了做,将会有从外面机器寄信来却收不到,机器会抱怨: "configure error ...." 5) 这个步骤是要把c o m p i l e 好的东西install 到系统上去了。假设compile 的结果没有任何错误,产生.cf 文件过程也就没有什么值得注意的信息。所产生的.cf 文件也改好了。 切换至目录~/sendmail/src ,下指令: # make -f Makefile.XXX install 系统会把c o m p i l e 出来的~/ s e n d m a i l / s r c / s e n d m a i l 与man document 拷贝到它们该有的目录。 切换至目录~/sendmail/cf/cf ,把产生出来的Y Y Y. c f 文件拷贝到本系统sendmail.cf 应该在的地方,如:/ e t c 或/etc/mail 。 把旧sendmail daemon 的process kill 掉。用ps -ax |grep sendmail |grep -v grep 找出旧d a e m o n 的p r o c e s s (或cat /etc/sendmail.pid 或cat /etc/mail/sendmail.pid),然后用kill -9 processID kill 掉它。 启动新d a e m o n 。例如下指令: /usr/lib/sendmail -bd -q30m 当然,保守一点,看旧的d a e m o n 怎么跑,照旧的来下参数应该没有问题。 6) 这个步骤主要用来测试: a. local 的收、发信。 b. remote 的收、发信。 c. 最好当然能试试不同的domain 或甚至net 的收发情况。 Linux 组建Inteanet (Red Hat Linux) FTP 服务器的建立 目前很多企业单位正在构架自己的I n t r a n e t ,F T P 服务器是其中的一个服务支持,有很多单位还配置了基于U N I X 平台的计算机,为了在网上能够提供F T P 服务支持,专门购置基于U N I X 平台的FTP Server 软件,其实在基于U N I X 平台的计算机系统中,采取一定的技术方法,就可以建立自己的F T P S e r v e r ,实现网上文件上下载服务,无须再购置专门的软件,何乐而不为之呢?下面就其建立过程阐述如下: 1) 确定FTP Server 的共享目录。 为FTP Server 建立一个F T P 工作目录,在此设定为/ h o m e / f t p 2) 编写FTP Server 初始设置的S h e l l 程序( s e t u p )。 用编辑工具(如v i )编写一个S h e l l 程序,用于对系统进行设置。 # ! / b i n / s h case $# in 0) ftphome="`grep `^ftp:` /etc/passwd | cut -d: -f6`" ;; 1) if [ "$1" = "start" ]; then ftphome="`grep `^ftp:` /etc/passwd | cut -d: -f6`" e l s e f t p h o m e = $ 1 f i ; ; *) echo "Usage: $0 [anon-ftp-root]" exit 1 ; ; e s a c if [ -z "${ftphome}" ]; then echo "$0: ftphome must be non-null" exit 2 f i if [ "${ftphome}" = "/" -o "${ftphome}" = "/usr" ]; then echo "$0: ftphome must not be / or /usr" exit 2 f i if [ ! -d ${ftphome} ]; then mkdir ${ftphome} f i if [ ! -d ${ftphome}/usr/bin ]; then if [ ! -d ${ftphome}/usr/bin ]; then mkdir -p ${ftphome}/usr/bin f i cp /usr/bin/ls ${ftphome}/usr/bin chmod 111 ${ftphome}/usr/bin/ls chown root ${ftphome}/usr/bin chmod 555 ${ftphome}/usr/bin if [ -r ${ftphome}/bin ]; then mv -f ${ftphome}/bin ${ftphome}/Obin f i ln -s usr/bin ${ftphome} if [ ! -d ${ftphome}/usr/lib ]; then mkdir -p ${ftphome}/usr/lib f i if [ ! -d ${ftphome}/etc ]; then mkdir -p ${ftphome}/etc f i cp /usr/lib/ld.so /usr/lib/ld.so.1 ${ftphome}/usr/lib for lib in libc libdl libintl libw libnsl libsocket \ nss_nis nss_nisplus nss_dns nss_files d o cp /usr/lib/${lib}.so.1 ${ftphome}/usr/lib rm -f ${ftphome}/usr/lib/${lib}.so ln -s ./${lib}.so.1 ${ftphome}/usr/lib/${lib}.so d o n e cp /usr/lib/straddr.so.2 ${ftphome}/usr/lib rm -f ${ftphome}/usr/lib/straddr.so ln -s ./straddr.so.2 ${ftphome}/usr/lib/straddr.so cp /etc/passwd /etc/group /etc/netconfig ${ftphome}/etc chmod 555 ${ftphome}/usr/lib/* chmod 444 ${ftphome}/etc/* chown root ${ftphome}/usr/lib ${ftphome}/etc chmod 555 ${ftphome}/usr/lib ${ftphome}/etc if [ ! -d ${ftphome}/dev ]; then mkdir -p ${ftphome}/dev f i p r e f i x = " / d e v i c e s / p s e u d o / m m @ 0 : " for device in zero d o line=`ls -l ${prefix}${device} | sed -e `s/,//`` major=`echo $line | awk `{print $5}`` minor=`echo $line | awk `{print $6}`` rm -f ${ftphome}/dev/${device} mknod ${ftphome}/dev/${device} c ${major} ${minor} done p r e f i x = " / d e v i c e s / p s e u d o / c l o n e @ 0 : " for device in tcp udp ticotsord d o line=`ls -l ${prefix}${device} | sed -e `s/,//`` major=`echo $line | awk `{print $5}`` minor=`echo $line | awk `{print $6}`` rm -f ${ftphome}/dev/${device} mknod ${ftphome}/dev/${device} c ${major} ${minor} d o n e chmod 666 ${ftphome}/dev/* chown root ${ftphome}/dev chmod 555 ${ftphome}/dev #建立一个匿名F T P 服务目录,并设立可读可写属性 if [ ! -d ${ftphome}/pub ]; then mkdir -p ${ftphome}/pub f i chown ftp ${ftphome}/pub chmod 777 ${ftphome}/pub 3) 编辑/ e t c / p a s s w d 和/ e t c / s h a d o w 文件。 设置匿名F T P 帐号,按下面方法分别对/ e t c / p a s s w d 和/ e t c / s h a d o w 两个文件中增加如下数据: 在/ e t c / p a s s w d 文件中增加 ftp:x:30000:30000:Anonymous FTP:/home/ftp:/nosuchshell 在/ e t c / s h a d o w 文件中增加 f t p : N P : 6 4 4 5 : : : : : : 4) 运行s e t u p 程序。 在运行s e t u p 程序之前,将该文件设置成执行文件。 #chmod +x setup 运行s e t u p 程序#setup /home/ftp 以上步骤就完成了F T P 服务器的建立,即可使用F T P 服务器,可以用如e x p l o r e r 、 n e t s c a p e 。 n a v i g a t o r 等浏览器对F T P 服务器进行访问,进行下载和上载文件操作,使用非常方便。 Linux 组建Inteanet (Red Hat Linux) WWW 服务器的建立 Internet 下最热的服务便是W W W 服务,W W W 服务在当今的信息社会是必不可少的一种方式。无论在哪个领域,动态的h t m l 页面都是一种宣传和获取信息的介质。为什么不运行你的W W W 服务器呢?在这一节里,笔者以最普遍使用的阿帕奇( A p a c h e )服务器为例,详细讲解阿帕奇的安装、编译,以及所有实现不同功能的指令。你将学会如何配置一个功能强大的We b 服务器,并启动和测试这个服务器。配置Web 服务器,在此过程中确保你的服务器配置得适合你的系统需要,一旦完成这一过程,便没有什么可担心的了。假如决定提供不同的特性集或改变系统,则需要修改配置。 1. 一般的httpd 配置文件的规则 一共需要建立三个配置文件,所有的文件都遵循以下规则: o 在文件中与大小写有关的只是文件路径和文件名。 o 使用#号注释掉一行。 o 当使用directive 命令时,每行只能放置一个指令。 o 为了使指令及接下来的数据一目了然,可以留下一些空白行,We b 服务器将忽略它们。 2. 建立服务器配置文件 在安装L i n u x 的过程中,通过R P M 包,你将很轻松地装载阿帕奇服务器软件。进入你的安装目录,服务器的配置文件需要我们根据具体的需求来设置。要建立的第一个配置文件就是为Web 服务器所建立的,先使用阿帕奇的h t t p . c o n f 作为模板,对配置中遇到的参数做一定的说明(可根据自己的需求做改动,此配置仅供参考)。 建立你自己的文件h t t p d / c o n f / h t t p d . c o n f ,按照上面的内容及文件中的说明,修改你自己的配置,现在对其中的一些选项说明如下。 1) #SeverTy p e 可以选择i n e t d 或s t a n d a l o n e 因为运行的是I n t e r n e t 下的站点,很容易选到i n e t d ,然而,要想要h t t p d 可以自我处理以占用较少的C P U 资源,则可选择s t a n d a l o n e ,因此我的h t t p d . c o n f 文件的这个选项行为: SeverType standalone 2) #Port: The port the standalone listens to 标准的h t t p d 端口是8 0 。一般情况下,应该与标准端口相连,这样可以使人们很容易进入你提供的服务。于是这一行应为: Port 80 3) # HostnameLookups 这个选项的缺省为HostnameLookups off , 这样的缺省对所有的用户都有好处,当然也可以设置为on ,如:w w w.apache.com on 210.45.76. 6 off 4) #User nobody #Group nobody 如果希望你的h t t p d 对不同的用户和群组有不同的操作(通常不需要这么做),那么开启这个开关,若无此要求,则设置为: User nobody Group nobody 5) # ServerAdmin: Your address, where problems with the server should be e-mailed. 当有人向你写信提及有关提供的服务时,不必紧张。能听到正面的评论是很好的,但当 有人提出建设性的意见批评时,说明你的站点所提供的服务还需要进一步完善。因此,此处 含有负责维护We b 服务的E - m a i l 地址。笔者所看到的是: ServerAdmin root@localhost 6) # ServerRoot: The directory the server`s config, error, and log files are kept in. 这里告诉你的系统在何处可以找到h t t p d 文件。当然,将它们放在何处完全是个人爱好问题。 ServerRoot /etc/httpd 7) 现在告诉系统在何处可以找到h t t p d 日志文件。假如你的路径不是以/ 开头,意味着开始目录由S e r v e r R o o t 分配。日志文件如下: o E r r o r l o g 跟踪超时客户,不产生输出的脚本,试图覆盖不允许覆盖的内容,严重的服务器错误(产生段错误或总线错误)以及用户权限有关的问题。 o Tr a n s f e r L o g 跟踪以下信息:客户主机,提供的i d e n t d 信息,用户权限,进入的日期和时间,H T T P 请求的第一行,服务器状态码,以及发送的字节总数。 o AgentLog 跟踪使用的客户代理软件,它大多数情况用于收集统计数字或跟踪导致服务 器错误的客户。 o RefererLog 跟踪指导用户与你连接的那些文档。 o 与这个日志文件相关的一个变量为R e f e r L g n o r e ,它忽略与特定用户的连接。例如,当不想对用户每次翻阅你的页面时都做记录,就可以使用它。因为笔者建立了 w w w. r e n a i s s o f t . c o m ,所以选择忽略那个主机。 o PidFile 跟踪你的服务器进程I D 号。 o 可以选择在某类中央记录区保存你的记录,若决定将我的记录与其他的h t t p d 内容保存在 一起,配置文件中的其他项将为: ErrorLog logs/error_log CustomLog logs/access_log common PidFile /var/run/httpd.pid ScoreBoardFile /var/run/httpd.scoreboard 8) #StartServers: The number of server to launch at startup 尽管对处理服务器数目有一编译缺省值,最好自己设置以了解你所要使用的数目。假如 你接受这一缺省值,则很难知道现在可用的服务器,除非你查原代码。笔者选择的与例子相 同的服务器数目( 1 0 ),这样我的系统就可以同时处理1 0 个H T T P 请求,而不需要额外的资源来启动多出的h t t p d 进程。同时,1 0 个空闲的d a e m o n 只可能占用少量的资源。因此,这一行为: S t a r t S e v e r 1 0 9) #MaxSpareServer: # M i n S p a r e S e r v e r : 同样,有一编译缺省值,但建议在你的配置文件中设定一下。上例中数目为2 0 和1 0 ,即最大和最小空闲服务器进程数目。系统将周期性检测等待中的服务进程数目,如果数目小于最小空闲服务器进程数目,系统将会产生一个新的进程;若数目大于最大服务器进程,将是一种资源的浪费,系统将会关闭一个进程。笔者将其设置为: MinSpareServers 8 MaxSpareServers 20 10) # MaxKeepAliveRequests 这个参数表明在当前的连接中系统能够处理的请求的最大数值,为了保证你的服务器正 常服务,这个参数应该设置得较大。笔者在模板文件中的参数设置为: MaxKeepAliveRequests 100 11) MaxClients 150 这个参数值表示服务器允许的最大客户请求数,即最多允许访问用户的数目。 12) # MaxRequestsPerChild MaxRequestsPerChild 这个指令设定一个独立的子服务程序将能处理的请求数量。在处理M a x R e q u e s t s P e r C h i l d 这个请求之后,子程序将会被终止。如果MaxRequestsPerChild 为0 的话, 那么该程序永远不会被终止。MaxRequestsPerChild 设为非0 的值做为限制有两个好处: o 由记忆体使用量限制程序使用的记忆体数量; o 由赋予程序有限的存留时间,可以在服务器负载降低时协助减少程序的数目。 3. 建立资源配置文件 建立这个文件用于通知We b 服务器从哪里可以找到文档、脚本和别名。下面是一个名为e t c / h t t p d / c o n f / s r m . c o n f 的文件,作为模板。供大家参考。 # documents. 使用这一变量,可以规定你的服务器将显示文件的主目录。通常,笔者使用标准方法(如 果你想将所有的记录文件放在一个集中的地方,可以改变它,以适应你的需要),这样,此文 件的开头为: DocumentRoot /home/httpd/html 2) # UserDir: The name of the directory which is appended onto a user`s home # directory if a ~ user request is recieved. 这个指令用于分配一个目录,此目录将存在于用户保存他们的H T M L 文件的目录中,标准是目录:public_html: 任何时候如果某人跟踪某个链接,例如h t t p : / / w w w. s e v e r. c o m / ~ u s e r,他 实际进入的目录应该是:h t t p : / / w w w. s e v e r.com/~user/public_html, 这是一种保持整洁及适当安 全的措施,这样其他人员便不能进入用户目录。 笔者的配置文件的下一行为(使用了缺省值) UserDir public_html 3) # DirectoryIndex: Name of the file or files to use as a pre-written HTML # directory index. 使用这一指令,当外面的用户连接到某人的主目录时,可以设置一个假想的文件名。在 上例中,并没有列出文件名,只是因为已设置了缺省的文件名,于是服务器首先查看此文件 名(一般为i n d e x . h t m l 或i n d e x . h t m )。笔者将其设置为 DirectoryIndex index.html index.shtml index.cgi index.htm 4) # FancyIndexing is whether you want fancy directory indexing or standard F a n c y I n d e x i n g 指显示目录、文件及图标和文件大小。假如你想以此方式显示你的文件和目录,将这一选项打开;否则,将其关闭。笔者的下一行设置为O n ,形式如下: FancyIndexing on 5) # AddIcon tells the server which icon to show for different files or filename # extensions 可以使用这个指令定义We b 服务器将使用什么图标显示目录中的文件类型。这是一种改 进目录显示方法的简单方法。这个指令没有缺省值,因此如果你没有定义内容,就没有图标 可用。欲使用图标的路径蕴含在D o c u m e n R o o t 变量的值中,而D o c u m e n t R o o t 变量在这个配置文件的一开始就已定义了,因此,第一个变量指出了保存图标的目录,这个目录将在你的D o c u m e n t R o o t 目录内。笔者的配置如下: 6) # DefaultIcon is which icon to show for files which do not have an icon # explicitly set. 这里,告诉服务器用哪个图标表示未曾定义的文件类型。一般为u n k n o w n 图标。笔者使用缺省配置,其文件的下一行为: DefaultIcon /icons/unknown.gif 7) #ReadmeName is the name of the README file the server will look for by # default. 使用此指令定义H T M L 文件,它包含一个当前目录下的文件描述列表。尽管文件名与描述分别储存在不同的文件中,但这些文件描述在目录列表的文件旁边显示。 以后你将需要创建包含描述的H T M L 文件。为了简单起见,起名为r e a d m e . h t m l ,这样源配置文件的下行为: ReadmeName README 8) # HeaderName is the name of a file which should be prepended to # directory indexes. 使用此指令定义包含一个当前目录自定义标题的H T M L 文件,这个标题在目录列表的上 部显示。今后你将有必要创建包含最新标题的H T M L 文件。为了简单起见,我将它定义为 h e a d e r. h t m l ,于是配置文件的此行为: HeaderName HEADER 9) # IndexIgnore is a set of filenames which directory indexing should ignore # Format: IndexIgnore name1 name2... 假如不想让某些文件出现在目录列表中,使用I n d e x I g n o r e 。例如,假如你想忽视r e a d m e . h t m l 及h e a d e r. h t m l 文件(它们由服务器本身使用,用户无需亲自使用它们),笔者将使用 下一行: IndexIgnore .??* *~ *# HEADER* README* RCS 10)# AccessFileName: The name of the file to look for in each directory # for access control information. 这条指令告诉服务器在何处去寻找访问控制文件,你将对这种文件进行配置,确立哪些 目录是高于一般客户的人才能进入的。 AccessFileName .htaccess 11) # DefaultType is the default MIME type for documents which the server # cannot find the type of from filename extensions. 当服务器不能决定实际文件类型时,使用这一指令可以分配一个缺省的文件类型。我使 用的缺省设置: DefaultType text/plain 这里,t e x t 指文件类型(标准文件类型),p l a i n 指子类型( M I M E 调用这种文件类型)。 12)# AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress # information on the fly. Note: Not all browsers support this. 假如想使你的服务器在发送文件的同时对其解压缩(这样存储该文件的所需的的磁盘空间较少),可使用这个指令。例如,若想让服务器能够还原U n i x 压缩( . z )文件及g z i p 压缩( . g z )文件 (正如源配置文件列表中的例子所示),将输出下述内容: AddEncoding x-compress Z AddEncoding x-gzip gz 13) # AddLanguage allows you to specify the language of a document. You can # then use content negotiation to give a browser a file in a language # it can understand. 此项允许你指定文档所使用的语言,可以使用缺省值。其文件如下: AddLanguage en .en AddLanguage fr .fr AddLanguage de .de AddLanguage it .it 其中e n 表示英语,f r 为法语,d e 为德语,i t 则为意大利语。随后的配置L a n g u a g e P r i o r i t y 与此项 类似,这里从略。 14) # Aliases: Add here as many aliases as you need (with no limit). The format is # Alias fakename realname 假如想为你的H T M L 文件路径起一个别名,可以使用这个指令。例如,将 / h o m e / h t t p d / i c o n s /起别名为/ i c o n s ,可以用如下的指令: Alias /icons/ /home/httpd/icons/ 15) # AddType allows you to tweak mime.types without actually editing it, or to # make certain files to be certain types. 如果希望你的服务器能够支持C G I (大多数的We b 服务器都这样做了),利用此选项,把它加入你的配置文件,笔者的下一行为: Addtype application/x-httpd-cgi .pl .cgi 同样,如果希望你的服务器同样支持p h p ,也可以以同样的方法将其相加,如: AddType application/x-httpd-php .phtml 16) # AddHandler allows you to map certain file extensions to "handlers", # actions unrelated to filetype. 4. 建立访问配置文件 这是要设置的最后一个配置文件,它告诉We b 服务器哪些客户可以进入哪些目录,以及 在其他目录哪些服务是可用的。下面的文件为e t c / h t t p d / c o n f / a c c e s s . c o n f ,可作为大家配置此 文件的模板。 ## access.conf -- Apache HTTP server configuration file # access.conf: Global access configuration 要建立你自己的配置文件e t c / h t t p d / c o n f / a c c e s s . c o n f ,可照上例中同样的顺序填写内容。从某种意义上讲,这是最重要的一个配置文件,因为它控制对你的系统的存取,所以要多花些时间学习,下面是我的服务器配置文件的一些选择。 1) # This file defines server settings which affect which types of services # are allowed, and in what circumstances. <Directory /> Options None AllowOverride None < / D i r e c t o r y > # This may also be "None", "All", or any combination of "Indexes", # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews". 从上面可以看出,服务器在此目录下的选项如下: o None 表示在此目录下没有特性,这是最安全的,因为使用你服务器的用户完全不能在 此目录下做任何事情。 o All 表明此目录下的所有特性可用。不要轻易使用这个特性,除非你真的想让用户进入 特定的目录看到其中的任何东西(包括用户的主目录)。实际上,假如从一个用户的主目 录到你的某个目录建立了s i m l i n k s ,而这个目录你并不想让其他人进入。如果使用A l l 选项, 其他的用户就可以利用这个链进入该目录。 o Follow SymLinkszz 使得服务器从这个目录跟踪s i m l i n k s 。选择此项一定要小心,因为如果s i m l i n k s 是从用户的主目录到不允许其他人访问的目录,将会产生一种链接,使得外部的We b 用户也可以进入你并不想让他进入的目录。 o SymLinksIfOwnerMatch 使得服务器从这个目录跟踪s i m l i n k s ,条件是链所指的文件拥 有者同时是链的创建者。此选项部分地解决了上面所述的问题,外部用户一般不能跟踪 链,除非该用户也拥有此链所连接的文件。 o Indexs 表明服务器可以让人们要求当前目录的索引,并让部分用户得到他们所在目录 的H T M L 索引。如果不用此选项,外部用户将不会得到H T M L 索引,但在此目录中可以 加载任何要索引的文件。如果想提供H T M L 文件索引及描述,使用此选项。 o Include 表明服务器可以让用户提供信息,例如一个文件最后被修改的日期。 在这里,出于安全起见,先将所有的目录都定义为N o n e ,以免出现安全漏洞。由于此选 项是可以覆盖的,需要其他要求的选项可以在后面一一定义。 2) # This should be changed to whatever you set DocumentRoot to. <Directory /home/httpd/html> Options All AllowOverride All order allow,deny allow from all </Directory> 这个D i r e c t o r y 指令同样也是一个完整的语句。和以前一样的模式,但这一次指的是S e v e r R o o t 的目录(我使用的是h o m e / h t t p d / h t m l ),此部分的第一行为: <Directory /home/httpd/html> 此时,我作为根目录又完全控制了该目录,但想要让人们能够获得这里所有的文件,可 以使用一下选项。 Options All 现在已可以通过输入来控制哪个. h t a c c e s s 选项是服务器可以覆盖的。尽管有多种选择,我 建议最好用下面的: AllowOverride All 除非你确实想拒绝一些主机存取,一般情况下需要做的仅仅是添加为以下部分: allow from all 3) # /home/httpd/cgi-bin should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. <Directory /home/httpd/cgi-bin> AllowOverride None Options ExecCGI < / D i r e c t o r y > 以上为S e v e r R o o t 的设置,笔者采用了缺省值,其选项如上所示。 4) 现在设置u s r 目录下的文件特性,笔者选择如下: #Allow access to local system documentation from localhost Alias /doc /usr/doc <Directory /usr/doc> order deny,allow deny from all allow from localhost, 127.0.0.1 Options Indexes FollowSymLinks < / D i r e c t o r y > 其中,笔者只允许内部I P 1 2 7 . 0 . 0 . 1 的主机查看这个目录,因此做了以下的设置: deny from all allow from localhost, 127.0.0.1 到此为止,你已经完成了配置We b 服务器的工作! 5. 启动Web 服务器 这是最后一步,真正地启动We b 服务器。设置一些内容,以便每次引导系统时服务器都 将自己启动。需要做以下的工作: 1) 编辑文件/ e t c / s e r v i c e 。 2) 增加以下行: http 80/tcp 你不必使用端口8 0 ,但它是标准的h t t p 端口,若不使用这个端口,人们将不得不在U R L 中使用端口编号才能与你连接。 3) 存盘退出/ e t c / s e r v i c e s 。 4) 编辑文件/ e t c / i n e t d . c o n f 。 增加行: http stream tcp nowait ftp /etc/httpd/httpd httpd 5) 存盘退出。 6) 作为r o o t 登录。 7) 输入ps aux.。 8) 为i n e t d 找到进程号。 9) 输入kill <process#>- HUP 从现在开始,当你引导系统时,自动启动的一个进程便是h t t p d 。 Linux 组建Inteanet (Red Hat Linux) 安装Samba S a m b a 这套免费的软件里面包含了Samba Server 和Samba Client ,所以装好S a m b a 后,不只是可以提供资源给别人,同样也可以用Samba Client 去分享其他Samba Server 或是Wi n d o w s 9 5 / N T 网络邻居上的机器共享出来的资源。 基本上,S a m b a 是为U N I X 系统所发展的,但目前也有N e t Wa r e 、Windows NT 、O S / 2 和V M S 版的S a m b a 了,如果想尝试使用别的操作系统的S a m b a 也是非常容易的一件事!而在使用Red Hat Linux 安装S a m b a 之前,建议k e r n e l 最好是用2 . 2 . 1 0 版的,因为它针对S a m b a 的b u g 做了些修正,在使用Samba client 打印文件名时会稳定一些。在Red Hat Linux 下安装S a m b a 是最简单不过的了,只要几个步骤就可以解决了。目前最新版的S a m b a 版本为2 . 0 . 3 p 8 ,表示2 . 0 . 3 版p a t c h 第8 次。在Red Hat Linux 发行版所附光盘中,即捆绑有S a m b a - 2 . 0 . 3 - 8 . i 3 8 6 . r p m 软件,你可以直接从光盘上安装。当然了,你也可以从其他渠道(比如I n t e r n e t 上S a m b a 的主页:h t t p :/ / w w w. a p a c h e . o rg 上下载A p a c h e 的最新版本)获得S a m b a 软件,如果是S a m b a 的源程序代码压缩文件,你首先得将它进行解压缩,然后进行编译才可以使用。 以S a m b a - 1 . 9 . 1 7 p 2 . t a r. g z 文件为例,讲一下编译的基本步骤:(如果使用Red Hat Linux 4.1光盘中捆绑的S a m b a - 2 . 0 . 3 - 8 . i 3 8 6 . r p m 软件,因为它是R P M 类型文件,无须编译,可直接跳过这一步骤)。 我们现在就开始安装S a m b a 。请依照下列步骤完成: 1) 解压缩文件。 取得s a m b a - 1 .9 .1 7 p 2 . t a r. g z 文件,然后随便找个目录将它解压缩,包文件解压缩后,直接会产生目录s a m b a - 1 .9 .1 7 p 2 /: # tar zxvf samba-1 .9 .1 7 p 2 . t a r . g z 阅读安装说明文件,获取帮助,先看看R E A D M E ,再到d o c s /下看看其他文件和执行: # nroff -man smbd.8|less # nroff -man nmbd.8|less 相信会得到非常多的帮助。 2) 进入s o u r c e /,编辑M a k e f i l e 文件。 先看一下R E A D M E 、I N S TA L L 之类的文件,对于安装软件会有很大的帮助。因为S a m b a可适用于多种U N I X 操作系统,所以M a k e f i l e 里面定义了非常多的U N I X 系统,我们只要找出定义L i n u x 的部份,然后将#删除就可以了。而这一版S a m b a 的M a k e f i l e 里面对L i n u x 有五种定义情况,请选择一种。基于安全性考虑,建议用第三种方式包含有shadow passward 与q u o t a 来编译S a m b a :Use this for Linux with shadow passwords 先从M a k e f i l e 中找到上面这一段字。假如系统有安装shadow password ,就将M a k e f i l e 里面这一段的 # FLAGSM = -DLINUX -DSHADOW_PWD -DFAST_SHARE_MODES # LIBSM = -lshadow 这两行的#号删除,然后储存M a k e f i l e 进行第3 步骤。 Use this for Linux without shadow passwords 假如你的系统没有安装shadow password ,就将M a k e f i l e 里面这一段的 # FLAGSM = -DLINUX -DAXPROC -DFAST_SHARE_MODES # FLAGSM = -DLINUX -DFAST_SHARE_MODES # LIBSM = 这三行的#号删除,然后储存M a k e f i l e 进行第3 步骤。 Use this for Linux with shadow passwords and quota 假如系统有安装shadow password 和q u o t a 的话,就将M a k e f i l e 里面这一段 # FLAGSM = -O3 -m486 - DLINUX-DSHADOW_PWD - DQUOTAS -DFAST_ SHARE_MODES # LIBSM = -lshadow 这两行的#号删除,将M a k e f i l e 储存起来后,并直接在s o u r c e /这个目录执行: ln -s /usr/include/linux/quota.h /usr/include/sys/quota.h 或者ln -sf /usr/src/quota-1.51 quota 如果/ u s r / s r c /目录下没有q u o t a - 1 . 5 1 ,可以到光盘的q u o t a /目录下取得q u o t a - 1 . 5 1 . t a r. g z ,然后将它解开再l i n k 即可。多做这两个步骤的原因是因为要包含q u o t a ,所以编译时需要用到q u o t a 的s o u r c e 。Use this for Linux with quota and glibc2 g l i b c 2 是G N U 新开发出的C Library ,所以若有使用g l i b c 2 与q u o t a ,请将下面选项的#号删除: # FLAGSM = -DLINUX -DQUOTAS -DNO_ASMSIGNALH -DGLIBC2 -DFAST_SHARE_MODES # LIBSM = -L/lib/libc5-compat-lcrypt Use this for Linux with glibc2(1ibc6) 只有使用g l i b c 2 的人,请将下面选项的#删除: # F L A G S M = -D L I N U X -D N E T G R O U P -D S H A D O W _P W D -D A L L O W _C H A N G E _P A S S W O R D -DFAST_SHARE_MODES = 1 -DNO_ASMSIGNALH_DGLIBC2 # LIBSM = -lnsl -lcrypt 3) 在s o u r c e /执行"m a k e " m a k e 成功后会得到好几个可执行文件,但我们执行Samba Server 或c l i e n t 最需要的应是"s m b d "、"n m b d "这两个S a m b a 的守护进程和"s m b c l i e n t "这个S a m b a 的客户进程的执行文件并生成。接着执行"make install ",会将S a m b a 的所有东西安装到/ u s r / l o c a l / s a m b a /这个目录, 就完成安装s a m b a 了。若以前装过S a m b a ,可以执行"make revert "将旧的版本删除并安装新版本的S a m b a 。 # make # make install(or make revert) 做完此3 个步骤就完成编译h t t p d 了。 以上只是编译S a m b a 源代码的一般步骤,在RedhatLinux 中,根本不必如此麻烦,可以直接使用RedhatLinux 光盘中捆绑的S a m b a - 2 . 0 . 3 - 8 . i 3 8 6 . r p m 软件,因为它是R P M 类型文件,无须编译即可直接安装。 首先将光盘放入C D R O M 中,可以执行 $ mount $ cd /mnt/cdrom/ 确认C D R O M 已经M o u n t 上,这时可以从光盘的/ R e d h a t L i n u x / R P M S /下取得S a m b a - 2 . 0 . 3 -8. i 3 8 6 . r p m 这个r p m 软件,然后用R P M 将它解压缩进行安装,R P M 这个安装软件可以将新软件的source code 重新整理包装成另外一种s o u r c e 或b i n a r y 的文件型式( . r p m ),这样一来可以免去安装软件时编译发生错误所产生的不良后果。( R P M 软件的详细介绍在本章最后一节。)执行命令如下: $ rpm -ivh Samba-2.0.3-8.i386.rpm S a m b a # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 可以看出S a m b a 的软件名称以及它的安装过程,等到#字符跑完,就是软件安装完成了。安装完成后会自动在/ e t c /这个目录下放置有产生S a m b a 的s a m b a . c o n f 配置文件,在/ v a r / l o g / s a m b a /下面放置l o g . n m b 文件,下面我们将详细谈如何进行设置。 设置Samba 的配置文件 S a m b a 的配置文件s m b . c o n f 关系着Samba Server 开放的权限、目录、打印机和机器所属的组,所以它对Samba Server 非常重要。在使用RedhatLinux 光盘自带的s m a b a 压缩文件s a m b a -2. 0 . 3 - 8 . i 3 8 6 . r p m 进行解压后,在e x a m p l e / s i m p l e /目录下就有一个s m b . c o n f 的范例,请将它复制到/ u s r / l o c a l / s a m b a / 1 i b /这个S a m b a 预设读取s m b .c o n f 的目录,另外/ e t c /下有一个s m b . c o n f .d e f a u l t ,这是完整的s m b .c o n f 说明使用文件,也一并把它复制到/ u s r / l o c a l / s a m b a / 1 i b /。接着我们开始修改s m b .c o n f 。为安全起见,我们首先还是把/etc / smb .c o n f 文件复制成s m b .c o n f o l d ,s m b .c o n f 文件,其内容说明如下: s m b . c o n f 范例说明:打开s m b .c o n f 文件,首先是如下一段说明文字,建议你在明白设置的含义后进行修改。这是S a m b a S e r v e r- - - s m b d 的设置文件;请特别注意,s m b .c o n f 文件把用分号";"m a r k 起来的叙述当作注解。 # This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # # Any line which starts with a ; (semi-colon) or a # (hash) # is a comment and is ignored. In this example we will use a # # for commentry and a ; for parts of the config file that you # may wish to enable # 下面的w o r k g r o u p 这一行用来指定你的机器在网络邻居上所属的组名称。笔者定义为q c 。如果不指定,则内置的组名称为:"M Y G R O U P " workgroup = qc下面的h o s t s a l l o w 这一行是设置哪一些领域的机器可以访问你的Samba Server ;若没有设置,则内置任何机器都可以访问你的S a m b a ;这里是设置192.168.1. 192.168.2. 127.领域的机器才可以访问S a m b a S e r v e r 。 hosts allow = 202.204.89. 202.204.89. 120. 下面的h o s t s a l l o w 这一行是定义如果你想使用自动调用的打印机而不是当需要时自己设置。 printcap name = /etc/printcap load printers = yes 下面的config file 这一行是设置,只要加上下面这一行,不用重新开机,就可让修改s m b . c o n f 后马上生效。不过对Wo r k g r o u p 的定义无效。config file = /etc/smb.conf 下面是S a m a b S e r v e r 的一般化设置,设置打印机(须配合;/ e t c / p r i n t c a p 设置),使用者帐号为g u e s t ,将log file 文件(记录文件)设置放在/ v a r / l o g / s a m b a / l o g . % m 目录下;share modes = yes 指定允许任何人( g u e s t )使用定义在/ e t c / p r i n t c a p 下的打印机。 [ g l o b a l ] ; printing = bsd ; guest account = pcguest log file = /var/log/samba/log.%m max log size = 50 share modes = yes 下面定义使用S a m a b S e r v e r 的用户名的目录。 ; username map = /etc/smbusers 下面是关于l i n u x 的p r i n t e r 的使用设置,设置打印机在Wi n d o w s 9 5 网络邻居上的名称为[激光打印机],且这台打印机可以在网络邻居上看到(browseable = yes),可以执行打印( p r i n t a b l e = yes);但无权限者,如g u e s t 不可以使用(public = no),且这台打印机的权限设置为0 7 5 0 ,也就是只有拥有者( r o o t )才能使用。 [ p r i n t e r s ] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow user `guest account ` to print guest ok = no writable = no printable = yes printable = no create mask = 0750 下面设置所有使用者的Home Directories : [ h o m e s ] comment = Home Directories browseable = yes path = /home writable = yes 下面设置d a v i d 这位l i n u x 上的使用者的Home directory 。这种设置也是安装s a m a b 的好处之一,d a v i d 这位使用者可以直接经由Wi n d o w s 9 5 的网络邻居存取它在l i n u x 上的Home directory ,对使用者来讲非常方便。 [ d a v i d ] comment = david`s Home path = /usr/david valid users = david public = no writable = yes 下面的语句设置一个暂存的目录,可以让任何人共享(public = yes): [ t m p ] comment = Temporary file space path = / read only = yes public = yes 上面只举了几个范例,如果想知道更多的范例,请参考S a m b a 内附的s m b . c o n f .d e f a u l t 。 设置好s m b . c o n f 后,紧接着就要启动Samba Server 了。
不能为空
不能含有 ` 字符,字数8000以内
(CTRL+ENTER提交)
关闭窗口