热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一招一式攻克linux

第一招安装linux作者:田逸(sery@163.com)《网管员世界》2005第10期143页关于windows与linux谁优谁劣的问题一直争论不休,也许,你在windows的世界中得心应手,但是,你也应该关注一下linux。这不仅仅是可以体验linux的强大功能,而且对于薪金的提升更有益处。我个人的观点是:服务器、还有那些为了节省成本而使用计算机做网关设

第一招 安装linux
作者:田逸(sery@163.com) 《网管员世界》2005第10期143页


关于windows与linux谁优谁劣的问题一直争论不休,也许,你在windows的世界中得心应手,但是,你也应该关注一下linux。这不仅仅是可以体验linux的强大功能,而且对于薪金的提升更有益处。我个人的观点是:服务器、还有那些为了节省成本而使用计算机做网关设备(路由器,防火墙,ids)尽可能的使用linux作为操作平台,桌面系统或者远程控制端(监控远程服务器)使用windows作为操作平台,这样折中一下,就很好了。对于很多人来说,他们对于linux依然很茫然,尽管他们曾经做过一些尝试。这可能是他们想努力的把linux当成桌面环境来使用或者在安装 linux是遇到麻烦而最终放弃努力。是的,我们使用windows作为日常工具也成习惯(我们用word编写项目方案,用 internet explorer浏览网页等等),如果一旦把系统换成linux,不知所措也是理所当然的。

首先应该解决一些认识上的误区:linux应该被用于服务器方面,linux的安装配置确实比windows要困难和复杂,但也没有想像的那么糟糕。克服困难的途径就是do it yourself at ---立马行动。笔者从事系统管理工作已经多年,对linux也有所涉猎,不敢说多有心得,权做抛砖引玉之用,把一些体会在此与大家交流。

要使用linux来为我们工作,第一步要做的事情就是安装linux到机器上,可是还是有很多尝试安装是失败的,以至于动摇了再次尝试的信心。希望初学者跟我一招一式的操作,定可顺利进行。

安装准备
1、 一套正版的redhat linux 9发行套件(大概68元)。
2、 一个专门用来安装linux系统的硬盘。很多失败和顾忌都源于这儿,欲在装有windows系统并且有用户数据的硬盘上安装linux ,对于生手来说,能放开手脚?
3、 一台基于intel 奔腾处理器或amd处理器的pc或服务器。不要用intel 塞扬的处理器,这玩意性能差。
4、 一快流行的网卡或干脆花200多元买一块3com网卡。
5、 一个读盘能力强的光盘驱动器。
6、 如果用服务器来安装linux,并且硬盘是scsi接口的话,准备好随机附带的安装工具盘,可能 linux安装过程中需要scsi控制器的驱动程序。
7、 足够的耐性。

