第07070707章WebWebWebWeb服务的配置与应用本章导读�Web服务的概述�Apache服务器�Apache服务器的安装�Apache服务的基本配置�启动和停止Web服务�CGI运行环境的配置�PHP运行环境的配置�JSP运行环境的配置7.1WebWebWebWeb服务的概述•HTTPHTTPHTTPHTTP协议•WebWebWebWeb服务•WebWebWebWeb服务工作原理HTTP协议的目的就是使信息更易于获取,而不管它们的地理位置在哪里。当使用超文本作为文档的标准格式后,人们开发了可以快速获取这些超文本文档的协议——HTTP协议,即超文本传输协议。HTTP是应用级的协议,主要用于分布式、协作的信息系统。HTTP协议是通用的、无状态的,其系统的建设和传输的数据无关。HTTP也是面向对象的协议,可以用于各种任务,包括名字服务、分布式对象管理、请求方法的扩展、命令等。在Internet上,HTTP通信往往发生在TCP/IP连接上,其默认的端口为80,也可以使用其他端口。Web服务Web服务的实现采用客户/服务器模型。客户机运行客户程序——浏览器,它提供良好、统一的用户界面。浏览器的作用是解释和显示Web页面,响应用户的输入请求,并通过HTTP协议将用户请求传递给Web服务器。Web服务器一端运行服务器程序,它最基本的功能是侦听和响应客户端的HTTP请求,向客户端发出请求处理结果信息。Web服务通常可以分为两种:静态Web服务和动态Web服务。Web服务工作原理①Web浏览器使用HTTP命令向一个特定的服务器发出Web页面请求。②若该服务器在特定端口(通常是TCP80端口)处接收到Web页面请求后,就发送一个应答并在客户和服务器之间建立连接。③服务器Web查找客户端所需文档,若Web服务器查找到所请求的文档,就会将所请求的文档传送给Web浏览器。若该文档不存在,则服务器会发送一个相应的错误提示文档给客户端。④Web浏览器接收到文档后,就将它显示出来。⑤当客户端浏览完成后,就断开与服务器的连接。7.2ApacheApacheApacheApache服务器开放源代码的Apache(阿帕奇)服务器起初由Illinois大学Urbana-Champaign的国家高级计算程序中心开发,后来Apache被开放源代码团体的成员不断地发展和加强。开始时,Apache只是Netscape网页服务器(现在是SunONE)的之外的开放源代码选择。渐渐地,它开始在功能和速度上超越其他Web服务器。由于Apache服务器拥有牢靠可信的美誉,因此从1995年1月以来,Apache一直是Internet上最流行的Web服务器。7.3ApacheApacheApacheApache服务器的安装1.安装Apache服务器使用下面的命令检查系统是否已经安装了Apache或查看已经安装了何种版本。rpm-qhttpd要安装Apache,应将RedHatEnterpriseLinux5第2张安装盘放入光驱,加载光驱后在光盘的Server目录下找到Apache的RPM安装包文件httpd-2.2.3-6.el5.i386.rpm,可使用下面命令安装Apache。rpm-ivh/mnt/Server/httpd-2.2.3-6.el5.i386.rpm7.3ApacheApacheApacheApache服务器的安装2.测试Apache服务器执行“/etc//etc//etc//etc/init.d/httpdinit.d/httpdinit.d/httpdinit.d/httpdstartstartstartstart”命令,确认Web服务已经启动后,在客户端使用的Web浏览器中输入Linux服务器的IP地址进行访问。7.4Apache服务的基本配置•httpd.conf文件的格式•Web服务的基本配置•创建虚拟目录•设置目录权限•用户认证•虚拟主机的配置httpd.conf文件的格式httpd.conf配置文件主要由全局环境(Section1:GlobalEnvironment)、主服务器配置(Section2:'Main'serverconfiguration)和虚拟主机(Section3:VirtualHosts)3个部分组成。每部分都有相应的配置语句,该文件所有配置语句的语法为“配置参数名称参数值”的形式,配置语句可以放在文件中的任何地方,但为了增强文件的可读性,最好将配置语句放在相应的部分。httpd.conf中每行包含一条语句,行末使用反斜杠“\”可以换行,但是反斜杠与下一行中间不能有任何其他字符(包括空白)。httpd.conf的配置语句除了选项的参数值以外,所有选项指令均不区分大小写,可以在每一行前用“#”号表示注释。Web服务的基本配置1.设置主目录的路径DocumentRoot/var/“2.设置默认文档DirectoryIndexindex.htmlindex.html.var3.设置Apache监听的IP地址和端口号Listen804.设置相对根目录的路径ServerRoot/etc/httpd“5.设置日志文件(1)错误日志ErrorLoglogs/error_log(2)访问日志CustomLoglogs/access_logcombinedWeb服务的基本配置6.设置网络管理员的E-mail地址ServerAdminlindenstar@163.com7.设置服务器主机名称ServerName192.168.16.177:808.设置默认字符集AddDefaultCharsetUTF-8由于西欧(UTF-8)是Apache的默认字符集,因此当客户端访问服务器的中文网页时会出现乱码的现象,解决的办法是将语句“AddDefaultCharsetUTF-8”改为“AddDefaultCharsetGB2312”,然后重新启动Apache服务,中文网页就能正常显示了。创建虚拟目录虚拟目录有以下优点。(1)便于访问。(2)便于移动站点中的目录。(3)能灵活加大磁盘空间。(4)安全性好。使用Alias选项可以创建虚拟目录。【例1】创建名为/down的虚拟目录,它对应的物理路径是“/software/download”。Alias/down/software/download【例2】创建名为/ftp的虚拟目录,它对应的物理路径是“/var/ftp”。Alias/ftp/var/ftp设置目录权限可以使用Directory目录路径和/Directory这对语句为主目录或虚拟目录设置权限,它们是一对容器语句,必须成对出现,它们之间封装的是具体的设置目录权限语句,这些语句仅对被设置目录及其子目录起作用。下面是主配置文件中设置目录权限的例子。Directory/var/,denyAllowfromall/Directory设置目录权限目录特性选项允许服务器端包含功能,但禁用执行CGI脚本IncludesNoExec允许服务器端包含功能Includes可以在该目录中使用符号连接FollowSymLinks允许在该目录下执行CGI脚本ExecCGIAll包含了除MultiViews之外的所有特性,如果没有Options语句,默认为AllAll允许内容协商的多重视图MultiViews其实是Apache的一个智能特性。当客户访问目录中一个不存在的对象时,如访问“”,则Apache会查找这个目录下所有a.*文件。由于icons目录下存在a.gif文件,因此Apache会将a.gif文件返回给客户,而不是返回出错信息MultiViews允许目录浏览当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档时,Apache以超文本形式返回目录中的文件和子目录列表(虚拟目录不会出现在目录列表中),如图7-8所示Indexes说明命令用户认证1.建立口令文件htpasswd-c/etc/httpd/mysecretpwdlinden2.建立虚拟目录并配置用户认证Alias/mysecret/usr/local/mysecretDirectory/usr/local/mysecretAuthTypeBasicAuthNameThisisaprivatedirectory.PleaseLogin:AuthUserFile/etc/httpd/mysecretpwdRequireuserlindentom/Directory虚拟主机的配置1.虚拟主机的概述利用虚拟主机技术,可以把一台真正的主机分成许多“虚拟”的主机,从而实现多用户对硬件资源、网络资源共享,大幅度降低了用户的建站成本。虚拟主机具有以下优点。(1)节约投资(2)节约维护费用(3)可以获得专业的维护而无需维护人员与昂贵的电源系统(4)拥有更加稳定的性能虚拟主机的配置2.基于IP地址的虚拟主机VirtualHost192.168.16.201ServerName192.168.16.201:80ServerAdminweb1@163.comDocumentRoot/usr/:80ServerAdminweb2@163.comDocumentRoot/usr/虚拟主机的配置3.基于域名的虚拟主机当Web服务器收到访问请求时,就可以根据不同的DNS域名来访问不同的网站。它的优势就是不需要更多的IP地址,容易配置。NameVirtualHost192.168.16.201VirtualHost@163.comDocumentRoot/usr/:80ServerAdminweb2@163.comDocumentRoot/usr/启动和停止WebWebWebWeb服务1.启动Web服务/etc/init.d/httpdstart2.停止Web服务/etc/init.d/httpdstop3.重新启动Web服务/etc/init.d/httpdrestart7.5启动和停止WebWebWebWeb服务4.自动启动Web服务如果需要让Web服务随系统启动而自动加载,可以执行“ntsysvntsysvntsysvntsysv”命令启动服务配置程序,找到“httpd”服务,在其前面加上星号(*),然后选择“确定”即可。7.6CGICGICGICGI运行环境的配置•PerlPerlPe