Web服务的配置与应用

WWW的目的就是使信息更易于获取,而不管它们的地理位置在哪里。当使用超文本作为WWW文档的标准格式后,人们开发了可以快速获取这些超文本文档的协议——HTTP协议,即超文本传输协议。
HTTP是应用级的协议,主要用于分布式、协作的信息系统。HTTP协议是通用的、无状态的,其系统的建设和传输与数据无关。HTTP也是面向对象的协议,可以用于各种任务,包括名字服务、分布式对象管理、请求方法的扩展、命令等。

在Internet上,HTTP通信往往发生在TCP/IP连接上,其默认的端口为80,也可以使用其他端口。


Web服务的实现采用客户/服务器模型。
客户机运行WWW客户程序——浏览器,它提供良好、统一的用户界面。浏览器的作用是解释和显示Web页面,响应用户的输入请求,并通过HTTP协议将用户请求传递给Web服务器。
Web服务器运行服务器程序,它最基本的功能是侦听和响应客户端的HTTP请求,向客户端发出请求处理结果信息。
Web服务通常可以分为两种:静态Web服务和动态Web服务。


Web浏览器使用HTTP命令向一个
特定的服务器发出Web页面请求。
若该服务器在特定端口(通常是
TCP 80端口)处接收到Web页面
请求后,就发送一个应答并在客户
和服务器之间建立连接
服务器Web查找客户端所需文档,
若Web服务器查找到所请求的文档,
就会将所请求的文档传送给Web浏
览器。若该文档不存在,则服务器
会发送一个相应的错误提示文档给
客户端。Web浏览器接收到文档后
,就将它显示出来。
当客户端浏览完成后,就断开与
服务器的连接。



开放源代码的Apache(阿帕奇)服务器起初由Illinois大学Urbana-Champaign的国家高级计算程序中心开发,后来Apache被开放源代码团体的成员不断地发展和加强。渐渐地,它开始在功能和速度上超越其他Web服务器。由于Apache服务器拥有牢靠可信的美誉,因此从1995年1月以来,Apache一直是Internet上最流行的Web服务器。


后台进程:httpd
脚本:/etc/rc.d/init.d/httpd
使用端口:80(http),443(https)
所需RPM包:httpd
配置路径:/etc/httpd/conf/httpd.conf
默认网站存放路径:/var/www/html/


安装好Apache服务器后可以进行测试了。
启动Apache服务器:servicehttpd start


httpd.conf文件的格式
Web服务的基本配置
创建虚拟目录
设置目录权限
虚拟主机的配置


httpd.conf配置文件主要由全局环境、主服务器配置和虚拟主机3个部分组成。每部分都有相应的配置语句,该文件所有配置语句的语法为“配置参数名称参数值”的形式。
httpd.conf中每行包含一条语句,行末使用反斜杠“\”可以换行,但是反斜杠与下一行中间不能有任何其他字符(包括空白)。
httpd.conf的配置语句除了选项的参数值以外,所有选项指令均不区分大小写,可以在每一行前用“#”号表示注释。


ServerRoot
用于指定指定守护进程httpd的运行目录,httpd在启动之后自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个路径之下。
Timeout
用于定义客户程序和服务器连接的超时间隔,超过这个时间间隔(以秒计)后,服务器将断开与客户机的连接。
Listen
设定http服务的默认端口。
User/Group
设定服务器程序的执行者与属组


KeepAlive
在HTTP1.0中,一次连接只能作传输一次HTML请求,而KeepAltve参数用于支持HTTP1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTML请求。虽然只有较新的浏览器才支持这个功能,但最好还是使用“on”这个选项。
MaxKeepAliveRequests
MaxKeepAliveRequests为一次连接可以进行的HTML请求的最大请求次数。将其值设为0,将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求大多的页面,通常达不到这个上限就完成连接了。
KeepAliveTimeout
KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,当时间间隔超过了这个参数设置的值之后,服务器就断开连接。


