当前位置:Linux教程 - Linux文化 - 教你在Redhat 上搭建 Apache 服务器

教你在Redhat 上搭建 Apache 服务器


一. Apache介绍

Apache HTTP服务器是现在互连网上最流行的Web服务器. 众所周知, 它的

最早版本是于1995年12月1日发布的. 最初的Apache版本是由美国伊利诺斯

大学香槟分校(University of Illinios, Urbana-Champaign.)国家超级

计算应用中心(NCSA)的Rob McCool先生开发的the Public Domain HTTPS

Daemon程序发展而来. 它具有强大的功能, 如基于名字和IP地址的虚拟主机,

用户验证, URL重定向(URL Rewrite), SSI(服务器端嵌入), SSL(安全套接层)

等更多.

提示:

互连网上大概有65%的Web服务器使用Apache HTTP服务器. 这个数字是通过

Netcraft网站了解的. 如果您对互连网上Web服务器调查报告感兴趣的话,

可以访问以下的网址:

http://news.netcraft.com/archives/web_server_survey.html

现在最新的数据是: Apache (68.4%), Microsoft (20.9 %), 其它(10.7 %).

查询时间: 2004-01-31 11:34 北京时间

二. Apache HTTP版本的选择

现在Apache HTTP有两种版本系列: Apache 1.3 或 Apache 2.0

如何选择版本? 简而言之, Apache 1.3系列的版本强调是稳定性; Apache 2.0

强调的是新功能的支持.

Apache 1.3新的功能:

http://httpd.apache.org/docs/new_features_1_3.html

Apache 2.0新的功能:

http://httpd.apache.org/docs-2.0/new_features_2_0.html (英文)

https://support.iap.ac.cn/net/ApacheManual/zh-cn/ (中文)

本文中使用的是Apache 1.3.3版本.

三. 准备工作

说明:

所有的命令行操作使用的是root用户.

Apache软件包是源文件的发布形式.

Shell命令环境中#表示当前用户权限为root,

$表示当前拥护权限为普通用户.

1. 移去已经安装的Apache HTTP Server RPMs包.

如果您的系统没有安装过Apache, 请参考步骤2.

1) 查询跟httpd相依赖的软件包.

#rpm -q --whatrequires httpd

说明:

2) 从系统中移去以下的软件包.

#rpm -e redhat-config-httpd

#rpm -e httpd

3) 查询是否存在httpd进程, 如有, 用killall命令终止httpd进程.

#ps aux|grep httpd

#killall httpd

2. 下载和解压缩Apache HTTP软件包.

建议从apache的官方网站获得可靠的apache HTTP软件包.

下载网址: http://httpd.apache.org/download.cgi

1) 创建apache软件包存放的目录.

#mkdir -p /usr/local/src/webserver

2) 使用wget命令获得源代码包.

#wget http://apache.tarchive.com/httpd/apache_1.3.33.tar.gz

3) 解压缩源代码包, 在webserver目录下会生成一个新的目录apache_1.3.33

#tar zpxf apache_1.3.33.tar.gz

四. 安装Apache Web Server 1.3.3

这里我使用的是DSO(Dynamic Shared Objects)的方式来安装Apache HTTP服务器.

使用DSO的安装方式允许您在以后不需要重新编译Apache的情况下添加模块.

如PHP等等.

1) 创建安装脚本apache_inst.

#cd /usr/local/src/webserver

#vi apache_inst

---拷贝下面区域内容然后张贴到apache_inst中--

cd /usr/local/src/webserver/apache_1.3.33

./configure \

--prefix=/www \

--enable-module=so \

--enable-module=rewrite \

--enable-shared=rewrite \

--enable-module=setenvif \

--enable-shared=setenvif \

--enable-module=mime \

--enable-shared=mime \

--enable-module=mime_magic \

--enable-shared=mime_magic \

--enable-module=dir \

--enable-shared=dir \

--enable-module=auth \

--enable-shared=auth \

--enable-module=access \

--enable-shared=access \

--enable-module=alias \

--enable-shared=alias \

--enable-module=status \

