1、摘 要Apache服务器世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器软件之一。在Linux中,Apache技术是目前互联网中一项应用之一。现在的网站不仅仅是提供一些静态网页就可以了,它还包括怎样存储数据、怎样查询数据、怎样处理用户的请求、怎样创建包含正确信息的文档,要适应这些需要有很多选择。目前,很多人选择这样的组合:Apache+Php+MySQL来建设自己的网站,因为它们都可以免费从网上下载,而且很容易在Linux平台下应用,网站安全性、稳定性和执行效率都非常优秀。本设计就介绍了在Linux系统中Ap
2、ache的配置、搭建Apache Web服务器及DHCP的配置。重点分析了Apache服务器的配置。关键词Linux、Apache、RPM软件包、DHCP 配置目录第一章 系统概述11.1系统需求分析11.2系统设计背景11.3系统功能简介21.4系统开发的目标2第二章 虚拟机32.1虚拟机的概述32.2 Linux系统的概述32.3在虚拟机中安装Linux系统42.4 Linux系统的登录及基本设置62.4.1 Linux系统的登录62.4.2 Linux的基本配置6第三章 配置DHCP83.1 DHCP的基本概念83.1.1 DHCP的定义83.1.2 DHCP的功能83.1.3 DHCP
3、的体系结构83.1.4 分配IP地址过程93.1.5 更新租约93.2配置DHCP服务器9第四章 配置Apache服务器134.1Apache 服务器的安装134.2配置IP地址144.3开启/关闭Apache服务器144.4使用WinSCP上传网页154.5 浏览网页16第五章 虚拟主机的设置175.1虚拟主机的概念175.2基于IP地址的虚拟主机175.3基于域名的虚拟主机18总结20致谢21参考资料:22第一章 系统概述1.1系统需求分析由于在操作系统中Linux是最安全的,也是支持和搭建Apache服务器最完美搭档,所以Web服务商会选择这种最具安全性有最廉价的组合。现在的市场上这种组
4、合所占份额最大,发展前景也非常大。对于中小企业来说建立自己的网站,对外展示自己的页面是最平常不过的事情了。目前最流行的建立WWW服务工具就要属Apache与IIS了。IIS在实际使用中经常出现500错误,而且有的时候还会出现莫名其妙的假死现象。用户需要不定期的重新启动IIS服务才能保证网站的正常。Apache在配置上比IIS要复杂,不过一经设置完毕就可以长期的工作了。大型网站都使用APACHE作为自己的WWW服务提供工具。APACHE的所有配置都保存在配置文件中,使用时完全按照配置文件中记录的信息执行。一般不会发生莫名其妙的假死情况。扩展性是指WWW服务提供工具是否可以应用于多种场合,多种网络
5、情况,多种操作系统。IIS只能在微软公司的windows操作系统下使用,离开了windows他将一事无成。无法移植到其他类型的操作系统中。APACHE是个多面手,他不仅仅应用于windows,对于Unix,Linux以及FreeBSD等多种操作系统来说他都可以胜任工作。而且不同操作系统的配置步骤基本类似,可移植性非常高。1.2系统设计背景Apache是Internet上最流行的Web服务器软件,它安全、高效、稳定、适用于各种平台,关键它还是免费的和开发源代码的。从1995年开始直到今天,经过不断的发展,Apache小组开发的Apache HTTPD服务器软件已经成为市场的领导者。在所有的Web
6、服务器软件中,Apache占有绝对优势,远远领先于Microsoft的IIS服务器软件。许多世界知名的网站都是基于Linux操作系统的,如yahoo、Hotmail等网站。在Linux系统上架设Web服务器所使用的最多最广泛的软件就是Apache。它功能强大,高度稳定,与Linux配合得十分完美,是在Linux上构建Web站点时首选的方案。另外,也有Windows平台下的Apache软件。随着网络应用的飞速发展,基于Apache1.x或IIS构建的Web站点的安全隐患已引起大家的普遍关注,而且应用的扩展也受到了很大的限制。1.3系统功能简介本系统是基于Linux系统基础上的,由于Apache是
7、基于开源代码的服务器软件,它的核心使用代码来实现的,而且代码是免费的,在架设Web 服务器时用到了Apache。该系统主要就通过架设网页为基础,介绍如何建立一个安全,动态的网站,本系统主要实现了Apache的配置及DPCP的配置。1.4系统开发的目标掌握Linux系统的基本操作,熟悉Apache服务器及DHCP的基本配置。第二章 虚拟机2.1虚拟机的概述通过虚拟机软件,你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。使用VMware,你可以同时运行Linux各种发行版、Dos、Window
8、s 3.1、Windows 95、Windows 98、 Windows NT,Windows 2000、FreeBSD等,你甚至可以在同一台计算机上安装多个Linux发行版、 多个Windows版本。本系统在VM上安装了Red Hat Linux ,成功 运行了Red Hat Linux。目前,VMware对虚拟硬盘容量大小的支持尚有一定的限制,最大为2GB。而且,一旦虚拟硬盘的 大小建立好了,以后就不允许用户再更改了。虚拟硬盘实际上是Windows NT下的一个文件,而对于 Guest OS,它则永远被看作是一个IDE硬盘。在虚拟机中,目前尚没有SCSI、RAID的概念。2.2 Linux
9、系统的概述Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对
10、它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习 Unix操作系统的人都可以从Linux中获益。2.3在虚拟机中安装Linux系统VMware软件的安装和其他软件没什么区别,安装过程没有特殊要求,一路单击“下一步”按钮就可以。如图1-图9所示 图2-1 VMware启动后的界面 图2-2 新建虚拟机向导 运行VMware Workstation,选择菜单“文件”/“新建”/“虚拟机”,进入虚拟机安装向导欢迎界面,之后按向导提示选择典型安装,选择操作系统类型,如安装Red Hat Linux,设置存储位置,分配磁盘空间等
11、,直至虚拟机创建完成,操作系统安装过程中提示与在一台裸机上安装过程一样。 图2-3 选择虚拟机配置 图2-4 选择安装的操作系统 图2-6 选择网络类型 图2-5 命名虚拟机和选择位置 图2-7 指定磁盘容量 图2-8 虚拟机设置 图2-9 新建好的虚拟机在安装完的虚拟机上如图2-9所示,双击CD/DVD(IDE 1.0)使用iso文件进行装系统。装完后如下图所示。图2-10 Linux登录界面2.4 Linux系统的登录及基本设置2.4.1 Linux系统的登录因为Linux有图形界面和命令模式,下面是用命令登录的,注意我们是Root超级用户登录(图2-11)。界面的切换是ctrl+F1F7
12、。图2-11登录成功界面2.4.2 Linux的基本配置给网卡配置IP地址图2-12 配置IP地址使用ifconfig 查看、修改配置文件图 2-13 修改IP地址配置使用Ping命令测试网络图2-14 测试网络第三章 配置DHCP3.1 DHCP的基本概念3.1.1 DHCP的定义DHCP是TCP/IP协议集所提供的一种实现自动分配IP配置信息的子协议。3.1.2 DHCP的功能 动态分配(每一个IP地址都具有租约) 分配网关、WINS、DNS系统信息 与DNS相结合实现动态更新 保留IP地址给指定主机3.1.3 DHCP的体系结构DHCP服务器:运行DHCP服务软件包和DHCP协议的主机(
13、装有WIN2K、WINNT、LINUX、UNIX系统的主机)DHCP客户机:运行DHCP协议可以发送DHCP请求的主机(装有WIN2K、WINNT、WIN95/98/ME/XP、LINUX、UNIX系统的主机)3.1.4 分配IP地址过程 CLIENT发送广播DHCPDISCOVER寻找DCHP服务器。 服务器发送广播DHCPOFFER响应CLIENT的请求。 CLIENT会检查得到的IP信息是否完整并且发送广播DHCPREQUEST通知DHCP服务器已获得IP地址。 SERVER发送广播DHCPACK确认客户机的请求,表示分配成功。3.1.5 更新租约 每次DHCP客户端重新启动时, 都会自
14、动利用广播的方式,给DHCP服务器发送DHCPREQUEST更新信息,要求继续租用原来的IP地址 50%时,CLIENT以点到点方式发送DHCPREQUEST请求服务器的更新租约。 87.5%时,CLIENT发送广播DHCPREQUEST寻找其他DHCP服务器,如果更新成功的话,DHCP服务器向CLIENT发送DHCPACK;如果不成功的话则发送DHCPNACK。3.2配置DHCP服务器要求:配置DHCP服务器,为子网A内的客户端提供DHCP服务,具体参数如下;IP地址段:192.168.1.101 192.168.1.200子网掩码:255.255.255.0网关地址:192.168.1.1
15、域名服务器:192.168.1.1 子网所属域的名称:rqy.org默认租约有效期:1天最大租约有效期:3天1.为服务器自身配置静态IP地址,编辑/etc/sysconfig/network-scripts目录脚本ifcfg-eth0,图3-1编辑目录脚本2. 编辑/etc/sysconfig/network文件图3-2 network文件的编辑3.启动TCP/IP网络#service network restart图3-3 启动网络1. 添加路由表为确保Windows的DHCP客户端能够使用服务器,先要把地址255.255.255.255加入到服务器的路由表里,但有时不能解析,所以先要为25
16、5.255.255.255配置一个主机名。在/etc/hosts文件中加如下一行,为广播地址设置主机名dhcp.255.255.255.2555 dhcp再把广播地址加入路由表。#route add-host dhcp dev eth0图3-4添加路由表5.编辑/ect/dhcpd.conf文件图3-5编辑dhcp.config配置文件6.建立租约数据库文件当/etc/dhcpd.conf文件设置好后,还要用下面的命令创建名为/etc/dhcp.leases的空白文件。7.启动DHCP服务器Service dhcpd start或者:/tc/rc.d/init.d/dhcpd restart图
17、3-6启动服务器8.检测是否正常启动,出现bootps说明正常#netstat -utll图3-7测试成功第四章 配置Apache服务器4.1Apache 服务器的安装Apache服务器的安装的安装有两种方法即web服务器安装的时候安装Apache服务器和通过包安装1RPM包的安装。从Linux的安装光盘和互联网上,都可以得到Apache的RPM安装包,然后把安装包复制到硬盘,并切换到安装包文件所在的目录。本文以httpd-2.0.52-9.ent.rpm为例。执行命令:# rpm-ivh httpd-2.0.52-9.ent.rpm然后再执行:# rpm -ivh httpd-manual-
18、2.0.52-9.ent.rpm把手册也安装上去。2源码安装。到网站http:/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.tar.gz;/configure-prefix=/usr/local/apache顺利完成这步后,接着进行编译安装:# make;make install。其中,配置这一过程,使用了
19、选项“-prefix=/usr/local/apache”来指定Apache的安装目录,使Apache服务器所需的大部分文件都被复制在这个目录里。实际上,配置是一个很灵活的选择,根据需要可以添加更多的选项,支持更多的功能。配置文件可以获悉根文档的目录位置。前面安装的Apache的根文档位置是rpm包安装的Apache的根文档位置是/var/www/html,欲运行自己的网站,需要把做好的网页文件和目录复制到Apache的根文档才可以。4.2配置IP地址图 4-1配置IP地址4.3开启/关闭Apache服务器# service httpd start/rpm包安装的启动方式# service h
20、ttpd stop图4-2开启服务器/var/www/html下会有一个默认的网页index.html删除命: 图4-3删除默认网页4.4使用WinSCP上传网页传网页文件这样就可以很方便地修改或上传网页文件和目录了。有人认为,用SSH客户端工具也可以实现文件的上传,但这是不方便的,因为SSH客户端工具只可以传送文件而不能上传目录.用winscp传输。注意:上传时要用root用户登录,不然别的用户没有修改权限。图4-4传网页文件4.5 浏览网页只要跟apache服务器在一个网段就可以访问。有时候看到的网页图片不显示。那就是路径不对。修改一下路径就可以了。例如:http:/192.168.0.1
21、56进入的首页为图4-5 我的网页示例第五章 虚拟主机的设置5.1虚拟主机的概念虚拟主机(Virtual Host)是指在一台主机上运行的多个Web站点,每个站点均有自己独立的域名,虚拟主机对用户是透明的,就好像每个站点都在单独的一台主机上运行一样。如果每个Web站点拥有不同的IP地址,则称为基于IP的虚拟主机;若每个站点的IP地址相同,但域名不同,则称为基于名字或主机名的虚拟主机,使用这种技术,不同的虚拟主机可以共享同一个IP地址,以解决IP地址缺乏的问题。要实现虚拟主机,首先必须用Listen指令告诉服务器需要监听的地址和端口,然后为特定的地址和端口建立一个段,并在该段中配置虚拟主机。5.
22、2基于IP地址的虚拟主机基于IP的虚拟主机拥有不同的IP地址,这就要求服务器必须同时绑定多个IP地址。这可通过在服务器上安装多块网卡,或通过虚拟IP接口(Red Hat Linux将其称为IP别名)来实现,即在一张网卡上绑定多个IP地址。有两种配置方法使Apache支持基于IP地址的虚拟主机,一是为每个主机运行一个httpd守护进程,各守护进程的配置文件不同,分别以不同的User、Group、Listen和ServerRoot来运行,并通过Listen指令来指定为哪个IP地址和端口的虚拟主机服务。该方法适合于虚拟主机彼此间安全性要求很高的场合。启动httpd守护进程时,可使用命令“httpd
23、-f 配置文件名及路径”来指定所要加载的配置文件:另一种方法是使用一个httpd守护进程来支持所有的虚拟主机。在服务器需要为大量请求服务的情况下,该方法可以获得较高的性能。下面主要针对该方法介绍基于IP地址的虚拟主机的实现方法。当前服务器有192.168.167.156和192.165.167.157两个IP地址,对应的域名分别为和,试为其创建基于IP地址的虚拟主机,端口使用80。这两个站点的根目录分别为/var/www/example2和/var/www/example3。服务器配置步骤如下: 注册虚拟主机所要使用的域名。编辑/etc/hosts文件,在文件中添加以下两行内容:192.168
24、.167.156 192.168.167.157 创建Web站点根目录/var/www/example2和/var/www/example3。 编辑httpd.conf配置文件,保证有以下Listen指令:Listen 80 配置虚拟主机。 ServerName DocumentRoot /var/www/example2ServerName DocumentRoot /var/www/example3 在/var/www/example2和/var/www/example3目录中,利用vi编辑器创建index.html主页文件。 重启Apache服务器,然后测试虚拟主机。若键人http:/l
25、ocalhost,返回的将是服务器的主站点的主页内容。基于IP地址的虚拟主机,可以使用域名访问,也可使用IP地址访问。基于主机名的虚拟主机,应采用域名访问,若使用IP地址,则访问的是服务器的主站点。另外,在同一台主机上,还可以混用基于域名的虚拟主机和基于IP地址的虚拟主机。5.3基于域名的虚拟主机基于主机名(域名)的虚拟主机是根据客户端提交的HTTP头中,关于主机名部分决定的。配置虚拟主机之前,应首先配置DNS服务器,让每个虚拟主机的域名,都能解析到当前服务器所使用的IP地址,然后再配置Apache服务器,使其能辨识不同的主机名即可。由于SSL协议自身的原因,基于主机名的虚拟主机不能做成SSL
26、安全服务器。l)虚拟主机的创建步骤 在DNS服务器中为每个虚拟主机所使用的域名进行注册,让其能解析到服务器所使用的IP地址。 在配置文件中使用Listen指令,指定要监听的地址和端口。Web服务器使用标准的80号端口,因此一般可配置为Listen 80,让其监听当前服务器的所有地址上的80端口。 使用NameVirtualHost指令,为一个基于域名的虚拟主机指定将使用哪个IP地址和端口来接受请求。如果对多个地址使用了多个基于域名的虚拟主机,则对每个地址均要使用此指令。命令用法:“Name VirtualHost地址:端口”,端口号为可选项,若虚拟主机使用的是非标准的80号端口,则应明确指定所
27、使用的端口号。比如,若基于域名的虚拟主机使用61.186.160.104这个IP地址,则指定方法为:“NameVirtualHost 61.186.160.104”。另外也可表达为NameVirtualHost *。此处的“*”通配任意的IP地址。当IP地址无法确定时,使用“*”是很方便的,比如,若服务器使用的是动态IP地址,而域名也是使用动态域名解析时,因为“*”匹配任何IP地址,无论IP地址如何变化,都不需要修改虚拟主机的配置。如果希望在一个IP地址上运行一个基于域名的虚拟主机,而在另外一个地址上运行一个基于IP的或是另外一套基于域名的虚拟主机,此时就必须使用具体的IP地址,而不能使用“*
28、”。 使用容器指令定义每一个虚拟主机。容器的参数必须与Name VirtualHost后面所使用的参数保持一致。在容器中至少应指定ServerName和DocumentRoot,另外可选的配置还有ServerAdmin、DirectoryIndex、ErrorLog、CustomLog、TransferLog、ServerAlias、ScriptAlias等,大部分的配置命令都可用在容器中,但与进程控制相关的PidFile、TypesConfig、ServerRoot、Listen和NameVirtual不能使用。2)虚拟主机的匹配方式当一个请求到达时,服务器会首先检查它是否使用了一个能和Na
29、meVirtua1Host相匹配的IP地址。如果匹配,就会查找每个与这个IP地址相对应的配置段,并尝试找出一个Server Name或Server Alias配置项与请求的主机名(域名)相同的,若找到则使用该虚拟主机的配置,并响应其访问请求,否则将使用符合这个IP地址的第一个列出的虚拟主机。从中可见,排在最前面的虚拟主机成为默认虚拟主机。当请求的IP地址与NameVirtua1Host指令中的地址匹配时,主服务器中的Document Root将永远不会被用到,因此,若要在现有的Web服务器上增加虚拟主机,必须也要为主服务器提供的Web站点,创建一个配置块,在该虚拟主机中ServerName和D
30、ocumentRoot的内容应该与全局的ServerName和DocumentRoot保持一致,还要把这个虚拟主机放在所有的最前面,让其成为默认主机。总结这次毕业设计让我更加熟悉了从理论到实践的跨越。从当初的查阅图书,到现在服务器的配置成功,这中间有很多值得回味的地方。apache服务器的安装就占用了我一周的时间,到最后才恍然大悟,其实就是一个端口的配置问题我没有搞懂。 整个过程中,从需求分析到设计、测试,我都力求规范化和文档化,努力让自己以前学的知识运用到本系统中,尽量保证整个系统的开发进度和质量,顺利完成这次的毕业设计,为自己的大学生涯画上一个完美的句号。不过,在系统开发过程中,好多知识都
31、是随学随用,就增加了很多不必要的麻烦。比如说刚开始对RPM软件包安装、虚拟主机的配置不是很了解,虽说这些都会消耗系统设计的时间,但在老师、同学以及自己的不断努力下,不怕麻烦,不怕重复,当克服了这些问题之后,我会感觉到自己的知识在一点一滴地积累,不知不觉中增加。我相信,只要肯钻研,只要挤时间,一切自己想要的知识都可以掌握。致谢三年的大学生活,我在各个方面都获得了巨大的进步,学习成绩和综合素质等各个方面都得到了很大的提高。在此,我要特别感谢领导给的大力培养和老师专业方面的深入指导,特别是我的指导老师李列文老师和我的辅导员老师。论文顺利完成的前提是老师给我提供了舒适的工作、学习环境,并给予我悉心的关
32、怀与指导。开发的同时,和同学们之间的相互探讨也使我受益匪浅。因此我再次感谢老师和我的同学朋友们,再次向所有在本人设计过程中给予过帮助与关怀的所有朋友表示深深的感谢! 参考资料:1 骆耀祖,刘远东,骆珍仪.Linux网络服务器管理教程.北京:电子工业出版社,2007.1661672 李洋,汪虎松.Red Hat Linux 9系统与网络管理教程.北京:电子工业出版社,2006.2482633 冉林仓.Red Hat Linux 9编程开发与网络管理.北京:电子工业出版社,2006.1711924 李成大.操作系统Linux篇.北京:人民邮电出版社,20055 柳青.Linux应用教程.北京:清华大学出版社,20086 邱世华.Linux操作系统之奥秘.北京:电子工业出版社,20087 22