| 建立Linux下的Web服务器可以选用Netscape的Enterprise Server,或者使用免费软件Apache。Netscape可以完全支持基于IP的虚拟主机,但对基于域名的虚拟主机却不支持,因此只能显示最外面的一层网页。基于IP的虚拟主机需要一个独立的IP;基于域名的虚拟主机,可以多个虚拟主机共用一个IP。利用HTTP 1.1协议,靠不同的域名来区分可以大大节省IP地址资源。Apache完全支持以上两种虚拟主机方式,并且克服了Netscape经常出现服务塞死的现象。Apache是目前互联网上使用广泛的Web服务器。下面详细讲解如何利用Apache来架设自己的Web服务器。 安装 首先我们要介绍Apache的安装过程。 第一,先到http://www.apache.org下载最新版本的Apache。如果是在Windows下,把该文件下载在C盘,C盘在Linux中对应于/dev/hda1。 第二,进入Linux,并以 root 的身份登录并进行挂接文件系统。 # mkdir c # mount -t vfat /dev/hda1 /c
因为我们将Apache的源码放置于c盘,所以现在要先把它挂载至新建的目录/c里面。 第三,把此程序拷贝到/tmp下,以便操作。 #cp /c/apache_1.3.9.tar.gz /tmp
注意:Linux下所有的文件名都是区分大小写的。接下来,我们就要把源码从压缩包中解压缩出来。相应的命令为: #cd /tmp #tar zxvf apache_ 1.3.9.tar.gz 解压缩后进入存放源码的目录,使用编译配置脚本进行环境的设置。 #cd /tmp/apache_1.3.9 #./configure--sysconfdir=/etc/httpd --datadir=/home/httpd --logfiledir=/var/log/httpd --enable-module=most --enable-shared=max --disable-rule= WANTHSREGEX 这里告诉Apache把配置文件保存在/etc/httpd目录中,其它文件(例如HTML手册文档、CGI-BIN目录)都保存在 /home/httpd目录下。也告诉Apache将最常用的模块作为DSO模块编译。DSO就是Dynamic Shared Object的缩写。通过DSO支持的模式编译Apache,能够随时从Apache里面增加和移除模块,而不需要重新编译它,具体的模块见下文。 第四,在执行./configure 之后,配置脚本会自动生成 Makefile。这时,我们就可以开始编译源码了。 #make 源码编译完成后,就要使用make install安装Apache至缺省的目录下。当然也可以通过以下命令: #rpm -ivh apache*.rpm
安装Apache的RPM包。这种方法较为简单,因此不再详细介绍。 配置 安装完Apache后,开始它的配置工作。在其主目录下有httpd.conf、access.conf、srm.conf 及Magic等四个文件,其中httpd.conf是主要的配置文件,access.conf是访问控制配置文件,srm.conf 则是对于Web主机的文件资源的配置文件。Magic是针对mime模块的设置,我们一般不改动这个文件。 在Apache运行的时候,它先调用httpd.conf,接着是srm.conf,最后是access.conf。在较新的Apache发行版本中,它建议srm.conf和access.conf 两个文件的内容为空,把设置选项完全存放在httpd.conf之中,这样会更加有利于服务器的安全性。 下面就以httpd.conf来开始我们神奇的Web网络世界。 1.全局环境变量的设置 httpd.conf是以全局环境变量的设置开始的。我们将要一步步介绍其具体的参数。 ServerType standalone ServerRoot "/etc/httpd"
第一行“ServerType”指令,说明Apache是以一个独立的(Standalone)守护进程的身份运行于后台,还是由另外的后台守护进程(Xinetd)在接到HTTP请求的时候唤醒。对于正式的互联网站点来说,standalone可以提供比xinetd方式更快的客户端响应速度。因此我们选用standalone模式。第二行代码介绍了该服务器配置文件的相对根目录,一般是/etc/httpd,我们在安装时已经设置好。请注意,不要在此目录最后加“/”。 LockFile /var/lock/httpd.lock PidFile /var/run/httpd.pid ScoreBoardFile /var/run/httpd.scoreboard
LockFile在安装Apache时指定选用了USE_FCNTL _SERIALIZED_ACCEPT,USE_FLOCK_SERIALIZED_ACCEPT等参数。作为Apache连接出现错误的记录文件,它会把进程的PID值自动加在该文件中。请注意,该文件应保存在本地的硬盘中。PidFile记录着每次服务器运行时的进程号。ScoreBoardFile是某些特定系统上服务程序中父子进程通讯记录的文件。 #ResourceConfig conf/srm.conf #AccessConfig conf/access.conf
以上两项是指定服务器资源及控制权限的文件,在默认情况下并不使用它们。 Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 |