--enable-shared=status \

--enable-module=userdir \

--enable-shared=userdir \

--enable-module=env \

--enable-shared=env \

--enable-module=log_referer \

--enable-shared=log_referer \

--enable-module=log_config \

--enable-shared=log_config \

--enable-module=log_agent \

--enable-shared=log_agent \

--enable-module=headers \

--enable-shared=headers

------------------结束----------------------

#chmod +x apache_inst

说明: 设置apache_inst文件的可执行权限.

2) 执行安装脚本apache_inst.

#./apache_inst

3) 到源代码文件所在目录编译和安装Apache Web Server.

#cd /usr/local/src/webserver/apache_1.3.33

#make

#make install

4) 创建apache控制命令的软链接.

#ln -s /www/bin/apachectl /usr/bin/apachectl

#ln -s /www/bin/apachectl /usr/sbin/apachectl

5) 运行Apache Web服务器.

#apachectl start

相关:

#apachectl start 启动apache.

#apachectl stop 停止apache.

#apachectl restart 重新启动apache.

#apachectl status 显示apache的状态.

#apachectl configtest 测试httpd.conf配置是否正确.

6) 让系统启动时自动运行Apache Web服务器.

#vi /etc/rc.d/rc.local

说明: 在rc.local文件最后添加下面一行.

apachectl start

五. 测试Apache Web服务器是否运行.

您可以在浏览器中通过机器的主机名或者IP地址以http://yourdomain.com

或者http://192.168.0.1(此出输入您机器的IP地址)访问Web服务. 您将会

看到一个成功安装Apache HTTP服务器的临时网页.

六. Apache HTTP的安装目录

Apache HTTP服务器到此已经安装到系统中, 安装的目录是/www. 接下来

了解每一个目录的用途:

/www 也叫ServerRoot, 用于放置所有安装后的Apache相关文件.

/www/bin 用于放置apache的运行程序.

/www/cgi-bin 缺省用于运行如perl脚本的cgi-bin目录.

/www/conf 用于放置所有的配置文件如httpd.conf等.

/www/htdocs Apache Web服务器的Document Root目录. htdocs这里全称

是http documentations, 即用于存放web网页.

/www/icons 用于放置Apache Web服务器的图标. 如Directory

Listing用到的图标.

/www/includes 用于放置运行Apache Web服务器用到的头文件.

/www/libexec 用于放置您在安装编译时候用到的模块.

/www/logs 缺省用于放置Apache Web服务器运行的所有活动日志.

/www/man 用于放置帮助文件.

/www/proxy 用于配置proxy相关内容.

七. Apache HTTP的配置文件

Apache配置文件为httpd.conf, 所在目录/conf, 这里我只对本文apache用

的httpd.conf文件列出一个清单.更多信息的httpd.conf文件指令解释请

参考网上相关内容.

ServerType standalone

ServerRoot "/www"

PidFile /www/log/httpd.pid

ScoreBoardFile /www/logs/httpd.scoreboard

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

MinSpareServers 5

MaxSpareServers 10

StartServers 5

MaxClients 150

MaxRequestPerChild 0

LISTEN 210.77.144.83:80

BindAddress *

LoadModule name file

AddModule header file name

Port 80

User nobody

Group nobody

ServerAdmin [email protected]

ServerName www.islab.org

DocumentRoot "/www/htdocs"

Directory

UserDir

DirectoryIndex files

DirectoryIndex index.html

AccessFileName .htaccess

Order allow,deny

Deny from all

Satisfy All

UseCanonicalName On

TypesConfig

TypesConfig /www/conf/mime.types

DefaultType text/plain

MIMEMagicFile /www/conf/magic

MIMEMagicFile /www/conf/magic

HostnameLookups Off

ErrorLog /www/logs/error_log

LogLevel warn

LogFormat

CustomLog /www/logs/access_log common

ServerSignature On

Alias /icons/ "/www/icons/"

ScriptAlias /cgi-bin/ "/www/cgi-bin/"

IndexOptions FancyIndexing

NameVitualHost *

VirtualHost