一、从光盘安装linux
开始安装
激动人心的时刻从这里开始,这里先进行最直接、最便捷的安装方法:从光盘安装,后面再介绍一种高级的安装方法。
1、 机器加电启动,进入bios设置引导设备为cd-rom(与从光盘安装windows类似),第一张光盘放入光驱,系统开始从linux光盘引导,引导成功后出现redhat linux 9 的安装启动界面,屏幕显示提示信息和boot:提示符,按回车进入图形安装方式。
2、 选择安装语言,建议选 english,如果选择中文,那么在以后安装某些应用软件(如sybase, oracle)时出现乱码,从而影响软件的正常安装—比如你不能分辨“next”按钮是那一个。
3、 选择键盘,鼠标类型,就按“next”就是。
4、 出现欢迎消息,按“next”继续吧。
5、 询问是安装新系统还是更新系统?选全新安装,点击“next”。
6、 询问安装类型:工作站(workstati
7、 安装引导工具lilo或grub,选默认值grub,按“next”继续。
8、 配置网络。需要根据本网的实际情况填写主机名(hostname),ip地址,子网掩码,默认网关,dns的ip地址。默认网关是一个很重要的参数,它的作用是要网关设备(通常是路由器)发送通告,表明自己在本网的存在。这类似与部队收发室的情形:我们要往外寄信,首先把信送到收发室(默认网关),收发室自己决定怎样处理信件;从外面寄来的信件,首先也被送到收发室(默认网关),然后收发室就会把信件转发到收信人那里。如果指定的默认网关不正确,就没法与外面的网络通信—收发室的人不认识你,那么你既不能发信,又不能收信。当然,即便在这儿填写错了,安装完后我们仍然有机会更改这些错误的,所以也不用过于担心。这一步本来的默认选择是自动获取ip地址,建议舍弃默认值。值得注意的是,如果这一步没有出现“network device”(网络设备)接口 “eth0”这样的状况,那么不幸的事情发生了:系统不识别硬件(系统不包含该网卡的驱动或者没有加载设备模块),这也是我推荐使用3com网卡而不用杂牌网卡的原因。
9、 设置时区。用鼠标点一下世界地图上的中国某个区域就行,然后按“next”继续。
10、 设置root口令。设置复杂的口令。
11、 添加用户,给该用户设置口令。按“next”继续。
12、 选择欲安装的包。除了默认选中的包外,把x window system和图形化的浏览器工具选上。这对以后的操作非常有帮助。按“next”继续。
13、 开始安装。点击“next”。从这里开始很长一段时间,我们唯一可做的事情是等待和更换光盘。这个过程中,安装程序将从光盘上把相关文件复制到硬盘,创建文件系统并把我们选中的软件包安装在系统中。
14、 等待中......
15、 创建引导盘。既然有光盘就免了吧。可能有的软驱早退役了呢!
16、 选择显卡。系统回自动检测到显卡,按“next”继续。
17、 选择显示器。鼠标点击“next”就是了。
18、 选择定制x配制。实际上就是设置颜色和分辨率,选800*600后,按“next”继续。
19、 选择用户登录方式。默认值是图形方式,选择文本登录方式。按“next”继续。
20、 安装完毕。出现祝贺窗口。能顺利完成安装,当然是值得庆贺的事情。只有成功地完成linux安装,才可能进一步激发我们对linux的兴趣。鼠标点击“next”,光盘从光驱中弹出,系统重启,安装完成。
21、 安装成功确认。系统重启,直到出现 login:,大功告成,接下来就是登录和使用linux了。

意外事故
有一些条件会阻止我们顺利安装,这些障碍是需要绕过或克服的。尽管我在前面安装准备部分为克服这些麻烦做过提示,可是同样的事情还是在发生。一种情形是,安装系统硬件检测过程找不到硬盘;这种情况主要发生在一些杂牌服务器/白牌服务器上,它的scsi控制器不被识别所致,解决是使用随机安装光盘。另一种情况是安装过程出现文件错误,这是由于不能正确地从光盘复制数据/文件所致;所以选择一个好的光驱和正版的redht linux 9套件/复制品 也是十分重要的。使用旧的版本安装在较新配置的机器也是一个让你发生意外的因素,比如/boot分区大小不能超过1024扇区,或者不能识别显卡等,别保守,用新的版本吧!


二、高级安装:pxe安装 linux
前面介绍了从cd-rom安装linux这种最便捷、最直接的操作方法,但是,如果一旦遭遇需要同时安装linux系统到多台计算机上,那么我们应该选择一种更高效的安装方式。pxe是其中的一种选择。
pex—pre-boot execution envir


动态分配ip地址
和指定pex文件位置

给我ip地址
好,pex配置文件和linux内核在tftp服务器


我需要pex配置文件和linux内核映像

启动linux内核 发送linux内核映像

pex配置文件,linux内核等

pex 远程安装linux原理图
这个过程与以前称作“无盘工作站”的模式十分类似。说理论不太有趣,那我们就拿刚才用光盘安装好的那台linux做安装服务器,同时充当tftp和dhcp服务器的角色,另拨一台符合安装条件的机器(“安装准备”所列条款)通过pex方式来完成linux的安装。不过这还需要一个先决条件,就是网卡一定要支持从网络启动这个功能—3com 3c509 系列网卡可以看到一个与主板bios形状相似的rom芯片。下面我们分几步来完成整个安装。

(一) 配置安装服务器
1、 以root登录安装服务器,用命令 rpm ?qa | grep tftp 查看是否安装了tftp软件包,如果没有,安装一下(安装软件的方法将在后面的文章中详细介绍)。
2、 修改tftp的配置文件,使tftp服务可以随linux开机启动(开机启动这个服务不是必须的)。用命令vi /etc/xinetd.d/tftp 将文件/etc/xinetd.d/tftp其中的一句 disable=yes 改成 disable=no。
3、 准备内核、pex配置文件以及linux根文件系统。分成两个步骤:①准备pex配置文件—创建目录/tftpboot/pxelinux.cfg,然后复制第1张安装光盘/isolinux目录里的文件isolinux.cfg和*.msg到目录/tftpboot/pexlinux.cfg,把文件/tftpboot/pxelinux.cfg/isolinux.cfg改名为/tftpboot/isolinux.cfg/default;复制文件/usr/lib/syslinux/pxelinux.0到目录/tftpboot。②准备内核和根文件系统—复制第1张安装光盘/images/pxeboot目录里的两个文件vmlinuz(内核)和initrd.img(根文件系统)到目录/ tftpboot中。
/tftpboot



pxelinux.0 pxelinux.cfg vmlinuz initrd.img


default(isolinux.cfg)
/tftpboot目录示意图
4、 配置dhcp服务器。使用命令 vi /etc/dhcpd.c 修改文件/etc/dhcpd.c
filename “pxelinix.0”
next-sever 192.168.100.100 //本安装服务器的ip地址,即tftp服务器的ip地址
5、分别启动dhcp和tftp服务。用命令 service dhcpd start 启动dhcp服务,用service xinetd restart 启动tftp服务。

(二) 准备ftp服务器
还是用这台安装服务器做ftp服务器。在redhat linux 9上配置ftp服务器是非常简单的事情:添加一个系统账号和启用ftp服务就完事了。
localhost# useradd sery //添加用户sery
localhost# passwd sery //给用户sery设置登录密码

localhost# start vsftpd start //启动ftp服务
但这只是一个空的ftp服务器,为了符合我们的安装任务,需要把3张安装光盘的所有目录/文件复制到sery用户的ftp 的指定目录。以root权限建立目录 mkdir /home/sery/linuxsetup,然后把redhat 9的三张光盘按光盘的根目录拷贝文件和目录到目录home/sery/linuxsetup,在拷贝第二和第三张光盘是会提示目录里有相同的文件夹或文件,问是否覆盖,回答yes即可,复制完成后重启一下ftp, # service vsftpd restart。

(三) 安装linux
启动要安装linux的计算机,通过更改cmos的值设置机器从pxe引导,如果网络与前面的dhcp、和tftp都正常工作的话,几秒钟时间就会出现我们一直期待的boot:提示符,输入命令 linux askmethod回车……设置ip地址的获取方式为dhcp,……选择安装源为ftp,屏幕提示输入ftp服务器的ip地址(手动输入 192.168.100.100),选中复选框 “非匿名用户”,输入用户名“sery”密码“******”和安装文件目录“/linuxsetup”,按“next”继续。接下来的过程与从光盘安装基本一致,只是没有图形安装界面而已。经历比从光盘安装少很多的时间完成整个安装。

注:此安装过程完全适合redflag 红旗 linux各个版本及redhat as linux或 redhat es linux各个版本。


第二招 基本配置,基本操作,必须掌握的命令
作者:田 逸(sery@163.com)
<网管员世界> 2005年11期


通过第一招的实践,我们已经可以顺利的安装好linux操作系统,这仅仅是工作的一小部分,现在最迫不及待的事情就是使用这个系统。打开安装好linux操作系统计算机的电源,让机器正常引导,待系统引导完毕,我们的第一个操作---登录开始了;在这一步,能执行的任务就是输入用户名root和初始安装时设定的密码,一旦输入无误,便可取得操作整个计算机的所有权限,开始了挑战linux的艰难之旅。

超级用户账号密码
为安全起见,需要定期更改超级用户root的密码。这个操作十分简单,在shell提示符#后输入 passwd回车,然后两次输入新密码即可。退出root登录,然后再次登录,检验密码修改是否正确。然而不幸的事情还是偶尔会发生,刚才更改的密码记不清楚了,root用户登录不了,急人啦,难道还要重装linux操作系统?如果你还想尝试一遍安装操作,本是无可厚非的,但这并不是一个好主意,特别是在硬盘上存储很多重要数据的情形下。请参照下面的操作来解决这个问题:
1、 手动重启系统:按计算机复位键或先关闭计算机在开启。
2、 当引系统到达“引导加载程序(选择欲启动的操作系统)”grub时(redhat 9在安装的时候,我们默认安装的引导程序是 grub),按键盘字母“e”键,如果硬盘上安装多个操作系统的话,还需要用箭头选中linux 启动条目。将看到如下几行文本(为节省篇幅,多余的文本省略了)
root (hd0,4)
kernel /boot/vmlinuz-2.4.20-8 ro root=lable/ hdc=ide-scsi
initrd /boot/initrd-2.4.20-8.img
3、 把 “kernel /boot/vmlinuz-2.4.20-8 ro root=lable/ hdc=ide-scsi” 改成 “kernel /boot/vmlinuz-2.4.28 single root=lable/ hdc=ide-scsi”后按回车键,返回编辑屏幕。
4、 按“b”键使用上面更改后的选项引导计算机,这样计算机就进入单用户模式(运行级别1)而不用输入用户名和密码登录。
5、 输入命令passwd回车,两次输入新口令,然后小心保存。关于口令设置的建议有很多,可以根据自己的情况设置复杂口令。
6、 再次重启计算机,这时便可顺利使用新密码进入系统了。
这个操作对于管理员来讲,是十分有用的,但是如果这个服务器运行的是关键应用,那么应当把它锁在机柜里,因为不是公司聘用的非管理员也能够替你执行这个操作,很危险的。

用户账号
有句名言叫“linux就是网络”,这就意味着linux系统不是系统管理员一个人把玩的,有太多的理由让更多的人来使用这个资源。刚安装完的linux系统,只有一个用户root;没有任何责任让其他仅需使用一部分功能的人来共享root账号和密码。既然如此,给要用计算机资源的人开设账号吧。
1、 开设账号:在命令提示符输入 #useradd sery 就可以成功的添加账号sery,用命令#passwd sery 来给账号sery 设置密码。通过这种方式添加的账号的主目录将是/home/sery, sery用户的环境变量.bash_profile在目录 /home/sery中。也可以指定用户的主目录,例如我们要安装数据库软件sybase ase,需要指定它的主目录为/opt/sybase,通过输入命令#useradd ?d /opt/sybase sybse 就可以了,这样sybase用户的环境变量路径也变成 /opt/sybase/.bash_profile。可以把一些用户添加到一个组了,以满足特定的功能。上面开设的两个账号,默认产生两个组sery和sybase。
2、 更改账号:某天,公司的sery离职了,由新来的tieny接替他的工作,可以用命令#usermod ?l tieny ?m ?d /home/tieny sery来实现。当然还应当把口令也改一下。
3、 删除账号:sery由于工作不力,被老板开除了,那么作为系统管理员应当把他的账号删除,先删除账号#userdel sery,然后还要删除sery用户的主目录/home/sery。
需要注意的是,上述的账号操作,只有具备管理员权限的用户(比如root)才可以进行的,普通用户仅仅能更改自己的密码而已。

文本编辑器vi
要使用unix/linux来完成工作,你没有办法来回避使用文本编辑器这个工具。在unix/linux的世界里,vi是赫赫有名的,ibm的aix、sun的solaris、sco unix、redhat linux等等,没有一个不用vi 这个编辑工具的。因此,作为unix/linux系统管理员,必须熟练掌握这个基本技能。
vi文本编辑器打开以后,有两种模式:命令模式和输入(或者编辑)模式。在使用过程中,这两种模式是需要来回相互切换的,初学者对此往往感到迷惑,下面举一个例子来说明一下:
我们在此要把计算机的主机名改成sery,那么就用vi编辑器修改配置文件/etc/hosts文件。输入命令 #vi /etc/hosts 回车,立刻进入vi的命令模式。在这种模式下,可以进行查找、保存文件等操作,按字母“i”键切换到编辑模式---屏幕底部显示“insert”,然后光标定位,输入相关的字符;输入完毕并检查无误后,按“esc”键切换到命令模式,接着输入“:”加wq回车就把刚才的输入保存在文件/etc/hosts里。整个过程总结一下流程就是:vi filename 打开文件---切换到编辑模式(“i”)----输入文本----切换到命令模式(“esc” ,“:”)----保存文件(wq)。
[root@sybase root]# vi /etc/hosts

# do not remove the following line, or various programs
# that require network functi will fail.
127.0.0.1 localhost.localdomain localhost //按i切换编辑模式

202.108.93.200 sery //这行是加上去的
//按esc键回到命令模式,再输入“:”
:wq //保存文件退出

有时,文件修改后不想保存它,则在命令模式下输入“:q!”,如果只是打开文件而没有做任何修改,在命令模式下输入“:q”就可以了。有一个技巧还是需要掌握的,那就是在文件中查找字符。编辑一个小的文件(字符数不多)用光标定位就可以完成修改,但是如果要编辑的一个文件较大,例如修改apache的配置文件,根据实际应用,我们仅需对/etc/httpd/conf/httpd.c /etc/httpd/conf/httpd.c vi 使用技能。随着linux版本不断的升级,vi也越来越便于使用,例如在linux桌面环境下,可以用鼠标选定文本,然后使用复制功能来简化操作。

配置网络参数
如果linux服务器不连入网络,除了供管理员测试而外,再没有别的实际意义,因此把linux服务器连入网络就是必须的了。在第一招安装linux时,我们已经把网络的一些参数手动输入了,但是有时还得在实际应用中更改某些参数。网络参数主要包括:ip地址、子网掩码、默认网关和指定dns服务器。ip地址、子网掩码、默认网关由文件/etc/sysc vi 打开/etc/sysconfig/network-scripts/ifcfg-eth0,修改对应的值,我本人习惯把默认网关加在这个文件里,即在这个文件里插入一行“gateway=x.x.x.x”。默认网关是个非常重要的设置,如果设置错误,linux服务器就只能访问同一网段的主机而不能与其他网段的计算机互访尽管其他的网络参数设置完全无误。我曾有意无意的犯过这个错误,结果每次都是一样让人沮丧。在讲授网络的课程里,默认网关被定义成一个三层设备,讲得通俗一点就是路由器,它的作用是连接不同网段/子网的通信,它记录与它某一端口直连的同一网段的机器mac与ip地址对应值(称为arp)。路由器/网关不会自动获得同一网段主机的mac-ip值,只有通过手动指定默认网关把主机的mac-ip值通告给网关。指定dns服务器地址可以让linux服务器以域名的方式访问互联网上的其他机器。指定域名服务器地址过程很简单,只需用vi编辑文件/etc/resolve.c nameserver 202.106.0.20 保存退出。需要特别注意的是,不要把指定dns服务器与设定本linux服务器为dns服务器搞混了,这是两个完全不同的东西:前者为客户端,后者为服务器端。
还有一种特殊情况,在只有一个网络设备的条件下,我们需要设置几个ip地址,比如基于ip地址的虚拟主机。这种操作称为设备别名。eth0的第一个别名是/etc/sysc
在系统提示符下,用命令#ifc eth0 200.200.200.200 255.255.255.248 up也可指定或修改网络设备的网络参数。但是这种修改方式是动态进行的,系统重启以后就无效了。以命令#route add default gw x.x.x.x 添加的默认网关也是同样的效果。
修改网络参数后,要使修改立即生效,不需要重启计算机,重新启动网络服务就可以了。在redhat linux 9以后的版本,只要输入命令#service network restart即可,然后用命令#ifc ?a来检验修改的结果。
修改网络参数需要管理员权限才能进行。

文件系统和原始设备
在这里介绍文件系统和原始设备( raw device)的目的主要是为将来安装大型数据库oracle或sybase奠定一些基础,因为这些数据库可以使用文件系统或原始设备作为逻辑存储区域。
文件系统是一种存储数据的方法,采用分层目录结构来存储文件,由一个根目录和许多子目录、文件组成(ibm aix 5l系统管理技术定义)。redhat linux 9主要包括以下一些目录:
1、/bin:linux通用命令。
2、/dev:系统设备文件。
3、/etc:管理配置文件。
4、/home:各用户的目录。
5、/mnt:挂接设备的位置。
6、/root:根用户的主目录。
7、/sbin:系统管理命令和守护进程。
8、/tmp:临时文件目录。
9、/var:应用程序使用的数据目录,如系统日志文件目录、匿名ftp目录等。
10、/usr:手动安装程序的目录。
对于文件系统的目录及其目录下的文件,我们可以直接进行访问,例如在/tmp下创建目录/tmp/test。
原始设备指不是由基础操作系统可以管理的磁盘,这句话不太好理解。给linux服务器添加一个硬盘,创建分区,但是不能直接用基本命令对这个分区进行操作,比如直接在上面创建目录,只有通过挂接才可以进行磁盘i/o操作。例子的命令:#mount /dev/sdb1 /mnt/dsk2, cd /mnt/dsk2,在这个目录下就可以创建文件等基本操作了。sybase等数据库可以直接指定原始设备为存储空间,其目的是使数据的修改立即写入磁盘。

运行级别
redhat linux 有0-6等几种运行级别。与solaris和aix的运行级别的定义差异较大。按照前面安装linux的设定,系统启动后进入的运行级别是3。要切换到别的运行环境只需输入#init 。下面列出各个运行级别的功能:
1、 运行级别0:关机操作。
2、 运行级别1:单用户维护模式。这种模式只能是用户root,上文我们更改遗忘的 root 密码就是在这种模式下进行的。另外,有时文件系统损坏时进行修复,也要在这种模式下进行。运行级别1相当与ms windows 2000的安全模式。
3、 运行级别2:多用户模式。所有配置文件系统被挂装,但nfs资源不可用。运行级别2与ms windows 2000的带网络的安全模式有些类似。
4、 运行级别3:这是linux服务器的正常模式,系统资源完全可用。
5、 运行级别4:用户自定义。
6、 运行级别5:多用户带网络服务加图形界面(init 3加图形)。这相当于ms windows的正常模式。如果没有安装xwindow就不能启用这个级别,用命令#startx也可从运行级别3切换到运行级别5。
7、 运行级别6:重新启动计算机。
在一般情况下,我们需要linux服务器工作在运行级别3下,偶尔为了操作方便会使用5这个级别。linux还有另外一些运行级别,但不多用。熟练掌握上述几个运行级别对于系统维护是很有帮助的。

远程操作linux服务器
linux服务器基本配置完成后,需要把它撤离测试台,也许要把它放在隔自己办公室很远的idc机房,或者由于同事无法忍受机器巨大的噪音而必须把它放在某个隔离的小房间的机柜里。我们更愿意坐在自己的办公桌前,用桌面系统或笔记本来远程控制和操作放在在某个地方的linux服务器,然后惬意的喝一杯咖啡。
telnet曾作为最主要的远程管理工具,由于其存在安全隐患而逐渐失宠,从redhat linux 7.1开始,默认情况下 telnet 服务是不启用的。安全shell包(ssh)由于它提供对数据的加密传输,具备较高的安全特性,因此越来越多的系统管理员正在在使用ssh来管理远程的 linux服务器。
要使用ssh服务,应当保证openssh-server软件包被安装,一般情况下,ssh服务器被配置成自动启动,在 linux服务器端,不必对ssh做任何设置,只需保证它被安装和启动就可以了。redhat linux 允许root用户远程登录,而redflag linux则在默认情况下不允许root 用户远程登录。可通过修改文件 /etc/sshd/sshd_c no”表示不允许root用户远程登录,“permitrootlogin yes”表示允许root用户远程登陆。我本人习惯使用root远程登录。
1、 从linux连接:输入命令#ssh <远程linux服务器的ip地址或域名>,回车后输入 root密码就可以得到root的shell环境,与直接操作linux服务器一样。
2、 从windows连接:有多款用来连接linux服务器的远程管理工具,比较有名的有securecrt、netterm、xmanager、putty等。securecrt是个不错的工具,它不仅支持ssh,还支持文件上传功能。windows下配置securecrt是比较容易的,在此不做介绍。
下图是securecrt使用ssh登录linux服务器的事例:

当作好上述的准备后,真正的远程操作/控制可以开始了。

第三招 linux下软件的安装
作者:田逸(sery@163.com) 《网管员世界》2005年12期

在linux系统上安装软件是不可避免的事情,尽管我们在安装操作系统时已经默认安装了一些应用软件如apache、vsftpd等。为了让linux服务器按我们的意图工作,我们可能需要购买、下载或自行开发相关的应用程序,然后把它正确的安装到linux服务器系统里。相对于windows的应用程序而言,linux应用软件的安装方法要繁杂一些,因为windows软件安装工作的大部分操作就是用鼠标点击“下一步”或“确定”,然而linux应用软件的安装确是五花八门,毫无定势。即便如此,linux应用软件的安装还是有章可循的,在本节里,我将向大家总结几种常用的linux应用软件的安装之法。

安装前的准备:要安装linux应用程序,需要把安装程序或安装包复制到linux服务器的硬盘上,然后再执行安装。如果欲安装的应用程序需要从网站下载,那么最好先用windows的机器下载,然后用远程管理工具securecrt把软件压缩包传输到linux服务器的硬盘。

一、 rmp包的安装
rpm包是一种为产生软件套件有redhat 开发的软件包格式。它可用于许多gun/linux发行版本上,例如redflag linux。安装rpm形式的软件包很简单,下面以一个安装实例来说明:
1、 命令行下安装。这里我们安装一个基于web的远程管理工具webmin.先检查包文件webmin-1.110-noarch.rpm,确保根用户具有执行权限,然后执行命令 # rpm ?ivh webmin-1.110-noarch.rpm ,按照提示就可以顺利完成安装。
2、 图形方式下安装。这与安装windows的应用程序相当,用鼠标双击欲安装的rpm包webmin-1.110.noarch.rpm图标,然后根据提示也可顺利完成安装。另外一个安装方法是启用rpm包管理器,然后选取欲安装的rpm包,这种方式也是很方便的。
有时候,我们并不能顺利的进行rpm包的安装,其中一个最大的障碍就是包的依赖关系,换言之,这个包的安装还需要另外的包被安装到系统。一个经验是在安装linux操作系统的时候,尽可能多的安装一些包,比如gcc、gcc+等。如果不怕麻烦,可以选择安装所有的包。还有一个避免措施是安装较新的linux发行版本,因为新版本默认安装包含更多的库和编译器(情况也不完全如此,有的软件包可能需要旧版本的库或编译器)。另外一个引起安装失败的原因是rpm数据库损坏,这是一种不太常见的故障,可以通过修复rpm数据库来解决这个问题-输入命令# rm ?f /var/lib/rpm/_db.* 删除rpm数据库,再执行命令 # rpm ?vv - -rebuilddb来重建rpm数据库。
rpm包格式的软件另外一个方便之处是软件升级,当有新的版本时,可以直接升级旧的版本。在命令行下,执行 # rpm ?uvh 就可以升级已安装的包成为新的版本。
命令 # rpm ?e <软件包> -nodeps 用来删除一个已安装的软件包,查看某个软件是否被安装到系统,用命令# rpm ?qa | grep <软件包> 察看某个软件包是否被安装在linux 服务器上。

二、 srmp包的安装
srmp这种安装方式应用场合不是太多。欲安装的软件包没有二进制版本或者想按照自己的意愿来安装软件包的时候,就需要使用源代码包来进行。按下面的步骤就可以容易的完成srpm包的安装:
1、 下载或拷贝srpm到硬盘。这儿笔者以cpio-2.5-6.src.rpm为例,把这个文件拷贝目录/tmp/upload下。
2、 安装文件cpio-2.5-6.src.rpm,以根用户(root)执行命令 # rpm ?ivh cpio-2.5-6.src.rpm, 完成后在目录/usr/src/redhat/spec生成文件cpio.spec.
3、 进入目录/usr/src/redhat/spec,运行命令 # rpmbuild ?ba cpio.spec,执行完毕后在目录/usr/src/redhat/rpms/i386下生成文件cpio-2.5-6.rpm.

三、 gzip/tar软件包的安装
这是linux下最普遍的安装方式。以个人的理解是gzip/tar包似乎比rpm包容易获取,以为很大一部分软件都是以gzip/tar的形式提供下载的。以下面的基本步骤来完成 gzip/tar 软件的安装:
1、 从网络下载或从光盘复制gzip/tar文件到硬盘某个目录。在这里以php-5.0.4.tar.gz为例,笔者把文件php-5.0.4.tar.gz复制到目录/root/upload,修改文件属性 # chmod 700 php-5.0.4.tar.gz。
2、 运行命令 # tar ?zxvf php-5.0.4.tar.gz 解压完成后生成目录php-5.0.4,相关的目录和文件都在php-5.0.4下。
3、 进入目录php-5.0.4,察看文件install获得在linux平台下的安装方法。
4、 运行命令 # ./c --prefix=/usr/local/php 配置安装环境,参数--prefix=/usr/php的作用是为php的安装指定目录,编译过程是一个异常复杂的行为,也是很灵活的一个功能,比如可以使用 --with-apxs=/usr/local/apache/bin/apxs让php与apache整合起来。配置过程中可以使用很多的参数值,这相对与ms-windows来讲就自由多了。
5、 编译和安装。配置成功完成后,就可以进行编译安装,通常是用命令 # make 和 # make install。
6、 清理安装的临时文件和卸载文件。清除临时文件 # make clear , 卸载软件 # make uninstall 或者删除安装目录 /usr/local/php.

四、 其他类型的安装方法
第一类:二进制文件。只需直接执行文件就行了,如j2sdk-1.4.2-01-linux-i586-rpm.bin,运行命令# ./j2sdk-1.4.2-01-linux-i586-rpm.bin(需要执行权限),然后接着往下完成安装。这个例子运行后生成文件j2sdk-1.4.2-01-linux-i586-rpm,参照标准的rpm包的方式完成安装。
第二类:带安装脚本的压缩包。把包解压后,运行目录里的安装脚本进行安装。这里举两个例子——webmin和sybase ase 12.5_3,从网上下载webmin-1.240.tar.gz 和 ase1253esd1xe_linux.tar.gz , 然后分别解压 # tar --zxvf webmin-1.240.tar.gz , 进入目录webmin-1.240 , 通过阅读readme文件得知安装方法是运行安装脚本 # ./setup.sh,按照给出的提示便可完成安装;运行命令 # tar ?zxvf w ase1253esdlxe_linux.tar.gz 后,生成安装脚本setup.sh和一大堆目录和文件,不过sybase没有给出install或readme文件,这里就是运行# ./setup.sh进行安装。

没有办法把所有的软件安装方法都列举出来,但是一般而言,软件的开发者都会给出安装方法——通过阅读readme或install文件获得。对于初学者而言,使用rpm包可能要容易一些,但是,如果要真正地掌握linux,体验开放系统的自由和随心所欲,源码安装是不可回避的。
安装软件是系统管理员的日常工作,绝大多数软件的安装还是很容易的,只要你耐心的阅读readme或install文件就可完成安装工作,至于象oracle、sybase那样的大型软件,对于初学者就是一场艰难之旅,这就需要我们花更多的时间来熟悉linux和软件本身,等到可以顺利的安装这些大型软件的时候,你就是一名合格的linux系统管理员了。



linux下的文件服务器
作者:田逸(sery@163.com) 《网管员世界》2006年第一期

对于一个真实的运行环境而言,配置和启用文件服务器都是很有必要的。把重要的数据集中存储和管理,其安全性显然比分布存储要可靠得多。为此,建议系统管理员配制和启用文件服务器作为基本的管理策略。
根据使用的方式来看,可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 samba服务器、nfs服务器。ftp的客户可以是任意平台,samba是专门针对windows客户,而nfs则是面向linux/unix用户的。下面是三种服务器的对比情况:
服务器名称 用户客户端平台 使用范围 服务端口
ftp windows/linux/unix/macos等 发布网站,文件共享 tcp/21
samba windows 文件共享(网上邻居) tcp/445,tcp/139
nfs linux/unix 网站发布,文件共享(mount) tcp/2049
接下来我们就逐个来配置和运行这些服务器。

nfs服务器
nfs是sun microsystem公司开发的网络文件系统,它是一种基于远程过程调用(rpc)的分布式文件系统架构。与samba相比较,nfs的数据吞吐能力更强。
1、 用命令 # rpm ?qa | grep nfs检查软件包nfs是否安装 ,如果输出没有输出,表明没有被安装,请自行安装之。
2、 配置nfs服务器。用任何文本编辑器配置文件/etc/exports,来确定需要给客户共享的目录。它的基本格式为 directory host(opti # comments ,这3个字段/列要在一行,directory与host(opti comments 可有可无。主机选项主要是给与挂接用户什么样的权限。目录directory表示要共享出去的目录,值得注意的是,在启用nfs服务以前,系统管理员应该仔细一些,比如不小心共享了根目录/,并且给与用户读写权限,这是十分糟糕的问题。因此,尽可能少的共享目录和赋予较小的访问权限。主机名host是一个很灵活的项目,可以是单个的主机名称(由/etc/hosts得到),主机ip地址,由域名服务器解析的主机名称,ip网络---网络号和子网掩码中间用“/”连接,nic等。下面列举一个例子。
/home/sery sery(r,w) #把目录/home/sery共享给主机sery,并且主机对目录#/home/sery有读写权限
/tmp 192.168.100.18(ro) #主机192.168.100.18对目录/tmp具备只读共#享权限
/media/cdrom 192.168.100.0/255.255.255.0(r,o) #整个网络有读取挂接在nfs
#服务器上的光驱光盘的读取权限







3、 启用nfs服务。分两步:首先启用portmap,然后启用nfs服务。# service portmap start;
# service nfs start。其中portmap的功能是启用远程过程调用,有时启用nfs不能成功,不妨检查一下portmap服务是否启动(# ps aux | grep portmap)。
4、 在客户端挂接nfs共享出来的目录。先在客户端创建一个挂接点,如 # mkdir /mnt/nfs ,而后使用命令把nfs服务器共享出来的目录挂接上,以第2步那个共享为例,我们挂接目录 /tmp , # mount ?t nfs 192.168.100.100:/tmp /mnt/nfs //假定nfs服务器的ip地址是192.168.100.100。
5、 访问nfs共享资源。接上步,改变文件目录 # cd /mnt/nfs就方便地实现了对nfs服务器目录/tmp的远程访问。
6、 卸载nfs文件系统。在客户端执行命令 # umount /mnt/nfs 就卸下了第4步挂接的nfs文件系统。
7、 其他事项。前面我们描述了在客户段用手工挂接nfs文件系统的操作,有的场合可能需要自动实现对nfs的挂接操作;修改文件/etc/fstab,把挂接项插入进去就可以了。对一个有较多连接的nfs服务器而言,有这样一个问题---用户在使用完挂接的文件系统后,并不会总记得卸载掉nfs挂接,这必然会增大nfs服务器的维护工作量以及白白占用有限的系统和网络资源;解决这个问题的办法是使用自动挂接器(automounter)。关于自动挂接器属于性能调优的范畴,在此不做描述。

samba服务器
这个世界既非只有linux/unix,也不是由microsoft windows 独霸天下的格局。也许出于linux/unix与windows既竞争又共存的事实,人们开发了 linux给windows用户提供文件共享的工具samba,这应该算得上linux的开放精神吧!
1、 检查是否安装samba软件包。# rpm ?qa | grep smb ,如果没有则自行安装samba。
2、 修改配置文件/etc/samba/smb.conf。早期的linux版本的配置文件smb.c
3、 添加系统账户。由于smb的访问是使用系统账号进行的,因此添加账号是必不可少的。这个比较简单,用命令 # useradd sery , # passwd sery,就可以依次添加若干系统账号。
4、 建立samba用户密码文件。虽然samba的用户是系统用户,但出于安全考虑,samba用户的密码并非创建系统用户时设定的用户密码。为了生成smb所需的密码,应该进行下面的操作:
# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
# smbpasswd sery //为系统用户设置smb口令
# chown root.root /etc/samba/smbpasswd
# chmod 600 /etc/samba/smbpasswd //不准别的用户访问





5、 启用samba服务器。我比较喜欢用 # service smb start 这种方式。
6、 检查服务是否正常启动。# service smb status 或者 # ps aux | grep smb。
7、 windows客户端访问 samba服务器共享目录。在windows环境下,右键点击“网上邻居”图标,然后左击“搜索计算机”,把samba服务器的ip地址填写在“计算机名”搜索栏,点击立即搜索。找到后双击图标,然后输入在samba服务器上预先设定的用户名和密码,就能合法访问samba服务器设定的共享资源。为了方便使用,可以把samba服务器提供的共享目录映射成本地驱动器。
8、 其他。上述配置的samba服务器,用户的访问共享目录是系统账号的主目录。要想把共享目录设置到其他位置,修改samba 的配置文件/etc/samba/smb.c

ftp服务器
在linux 环境下,有三个主要的ftp服务器:vsftpd、proftpd和wu-ftpd。因为安全方面的原因,vsftpd目前已经牢牢的占据了主导地位。从字面上我们就可以理解vsftpd所具备的主要特征---very secure(非常安全之ftp)。资料表明:1、使用ascii方式下载文件,在1g以太网上的下载速度可以达到86m/s。2、vsftpd可以支持15000个并发用户的访问。
1、 检查是否安装vsftp包。# rpm ?qa | grep vsftpd。如果没有则安装它。
2、 修改配置文件。vsftpd的配置文件为/etc/vsftpd/vsftpd.conf,如果不打算提供匿名访问的话,需要修改配置文件/etc/vsftpd/vsftpd.c
3、 启用vsftpd服务。#service vsftpd start。
4、 客户端连接访问。可以是专用的ftp客户端工具,也可以使用浏览器。用工具访问vsftpd服务器的速度要比用浏览器快很多。
5、 vsftpd服务器的用户。vsftpd服务器支持三种类型的拥护:本地用户(拥有系统账号)、虚拟用户(guest)、匿名账号;系统管理员应该根据安全需求来确定vsftpd服务器的用户访问策略。

tftp服务器
tftp服务器主要用于远程系统引导或远程备份象cisco这样的网络设备的配置文件,例如tftp服务器与dhcp、ftp服务器相配合,就可以成为一组linux安装服务器,以利于进行大规模的网络安装linux操作系统。
与上文提及的几种服务器不同,tftp服务器是由超级守护进程xinetd运行的。这使的tftp服务器的配置操作比独立运行守护进程的服务器(如vsftpd)简单很多。一般情况下,只要修改文件/etc/xinetd.d/tftp,把“disable =yes” 改成 “disable =no”,而后保存重新启动超级守护进程xinetd , # service xinetd restart 。

通过上面的实践,尽管我们已经能够顺利的完成各种文件服务器的搭建和运行,也基本上可以满足基本的用户服务需求,也许在实际的工作中,可能有更多的性能或安全要求。一个明显的例子就是,如果一个用户的服务器使用的磁盘空间没有做任何限制,那么他完全有可能把他从internet下载的连续剧上传到他自己的文件服务器目录,从而把有限空间的硬盘塞满。另外一个就是目录和文件的权限问题,特别是以本地账号(系统账号)访问文件服务器的情况,如果授权不当,将给系统管理带来极大的麻烦。
linux所倡导的自由精神也同样在这些服务器的配置操作中得以体现。可以通过修改这些服务器的配置文件来满足特定的需求,而且这些修改是非常灵活的。比如vsftpd服务器的配置文件/etc/vsftpd/vsftpd.c

附表:几种文件服务器的维护
服务器名称
启动脚本
守护进程
配置文件

nfs /etc/init.d/nfs
/etc/init.d/nfslock /usr/sbin/rpc.nfsd
/usr/sbin/rpc.mountd /etc/exports
samba /etc/init.d/smb
/etc/init.d/winbind /usr/sbin/smbd
/usr/sbin/nmbd /etc/samba/smb.c
vsftpd /etc/xinetd.d/vsftpd /usr/sbin/vsftpd /etc/vsftpd/vsftpd.c 

web服务器apache
田逸(sery@163.com) 《网管员世界》2006年第2期

相信使用过计算机的人,都应该有过访问web服务器的经历。在网站浏览新闻、登录邮件服务器收发邮件、通过网络购物、以浏览器方式配置防火墙等等,无一例外都有一个web服务器在为访问者提供服务。尽管有别的方式来实现对设备或服务的访问(如配置卫星调制解调器),但以web方式提供访问的策略依然是最受欢迎的,因为它更直观,也更方便。也是因为这样,是的web服务器得以更广泛的流行。
apache是linux主流的服务器,为linux的迅速繁荣立下汗马功劳。根据资料显示,截至2005年12月,在internet上,apache服务器以70.98%的绝对优势雄居web服务器之首。在这节内容中,我们就话花些时间来讨论linux下大名鼎鼎的web服务器apache。请初学者注意,不要花费心思去搜寻名字为apache这样的软件包,它现在的名字是httpd。

apache 服务器的安装
有两种安装apache服务器的机会:安装linux操作系统的时候选择安装web服务器和安装完系统后安装apache服务器。如果是在安装linux操作系统期间没有安装apache,这就需要使用包文件来安装。一个运行着的系统,你怎么知道它装没装apache服务器?用下面这个命令来检查 # rpm ?qa | grep httpd ,如果没有输出,则表明没有安装。下图是某个安装了apache服务器输出的一个输出范例。

提示:如果是以源码安装的apache服务器,则此种方法无效,需要用find工具查找httpd文件是否存在。
1、rpm包的安装。linux的安装光盘和互联网上,都可以得到apache的rpm安装包,然后把安装包复制到硬盘,并切换到安装包文件所在的目录。本案以httpd-2.0.52-9.ent.rpm为例,执行命令 # rpm ?ivh httpd-2.0.52-9.ent.rpm ,然后再执行 # rpm ?ivh httpd-manual-2.0.52-9.ent.rpm 把手册也安装上去。
2、源码安装。到网站www.apache.org下载欲安装的版本,笔者喜欢尝试最新的版本,当前的最新有效版本为httpd-2.2.0.tar.gz 。在httpd-2.2.0.tar.gz 文件所在的当前目录解压文件 # tar zxvf httpd-2.2.0.tar.gz ,然后切换目录到 httpd-2.2.0 ,进行配置 # cd httpd-2.2.0 ; ./c --prefix=/usr/local/apache ,顺利完成这步后,接着进行编译安装 # make;make install 。其中,配置这一过程,使用了选项“--prefix=/usr/local/apache”来指定apache的安装目录,使apache服务器所需的大部分文件都被复制在这个目录里。实际上,配置是一个很灵活的选择,根据需要可以添加更多的选项,来支持更多的功能。由于这里打算先讲述基本功能,其它选项将在后面的应用中逐步增加。

配置文件
apache的配置文件是httpd.conf,一般在/etc/http/conf或/usr/local/apache/conf目录,以rpm包形式安装的apache的配置文件的位置是/etc/httpd/conf/httpd.c apache服务器进行得最多的操作恐怕就是在不时更改这个文件的内容。当然,如果只是运行简单的静态网页,也可以不用对它做任何更改。
打开配置文件httpd.c

上传网页文件及目录
上传网页文件及目录的最佳方式是启用ftp服务。关于怎样安装、配置、启用ftp服务在这里不再介绍。创建一系统用户,使该用户对目录/usr/local/apache/htdocs具有读写权限或者该用户的主目录为/user/local/apache/htdocs。在这里我们创建一用户,使其主目录为apache的根文档目录。# useradd ?d /usr/local/apache/htdocs webuser //添加的用户为webuser,
# passwd webuser //再给该用户设置一个访问密码。这样就可以很方便的修改或上传网页文件和目录了。有的人认为,用ssh客户端工具也可以实现文件的上传,但这是不方便的,因为ssh客户端工具只可以传送文件而不能上传目录。

启用/关闭apache服务
上面的步骤都准备好以后,就可以启用这个网站服务器了。启用方法如下:
# /usr/local/apache/bin/apachctl start //源码安装的启动方式
#/usr/local/apache/bin/apachectl stop
# service httpd start //rpm包安装的启动方式
# service httpd stop
如果不出意外,apache服务器将如我们所期待的那样运行起来,我们只要在某台能访问apache服务器的计算机浏览器里输入apache服务器的ip地址或者预先解析好的域名,网站的主页就会出现在浏览器里。在apache服务器端,通过输入命令 # ps -aux | grep httpd 检查apache服务器是否正在运行。到此,一个具备基本功能的apache服务器诞生了。

虚拟主机
有时候,我们可能需要用一个apache服务器来做多个web服务器,比如运行几个不同的网站,这样就可以大大地节省开支。
使用虚拟主机大致有以下几个步骤:
1、 确定使用虚拟主机的方式。虚拟主机有基于域名、ip、端口等几种形式,应该根据自己的实际情况来决定。
2、 修改配置文件/etc/httpd/conf/httpd.c / usr/local/apache/conf/httpd.conf.在这个文件里,已经给出了如何更改的范例,它是以注释方式出现的。只要按照范例的格式添加需要的内容即可。然后保存退出配置文件。
3、 域名解析(基于域名的虚拟主机)。这一步需要在域名服务器上进行。
4、 启用/关闭虚拟主机。启用/关闭apache守护进程即可,但这将关闭所有的web服务。能否单独关闭某个虚拟主机,我本人没这方面的经验。
接下来,我就给出以个虚拟主机的实例。先描述一下需求:一台服务器,要求运行一个以php为脚本的网站,另外还要用它来做网络流量监控(需要web服务)。在这里,我们采用二进制源码包的方式来安装配置apache虚拟服务器,以便于对apache服务器有更深刻的理解。
(一)安装apache服务器。从www.apache.org下载包httpd-2.2.0.tar.gz到目录/root,然后执行操作
# tar zxvf httpd-2.2.0.tar.gz //包解压
# cd # tar zxvf httpd-2.2.0.
#./c --prefix=/usr/local/apache --enable-module=most --enable-shared=max
# make
# make install
到这儿,apache就算安装好了,先测试一下,运行命令 # /usr/local/apache/bin/apachectl start ,然后在与之联网的计算机的浏览器里输入运行apache服务的计算机的ip地址,出现测试页面表明配置一切正常。
(二)安装php。下载包php-4.3.11.tar.gz到目录/root,然后执行下面的操作
# tar ?zxvf php-4.3.11.tar.gz //解压文件
#./c -?prefix=/usr/local/php -?with-apxs2=/usr/local/apache/bin/apxs //正常//完成后会在/usr/local/apache/modules 里生成文件 libphp4.so,并且会在//apache的配置文件httpd.c loadmodule php4_module //modules/libphp4.so
# make
# make install
#cp php.ini-dist /usr/local/lib/php.ini //拷贝文件

完成后看是否真在目录/usr/local/apache/modules生成文件libphp4.so,再打开配置文件httpd.c loadmodule php4_module modules/libphp4.so是否被自动追加。
(三)修改apache配置文件/usr/local/apache/conf/httpd.c
typeadd application /x-httpd-php .php4 到307行的位置,当然其他位置也是可以的。请特别注意:.php4前面有一个空格。我第一次配置php整合apache的时候就犯了这个错误,用了好几天的时间才弄明白的。php前面那个“.”(小黑点)一定不要写漏了,会有什么后果,请读者自己去尝试一下。
(四)启动一下apache服务器。找几个php脚本的网页文件,把它复制到apache指定的根文档目录/usr/local/apache/htdocs,然后在与之联网的计算机的浏览器中输入apache所在机器的url(形如 http://192.168.100.10/test.php),来检验一下配置是否成功。
(五)创建虚拟服务器。apache/2.2.0与以前的版本有些差异,它是以包含文件的方式来加载用户定义的虚拟主机配置,前面的版本定义虚拟主机就在httpd.c /usr/local/apache/conf/extra/httpd-vhosts.c conf/extra/httpd-vhosts.c conf/extra/httpd-vhosts.conf,这一行在httpd.conf的行号是394。然后保存后退出。接着我们打开文件/usr/local/apache/conf/extra/httpd-vhosts.c
#

serveradmin webmaster@dummy-host.example.com
documentroot /www/docs/dummy-host.example.com
servername dummy-host.example.com
serveralias www.dummy-host.example.com
errorlog logs/dummy-host.example.com-error_log
customlog logs/dummy-host.example.com-access_log common

等我们先安装配置mrtg,然后再回过头来修改文件/usr/local/apache/conf/extra/httpd-vhosts.c
(六)启用交换机的snmp功能。要监控连接在交换机每个端口的服务器的网络流量,必须启用交换机的snmp,这样就不必更改被监控的服务器的任何设置。关于怎样启用交换机的snmp,请参照相关文档。
(七)安装和配置mrtg。把软件包下载到硬盘,解压后直接安装就是。配置mrtg有点复杂,在这里仅仅给出方法,具体意思就不做说明,请大家自己去查手册。
#./cfgmaker --global "workdir: /usr/local/mrtg/html"
--global "ic /mrtg" --global "language: chinese"
--global "opti growright,bits" --show-op-down
--ifref=nr --ifdesc=descr --output=/etc/mrtg/mrtg.cfg
public@192.168.100.250>/dev/null //是一个整行,交换机的snmp的
//community的值是public
#./ indexmaker -t "title" -o /usr/local/mrtg/html/index.html
/etc/mrtg/mrtg.cfg
(八)修改虚拟主机配置文件。需要指定根文档目录、服务器名称这几项。

namevirtualhost *


serveradmin webmaster@sery.com //假定域名为sery.com
documentroot /usr/local/mrtg/html
servername mrtg.sery.com
errorlog /usr/local/apache/logs/error_log
customlog /usr/local/apache/logs/access_log combined
directoryindex index.html index.php


保存后退出。如果要对虚拟主机的访问进行用户验证,还需要在apache的主配置文件对虚拟机的根文档目录进行相关的处理。把下面的行插入到apache的主配置文件httpd.c


authname "mrtg
authtype basic
authuserfile /usr/local/apache/.mrtg //带点是为了使文件的属性为隐藏
require valid-user


保存后退出。然后运行命令 # /usr/local/apache/bin/htpasswd ?c /usr/local/apache/.mrtg sery
按照提示设定用户sery的访问密码。
(九)做域名解析。在域名服务器上解析主机mrtg.sery.com.
(十)启用apache服务。用指令 # ps ?aux | grep httpd 检查apache是否正常运行,然后在另外的计算机的浏览器里输入apache服务器的url,如输入www.sery.com则应该访问到主配置文件设定的网页,如果输入mrtg.sery.com则访问上面设定的虚拟机页面,并且需要输入正确的用户名和密码才能访问。

总结
通过上面的实践,我们可以得出这样一个结论:apache服务器功能设定的主要操作就是修改配置文件—主配置文件httpd.con及包含配置文件。当然,apache的配置不仅仅是上文所描述的那些,可以说是非常丰富,也是非常灵活的,限于篇幅,不再详叙。至于要让apache随系统启动,可以把守护进程/usr/local/apache/bin/httpd&加在文件/etc/rc.local里。
偏方:为了在同一环境下使用更多的apache服务,可以安装多个apache到不同的目录,安装目录在安装过程中的配置操作 ./c ? prefix=<安装目录> 制定,所有apache的配置原则都是一致的。所有配置完成后,把他们全部启动起来。关于配置多个虚拟主机与安装多个apache服务,究竟有多大的差别,望各位读者自己去做评判。  

linux域名服务

作者:田逸(sery@163.com) <网管员世界> 2006年第3期

域名服务是互连网上一个十分重要的服务,也是internet能够迅速普及的一个重要原因。域名解析服务解决了用户记忆ip地址的麻烦,因为记住有意义的主机名比记住ip地址要容易得多,例如主机名www.ibm.com与ip地址 129.42.17.99,我相信www.ibm.com更加容易被记住。
域名服务的功能是一种将主机名转换成ip地址的一种机制,因为计算机之间的通讯是不能直接识别主机名,只能识别ip地址。有多种把主机名转换成ip地址的方法,但是在internet上,是用域名服务器(domain name server)来处理成千上万个主机和ip地址的转换。

申请域名空间
中国的域名管理机构是中国国家互连网中心(www.cnnic.net.cn),从2002年12月16日起,国家互连网中心不再直接面对最终用户提供cn域名注册相关服务,域名注册服务将转由cnnic认证的域名注册服务机构提供。在注册域名时,最好选择本地的域名注册服务机构。
注册域名成功后,需要注册商为自己的域名空间解析一个或多个主机,大部分的域名注册服务商会分配给用户帐号,允许用户在自己的域名空间做解析操作。为了自己建立域名服务器,最好申请一段全球唯一单播ip地址。

安装域名服务器bind
大部分linux发行版都附带bind安装包,先运行命令 # rpm ?qa | grep bind ,看是否安装域名服务软件bind.如果没有安装的话,可以用linux的安装光盘,找到rpm安装包后手动安装。正确安装成功后,会生成一些相应的配置文件、守护进程及启动脚本;如:在目录/etc下有named.c rndc.key, rndc.c /etc/rc.d目录下的启动脚本named,以及 /var 下的区域文件named.ca、named.local文件。也可以下载bind的源码包来安装。

配置域名服务器
配置域名服务器似乎比配置其他的服务要麻烦一些,因为除了修改配置文件外,还需要自己动手编写在配置文件里定义的区域文件,而其他一些服务程序仅仅是更改一下配置文件。在配置文件中定义的区域越多,需要手动创建的区域文件也越多。
在未做配置之前,让我们先熟悉一下配置文件named.c
opti {
directory “/var/named”; //定义区域文件所在的目录
};

z “.” in { //顶级域名服务器区域文件名称
type hint;
file “named.ca”;
};

z “localhost” in { //本机地址正向解析
type master; //dns服务器的类型分主与辅助两种
file “localhost.z
allow-update {n
};

z “0.0.127.in-addr.arpa in { //本机地址反向解析
type master;
allow-update{n
file “named.local”;
};
在实际的配置过程中,只需在named.conf文件里,照“zone{};”代码块的格式添加相关的行,是不是很容易呢?当然,根据具体的需要,还可以在named.c “forwarder {};”.现在,假设申请了一个域名空间sery.com,一段可用的全球唯一单播ip地址,并且在域名注册服务商的服务器上解析出一台主机ns.sery.com,其ip地址为202.108.99.222(假设的,勿对号入座),接下来就可以着手来配置了。
先把安装了域名解析服务的机器ip设置成202.108.99.222,然后修改配置文件/etc/named.c
//默认的代码块如上,此处省略以减少篇幅
z “sery.com” in { //正向解析
type master;
file “named.sery.com”;
};

z “99.108.202-addr.arpa” in { //反向解析
type master;
file “ip.sery.com”;
};



include “/etc/rndc.key”;
保存文件然后退出。然后参照默认的区域文件/var/named/localhost.zone的样式手动创建在/etc/named.conf中定义的区域文件named.sery.com及ip.sery.com文件。localhost.z
$ttl 86400 //解析的地址在数据库中缓存时间
$origin localhost
@ ld in soa @ root (
20060101 //序列号
28800 //刷新时间
7200 //重试时间
3600000 //过期时间
3h //保存时间
)
ld in ns @
ld in a 127.0.0.1
用vi编辑器把文件/var/named/named.sery.com改成下列式样:

$ttl 86400
@ in soa sery.com. root.sery.com. (
20060101
28800
144000
3600000
86400
)
;name servers
in ns ns.sery.com. //主dns
in ns ns1.sery.com. //辅dns
;mail server
in mx mail.sery.com.

ns in a 202.108.99.222
ns1 in a 202.108.99.200
www in a 202.108.99.201
mail in a 202.108.99.202
ftp in a 202.108.99.203
再创建反向解析文件 # vi /var/named/ip.sery.com:
$ttl 86400
@ in soa 99.108.22-addr.arpa. root.sery.com. (
20060101
28800
144000
3600000
86400
)
in ns ns.sery.com.
in ns ns1.sery.com.
in mx mail.sery.com.
200 in ptr ns1.sery.com.
201 in ptr www.sery.com.
202 in ptr mail.sery.com.
203 in ptr ftp.sery.com.
222 in ptr ns.sery.com
到这个步骤,一个具备基本功能的域名解析服务器就创建成功了。一个不可忽视的问题是在域名空间和主机名的后面都有一个代表顶级域的点“.”,很多配置任务不能成功的原因就是把这个“.”给丢掉了。出于安全考虑,最好给配置文件和区域文件加□□□□问权限,只允许超级用户有访问权限。即 # chmod 700 /etc/named.c , # chmod ?r 777 /var/named/.也可以把区域文件用 # tar cvf named.tar /etc/named 打包后把它备份到安全的地方,这个方案对于充当多域解析或要解析大量主机的服务器很有好处,因为在发生故障或迁移服务器时恢复dns服务将大大节省时间。
在比较重要的网络环境中,可能需要服务不间断的运行,一个单独的dns无法保障网络服务不间断的提供,这需要配备一个或多个辅助域名服务器.辅助域名服务器需要单独的服务器来担当.与主域名服务器的配置文件相比,只需少许的变化.接前面的例子,我们把另外一台linux 服务器的ip地址设置成202.108.99.200,修改配置文件/etc/named.c
opti {
directory “/var/named”;
};

z “.” in {
type hint;
file “named.ca”;
};

z “localhost” in {
type master;
file “localhost.z
allow-update {n
};

z “0.0.127.in-addr.arpa in {
type master;
allow-update{n
file “named.local”;
};
z “sery.com” in {
type slave;
file “named.sery.com”;
master { 202.108.99.222;};
};

z “99.108.202-addr.arpa” in {
type slave;
file “ip.sery.com”;
master {202.108.99.222;};
};



include “/etc/rndc.key”;
修改完配置文件后,把主服务器上创建的区域文件拷贝到辅助服务器的/var/name目录下.

dns服务的启动和关闭
由于dns服务需要持续运行,在大部分情况下,都是把它作为系统服务自动运行的.要确保相应的运行级别目录有启动运行脚本.运行命令 # service named start 启动dns服务,命令 # service named stop 停止dns 服务.

dns服务的验证
有很多种方法检验dns服务器配置的

推荐阅读
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
author-avatar
萝莉控的许123321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有