MaxClients
服务器的能力毕竟是有限的,不可能同时处理无限多的连接请求,因此参数MaxClients就用于规定服务器支持的最多并发访问的客户数,如果这个值设置得过大,系统在繁忙时不得不在过多的进程之问进行切换来为这些客户进行服务,这样对每个客户的反应就会减慢,并降低了整体的效率。如果这个值设置得较小,那么系统繁忙时就会拒绝一些客户的连接请求。当服务器性能较高时,可以适当增加这个值的设置。
MaxRequestsPerChild
使用于进程方式的Web务,常用的方式是一个子进程为一次连接服务,这样造成的问题就是每次连接都需要生成、退出于进程的系统操作,这些额外的处理过程占据了计算机的大量处理能力。因此最好的方式是一个子进程可以为多次连接请求服务,这样就不会造成这些生成、退出进程引起的系统消耗。Apache就采用了这样的方式,一次连接结束后,子进程并不退出,而是停留在系统中等待下一次服务请求,这样就极大地提高了性能。


ServerAdmin
设定站点管理者的电子邮件
ServerName
设定服务器的名称
DocumentRoot
设定服务器的共享路径
DirectoryIndex
设定默认调用文件顺序
ErrorLog
设定错误记录文件名称


虚拟目录有以下优点。
便于访问。
便于移动站点中的目录。
能灵活加大磁盘空间。
安全性好。
使用Alias选项可以创建虚拟目录。
【例】创建名为/down的虚拟目录,它对应的物理路径是“/software/download”。
Alias /down  "/software/download“
注意:如果系统开启了SELinux,则还需要去改变真实目录的上下文。


可以使用<Directory 目录路径>和</Directory>这对语句为主目录或虚拟目录设置权限,它们是一对容器语句,必须成对出现,它们之间封装的是具体的设置目录权限语句,这些语句仅对被设置目录及其子目录起作用。下面是主配置文件中设置目录权限的例子。


<Directory "/var/www/bbs">

OptionsIndexesMultiViews

Order   allow,deny

Allow   from  192.168.0.20

</Directory>


命令

说明

Indexes

允许目录浏览

        当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档时,Apache以超文本形式返回目录中的文件和子目录列表(虚拟目录不会出现在目录列表中),如图7-8所示

MultiViews

允许内容协商的多重视图

MultiViews其实是Apache的一个智能特性。当客户访问目录中一个不存在的对象时,如访问“http://192.168.16.177/icons/a”,则Apache会查找这个目录下所有a.*文件。由于icons目录下存在a.gif文件,因此Apache会将a.gif文件返回给客户,而不是返回出错信息

All

All包含了除MultiViews之外的所有特性

如果没有Options语句,默认为All

ExecCGI

允许在该目录下执行CGI脚本

FollowSymLinks

可以在该目录中使用符号连接

Includes

允许服务器端包含功能

IncludesNoExec

允许服务器端包含功能,但禁用执行CGI脚本


当要限制某一个主机是否能够访问目录时,可加入以下的参数来设置:
Order allow,deny  //默认拒绝所有主机访问
Allowfrom  192.168.0.100  //单独开放
Order  deny,allow //默认充许所有主机访问
Deny  from 192.168.0.100  //单独禁止


建立口令文件
htpasswd -c /etc/httpd/pwfile linden
添加用户
htpasswd /etc/httpd/pwfilelonny
修改用户密码
htpasswd /etc/httpd/pwfilelonny
建立虚拟目录并配置用户认证

Alias /mysecret "/usr/local/mysecret“

<Directory "/usr/local/mysecret">

AuthType Basic

AuthName "This is a private directory.Please Login:"

AuthUserFile /etc/httpd/mysecretpwd

Require valid-user linden tom

</Directory>


利用虚拟主机技术,可以把一台真正的Web主机分割成许多“虚拟”的Web主机,每个一个虚拟Web主机共享物理资源,从而实现多用户对硬件资源、网络资源共享,大幅度降低了用户的建站成本。
虚拟主机具有以下优点。
节约投资
节约维护费用
可以获得专业的维护而无需维护人员与昂贵的电源系统
拥有更加稳定的性能

当Web服务器只有一个IP时,可通过基于域名的虚拟Web主机技术来共享多个站点,当服务器收到访问请求时,就可以根据不同的DNS域名来访问不同的网站。它的优势就是不需要更多的IP地址,容易配置。
在配置文件中修改虚拟主机配置部分内容:

NameVirtualHost*:80

<VirtualHost *:80>

DocumentRoot "/usr/www/html"

ServerNamewww.yinhepx.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot "/usr/www/bbs“

ServerNamebbs.yinhepx.com

</VirtualHost>


基于IP的虚拟Web主机与基于域名的虚拟Web主机配置类似,但在这种虚拟Web主机中,每个站点对应着不同的IP地址。
其配置如下:

