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