细述 Apache web server 的安装与配置

上一篇 / 下一篇  2008-05-06 15:07:15

一.、Apache web server 简介
  Apache web server是一款开放源码的web服务器软件,由apache software foundation 开发和维护的。它是目前世界上使用最为广泛的web服务器软件,支持各种unix平台和windows平台。本文将介绍它在Red hat Linux 9中最基本的安装和配置。
  
  二、软件的相关资源
  官方网站:http://httpd.apache.org/
  源码软件包:Apache 是开源的软件,可以去其官方网站http://httpd.apache.org/download.cgi下载。目前的最新稳定版本是httpd-2.0.53。
  帮助文档:http://httpd.apache.org/docs-project/ 有该软件比较全面的帮助文档。
  FAQ:http://httpd.apache.org/docs/misc/FAQ.html 回答了该软件的常见问题
  
  三.软件的安装
  1.安装
  
  由其官方网站中下载其源码软件包httpd-2.0.53.tar.gz。接下来我将对安装过程的一些重要步骤,给出其解释:
  
  [root@localhost root]#tar xzvf httpd-2.0.53.tar.gz
  [root@localhost root]#cd httpd-2.0.53
  [root@localhost httpd-2.0.53]#./configure
  [root@localhost httpd-2.0.53]#make
  [root@localhost httpd-2.0.53]#make install
  
  tar xzvf httpd-2.0.53.tar.gz 解压缩软件包。
  
  ./configure 针对机器作安装的检查和设置,大部分的工作是由机器自动完成的,但是用户可以通过一些参数来完成一定的设置,其常用选项有:
  
  ./configure --help 察看参数设置帮助。
  
  --prefix= 指定软件安装目录(默认/usr/local/apache2)。
  
  --enable-modules= 指定需要加载的模块。
  
  --enable-v4-mapped 支持ipv6的socket处理ipv4的连接。
  
  可以设置的参数很多,可以通过 -help察看需要的,一般情况下,默认设置就可以了。
  
  默认安装建立了/usr/local/apache2目录,下面介绍一下/usr/local/apache2的几个常用组成部分:
  
  /usr/local/apache2/bin 其中主要是有服务器的程序。常用的有deamon程序httpd,和控制脚本apachectl。
  
  /usr/local/apache2/conf 其中主要是服务器相关的配置文件。最主要的配置文件是httpd.conf。
  
  /usr/local/apache2/htdocs 默认的网站html文件根目录。
  
  /usr/local/apache2/cgi-bin 默认的cgi程序的存放目录。
  
  2.启动:
  
  [root@localhost root]# /usr/local/apache2/bin/apachectl start
  [root@localhost root]# ps aux
  [root@localhost root]# netstat -an
  
  如果不出什么问题,ps aux 应该可以查到httpd 的进程,或netstat -an 也可以看到80端口的服务已经起来了。如果要设置开机自启动web server,只需在/etc/rc.d/rc.local中加入一行
  
  /usr/local/apache2/bin/apachectl start
  
  #!/bin/sh
  #
  # This script. will be executed *after* all the other init scripts.
  # You can put your own initialization stuff in here if you don't
  # want to do the full Sys V style. init stuff.
  touch /var/lock/subsys/local
  
  /usr/local/apache2/bin/apachectl start
  
  四、软件的配置。
  /usr/local/apache2/conf/httpd.conf 默认安装,所有的配置都有其默认值,接下来我介绍介绍一些常用的配置项:
  
  # Listen: Allows you to bind Apache to specific IP addresses and/or
  # ports, instead of the default. See also the
  # directive.
  #
  # Change this to Listen on specific IP addresses as shown below to
  # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
  #
  #Listen 12.34.56.78:80
  
  Listen 80
  
  设定apache 的侦听地址和端口。
  
  #
  # ServerAdmin: Your address, where problems with the server should be
  # e-mailed. This address appears on some server-generated pages, such
  # as error documents. e.g. admin@your-domain.com
  #
  ServerAdmin you@example.com
  
  设定apache 的管理员邮件地址。
  
  #
  # DocumentRoot: The directory out of which you will serve your
  # documents. By default, all requests are taken from this directory, but
  # symbolic links and aliases may be used to point to other locations.
  #
  DocumentRoot "/usr/local/apache2/htdocs"
  
  设定apache web server 的文档根目录,必须是绝对路径。
  
  
  
  #
  # Possible values for the Options directive are "None", "All",
  # or any combination of:
  #  Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
  #
  # Note that "MultiViews" must be named *explicitly* --- "Options All"
  # doesn't give it to you.
  #
  # The Options directive is both complicated and important. Please see
  # http://httpd.apache.org/docs-2.0/mod/core.html#options
  # for more information.
  #
  Options Indexes FollowSymLinks
  
  #
  # AllowOverride controls what directives may be placed in .htaccess files.
  # It can be "All", "None", or any combination of the keywords:
  #  Options FileInfo AuthConfig Limit
  #
  AllowOverride None
  
  #
  # Controls who can get stuff from this server.
  #
  Order allow,deny
  Allow from all
  
  

  
  设定文档根目录的权限控制,必须和DocumentRoot "/usr/local/apache2/htdocs" 中指定的目录一致。
  
  #
  # The index.html.var file (a type-map) is used to deliver content-
  # negotiated documents. The MultiViews Option can be used for the
  # same purpose, but it is much slower.
  #
  DirectoryIndex index.html
  
  指定该目录下的索引文档,
  
  ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
  
  映射cgi-bin的根目录,必须是绝对路径。
  
  
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
  

  
  设定cgi-bin目录的读写权限,该目录项必须和上一条的设置一致。
  
  五.安装使用的一些经验:
  1.apache 进程的有效用户id默认为nobody。
  
  出于安全方面的考虑,apache 服务器进程的默认有效 id 被设置为nobody,这就意味着该进程只拥有nobody的权限,所以必须确保nobody对设置的DocumentRoot 有足够权限。或者可以配置apache进程的有效id,但是推荐不要这样做。
  
  2.如果网站的访问量不是很大可以考虑用xinetd超级进程来启动apache
  
  (1)打开/usr/local/apache2/conf/httpd.conf,修改
  
  ServerType inetd
  
  (2)创建/etc/xinetd.d/apache,内容:
  
  # default: on
  # description: The Apache HTTP connections.
  service http
  {
  disable = no
  socket_type = stream
  wait = no
  user = root
  server = /usr/sbin/httpd
  port = 80
  # log_on_success += DURATION USERID
  # log_on_failure += USERID
  # nice = 10
  }
  
  (3)重新启动xinetd:
  
  #/etc/rc.d/init.d/xinetd restart
  
  3.对IPV6的支持
  
  随着计算机网络的不断发展和扩大,IPV6已经越来越为人们所接受,apache自2.0之后的版本开始支持IPV6,下面我就简单介绍一下apache针对ipv6的配置:
  
  默认情况下,apache 使用映射到IPv4的IPv6地址,即安装配置时,默认./configure -enable-v4-map ,并且在配置文件http.conf中将是:
  
  Listen 80
  
  要使apache 区别对待IPV4与IPV6的连接,安装配置时,使用 ./configure -disable-v4-map , 对应配置文件中http.conf :
  
  Listen [::]:80
  
  这样 apache 就可以区别对待 IPV4 与IPV6的连接了。

TAG: xinetd

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-06  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 9288
  • 日志数: 401
  • 建立时间: 2008-02-22
  • 更新时间: 2008-05-06

RSS订阅

Open Toolbar