#NameVirtualHost  *:80 //将此行注释掉

<VirtualHost 192.168.0.20:80>

DocumentRoot "/usr/www/html“

ServerNamewww.yinhepx.com

</VirtualHost>

<VirtualHost 192.168.0.200:80>

DocumentRoot"/usr/www/bbs"

ServerName bbs.yinhepx.com

</VirtualHost>

启动Web服务
service httpd start
停止Web服务
service httpd stop
重新启动Web服务
service httpd restart
测试Web配置文件
service httpdconfigtest
Web浏览器、Web服务器和CGI程序之间的一个工作流程。
用户通过Web浏览器访问CGI程序。
Web服务器接收用户请求并交给CGI程序处理。
CGI程序执行基于输入数据的操作,包括查询数据库、计算数值或调用系统中其他程序。
CGI程序产生某种Web服务器能理解的输出结果。
Web服务器接收来自CGI程序的输出并且把它传回Web浏览器。
默认情况下,Red Hat Enterprise Linux安装程序会将Perl语言解释器安装在系统上,如果没有安装请自行安装。
安装
rpm -ivhperl-xxxxxxx.rpm
设置存放CGI文件的目录权限应在主目录权限设置的Options指令中添加一个“ExecCGI”选项。
标明CGI程序的文件类型找到“#AddHandlercgi-script .cgi”语句,删除前面的“#”即可,该语句告诉Apache扩展名为“.cgi”的文件是CGI程序。
在CGI文件存放的目录(如/var/www/html/)中建立一个名为test.cgi的文件,该文件的内容如下。
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "Hello World!\n";
执行命令
“chmod +x /var/www/html/test.cgi”,为test.cgi文件添加运行权限。
在客户端的浏览器访问“http://Linux服务器的IP地址/test.cgi” 。


PHP的特点
PHP解释器的安装
设置php.conf文件
测试PHP运行环境
PHP具有下列特点。
跨平台:PHP程序可以运行在UNIX、Linux或Windows操作系统下。
嵌入HTML:因为PHP语言可以嵌入到HTML内部,所以PHP很容易学习。
简单的语言:与Java和C++不同,PHP语言坚持以基本语言为基础,然而它的功能强大到足以支持任何类型的Web站点。
效率高:和其他的解释性语言相比,PHP系统消耗较少的系统资源。当PHP作为ApacheWeb服务器的一部分时,运行代码不需要调外部二进制程序,服务器解释脚本不需要承担任何额外负担。
支持各种数据库:用户可以使用PHP存取Oracle、Sybase、MS-SQL、MySQL、PostgreSQL、dBase、FilePro和Informix等类型的数据库。
文件存取:PHP有许多支持文件存取函数。
文本处理:PHP有许多函数处理字符串,其中包括模式匹配的能力。
复杂的变量:PHP支持标量、数组、关联数组等变量,这给用户提供了支持其他的高级数据结构的坚实基础。
支持图像处理:用户可以使用PHP动态创建图像。
默认情况下Red Hat Enterprise Linux安装程序不会将PHP解释器安装在系统上,用户可使用下面的命令检查系统是否已经安装了PHP解释器或查看已经安装了何种版本。
rpm -q php
如果系统还没有安装PHP解释器,加载光驱后在光盘的Package目录下找到PHP解释器的RPM安装包文件
php-xxxxxxx.rpm
相关程序文件
php-cli-xxxxx.rpm
php-common-5.1.6-5.el5.i386.rpm,
使用下面的命令安装PHP解释器。
rpm -ivh php-common-xxxx.rpm
rpm -ivh /mnt/Server/php-cli-xxxx.rpm
rpm -ivh /mnt/Server/php-xxxx.rpm
使用yum安装php解释器
yum install “php*”
在Apache主配置文件httpd.conf中默认有一条“Includeconf.d/*.conf”语句,它的含义是将目录/etc/httpd/conf.d/中的所有*.conf文件包含到httpd.conf中。
PHP解释器的安装程序会自动在目录/etc/httpd/conf.d/中建立一个名为php.conf的配置文件,这个文件包含了PHP的配置选项。
上面的配置内容在软件安装好后就已经配置好了,只需重启Web服务器即可生效。
测试,写一个PHP的网页到网站所在目录。

 echo “<? phpinfo()  ?>” >  test.php


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章