Linux下Web服务器架设攻略

09-14

今天我们来看看如何将Web服务器架在Linux系统下。

LINUX系统中常见的有:CERN、NCSA、Apache三种方式,一般最常用的方法就是用Apache。此种方式特点明显,配置简明,具有最大的对系统兼容性,以下是用此方式配置基于Linux的WEB服务器的全过程。

一. Apache服务器慨述。

其特征是显著的:可以运行于所有计算机平台,自然包括UNIX/LINUX系统;集成代理服务器和Perl编程脚本;对用户的访问会话过程跟踪;可对服务器日志定制;还支持虚拟主机及HTTP认证等等。再配合LINUX系统本身的强大,我们没理由不选择Apache。

二. 安装Apache。

一般说来,所有Linux版本应该包含有此软件包的安装,如果你在安装Linux系统没有安装此软件包,可以从安装光盘或是http://www.apache.org/网站上找到其安装文件(注意网上有两种版本:一种是下载后需重新编译的源代码,一种是只需解压就可使用的可执行文件),然后执行安装即可。

1. 如果你下载的是可执行文件包如:apache_1.2.4.e.tar.gz(当中的数字视你下载的版本而定,此为举例),那这就相对简单,比较适合对Linux编译不熟悉的初级用户,只需执行:tar xvzf apache_1.2.3.4.tar.gz即可完成安装。

2. 如果下载的是源代码如:apache_1.2.4.rpm,则先用rpm –ivh apache_1.2.4.rpm安装,然后在src目录下执行“./configure”;接着执行“make”命令编译Apache;接着将编译好的可执行文件复制到/etc/httpd/bin目录下;再将Apache的配置文件:httpd.conf、access.conf 、srm.conf和mime.types复制到/etc/httpd/conf目录下,才算完成安装。

三. 配置Apache,实现WEB服务。

其实,到现在你的Linux已经开始WEB服务了,你要做的只需将Linux系统连入互联网,然后将主页存放于“/home/httpd”目录下即可。但为了让此WEB服务器更有效率的工作,我们还需对其作些设置,具体需要配置的其实就是刚才复制的那4个文件。以下对其主要的两个配置文件httpd.conf和access.conf作些说明:

1. httpd.conf.
此文件是主配置文件,主要用来设置服务器启动的基本环境,也就是说它负责安排WEB服务器怎样运行。其相关设置参数为:

ServerTypestandalone/inetd:此选项作用就是指定以何种方式运行WEB服务器。其中standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务;其效率更高。主要是设置主服务器进程侦听的特定端口地址,方法为:Port[number] (缺省为80)。

而inetd模式相对standalone来说它更安全,此模式也是RedHat Linux运行Apache的默认方式。如果你的版本不是RedHat,则需在/etc/inetd.conf文件里加入以下一新行:httpd stream tcp nowait httpd /etc/httpd/bin/httpd –f /etc/httpd/conf/httpd.conf;然后在/etc/services文件里同样添加一新行:httpd 80/tcp httpd即可。

ErrorLog:用来指定错误记录的文件名称和路径。格式如:ErrorLog /var/httpd/error.log。
ServerRoot:用来指定将服务器的配置及日志文件存于何处。格式如:ServerRoot /etc/httpd。
Server Admin: 设置WEB管理员的E-Mail地址.格式如:Server [email protected]

2. srm.conf
这是Apache的资源配置文件,作用为告诉服务器你想在WWW站点上提供的资源及如何提供,其主要参数为:

DocumentRoot: 用来指定主文档的地址。格式如:DocumentRoot /home/httpd/html。
DirectoryIndex:跟windows平台的IIS设置一样,用来指定首页文件的名称。大家都知道,首页一般都以“index.html”或“index.htm”作为文件名。当设置为这两种文件名之后,只要用户发出WEB请求,即将调入以“index.html”或“index.htm”命名的主页。格式如:DirecotryIndex index.html index.htm。

经过以上简单的配置后,你的WEB服务器已经具备基本的功能了。接下来要做的就是重启WEB服务,使刚才的配置生效,我们可以用以下命令来完成:

/etc/rc.d/init.d/httpd restart

最后,我们来看看基于Apache服务的安全方面。Apache服务器通过认证系统能控制哪些主机可以访问某些特定的站点。具体来说,它通过两种方式来实现:

一种是基于主机地址的认证,但由于目前大部分上网用户使用的都是动态地址,因此此种方式并没多少实际意义;

另一种方式是基于用户名/口令的认证方式,不言而喻,此种方式更适合如今的网络状况,而对于具体的用户名/口令认证实现,不在本文讨论范围,大家可以参阅相关资料作进一步学习。