讲义--apache配置指南.doc_第1页
讲义--apache配置指南.doc_第2页
讲义--apache配置指南.doc_第3页
讲义--apache配置指南.doc_第4页
讲义--apache配置指南.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

APACHE 配置指南 1.1 什么是WWW服务现在在Internet上最热门的服务之一就是环球信息网WWW(World Wide Web)服务,Web已经成为很多人在网上查找、浏览信息的主要手段。WWW是一种交互式图形界面的Internet服务,具有强大的信息连接功能。它使得成千上万的用户通过简单的图形界面就可以访问各个大学、组织、公司等的最新信息和各种服务。商业界很快看到了其价值,许多公司建立了主页,利用Web在网上发布消息,并反它作为各种服务的界面,如客户服务、特定产品和服务的详细说明、宣传广千以及是渐增长的产品销售和服务。商业用途促进了环球信息网络的迅速发展。如果你想通过主页向世界介绍自己或自己的公司,就必须将主页放在一个WEB服务器上,当然你可以使用一些免费的主页空间来发布。但是如果你有条件,你可以注册一个域名,申请一个IP地址,然后让你的ISP将这个IP地址解析到你的LINUX主机上。然后,在LINUX主机上架设一个WEB服务器。你就可以将主页存放在这个自己的WEB服务器上,通过它把自己的主页向外发布。WWW是基于客户机/服务器方式的信息发现技术和超文本技术的综合。WWW服务器通过HTML超文本标记语言把信息组织成为图文并茂的超文本;WWW浏览器则为用户提供基于HTTP超文本传输协议的用户界面。用户使用WWW浏览器通过Internet访问远端WWW服务器上的HTML超文本,如下图所示:http协议WWW浏览器 ? ? ? ? ? ? WWW服务器在WWW的客户机/服务器工作环境中,WWW浏览器起着控制作用,WWW浏览器的任务是使用一个URL(Internet地址)来获取一个WWW服务器上的WEB文档,解释这个HTML,并将文档内容以用户环境所许可的效果最大限度地显示出来。整个流程如下:WWW浏览器根据用户输入的URL连到相应的远端WWW服务器上; 取得指定的WEB文档; 断开与远端WWW服务器的连接。 也就是说,平时我们在浏览某个网站的时候是每取一个网页建立一次连接,读完后马上断开;当需要另一个网页时重新周而复始。Apache的主要特征是: 可以运行上所有计算机平台; 支持最新的HTTP 1.1协议; 简单而强有力的基于文件的配置; 支持通用网关接口CGI; 支持虚拟主机; 支持HTTP认证; 集成Perl脚本编程语言; 集成的代理服务器; 具有可定制的服务器日志; 支持服务器端包含命令(SSI) 支持安全Socket层(SSL) 用户会话过程的跟踪能力; 支持FastCGI; 支持Java Servlets。1.3 安装Apache1.3.1 系统需求运行Apache不需要太多的计算资源。它在有6-10MB硬盘空间和8MB RAM的Linux系统上运行得很好。然而,只运行Apache可能不是你想做的事情。更可能的是,你想运行Apache来提供WWW服务、启动CGI进程以及充分利用所有WWW能够提供的令人惊奇的功能。在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间。也就是说,如果仅仅是启动WWW服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源。1.3.2 获取软件你可以在/中获得Apache的最新版。而几乎所有的Linux发行版中均包含有Apache软件包,你也可以直接使用它。需要注意的是,Apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用。1.3.3 安装软件你可以通过以下三种方法安装Apache服务器。1如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工作,并做好基本的配置。2使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单。下载软件包apache_1.2.4.e.tar.gz tar xvzf apache_1.2.4.e.tar.gz 这就完成了安装工作,简单吧!如果你使用的是RedHat Linux的话,你也可以下载apache_1.2.4.rpm软件安装包,然后使用rpm -ivh apache_1.2.4.rpm命令安装。3如果你想把Apache服务器充分利用起来的话,就一定要自己编译Apache定制其功能。下载包含Apache源代码的软件包apache_1.2.4.tar.gz; 然后用tar命令将它解开; 将当前目录改变为Apache源代码发行版的src目录; 将配置样本文件(Configuration.tmpl)复制为Configuration文件; 编辑Configuration文件中的配置选项: Makefile配置选项:一些编译选项: “CC=”一行指定用什么编译软件编译,一般为“CC=gcc”; 如果需要将额外的标志(参数)指定给C编译软件,可以使用:EXTRA_CFLAGS=EXTRA_LFLAGS= 如果系统需要特殊的库和包含文件,可以在这里指定它们:EXTRA_LIBS=EXTRA_INCLUDES= 如果你要改变代码优化设置的话,你须将下面一句去掉注释,然后改成你所需要的值:#OPTIM=-O2Rule配置选项:用来决定需要什么功能,一般情况下无需改变。 模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache灵活性的表现。模块配置行如下所示: AddModule modules/standard/mod_env.o如果你需要Apache服务器具备什么功能,就将那个模块用AddModule语句加到配置文件Configuration中去。下表列出了Apache的模块功能:模块名 功能 缺省 mod_access 提供基于主机的访问控制命令 ? mod_actions 能够运行基于MIME类型的CGI脚本或HTTP请求方法 ? mod_alias 能执行URL重定向服务 ? mod_asis 使文档能在没有HTTP头标的情况下被发送到客户端 ? mod_auth 支持使用存储在文本文件中的用户名、口令实现认证 ? mod_auth_dbm 支持使用DBM文件存储基本HTTP认证 mod_auth_mysql 支持使用MySQL数据库实现基本HTTP认证 mod_auth_anon 允许以匿名方式访问需要认证的区域 ? mod_auth_external 支持使用第三方认证 mod_autoindex 当缺少索引文件时,自动生成动态目录列表 ? mod_cern_meta 提供对元信息的支持 mod_cgi 支持CGI ? mod_dir 能够重定向任何对不包括尾部斜杠字符命令的请求 ? mod_env 使你能够将环境变量传递给CGI或SSI脚本 mod_expires 让你确定Apache在服务器响应请求时如何处理Expires mod_headers 能够操作HTTP应答头标 mod_imap 提供图形映射支持 ? mod_include 使支持SSI ? mod_info 对服务器配置提供了全面的描述 mod_log_agent 允许在单独的日志文件中存储用户代理的信息 mod_log_config 支持记录日志 ? mod_log_referer 提供了将请求中的Referer头标写入日志的功能 mod_mime 用来向客户端提供有关文档的元信息 ? mod_negotiation 提供了对内容协商的支持 ? mod_setenvif 使你能够创建定制环境变量 ? mod_speling 使你能够处理含有拼写错误或大小写错误的URL请求 mod_status 允许管理员通过WEB管理Apache ? mod_unique_id 为每个请求提供在非常特殊的条件下保证是唯一的标识 表一:Apache模块功能一览表在src目录下执行:“. /configure”; 编译Apache:执行命令“make”; 根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了。 将编译好的可执行文件httpd复制到/etc/httpd/bin目录下; 将Apache发行版的配置文件:access.conf、httpd.conf、mime.types、srm.conf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。 1.3.4 一些说明在Red Hat Linux 6.0中,Apache将自己的所有配置文件和日志文件放在了“/etc/httpd”目录下,其中“/etc/httpd/conf”下为配置文件,“/etc/httpd/log”下为日志文件。同时,它将建立“/home/httpd”目录,并在其下建立三个子目录:“html/”:在这个目录下存放HTML(主页)文件;“cgi-bin/”:在这个目录下可以存放一些CGI程序;“icons/”:在这个目录下是服务器自带的一些图标。1.4 配置Apache基础篇让WWW服务器跑起来Apache服务器软件的配置文件主要有:“access.conf”:用于设置系统中的存取方式和环境;“httpd.conf”:用于设置服务器启动的基本环境;“srm.conf”:主要用于做文件资源上的设定;“mime.type”:记录Apache服务器所能识别的MIME格式。在具体讲解之前,我们必须告诉大家,Apache已经在安装时就采用了一系列的缺省值,已经让WWW服务器跑起来了。你只需要将装上Linux+Apache的主机联入Internet,然后将主页存放到“/home/httpd”目录下即可。下面介绍一些最主要的配置选项的含义,以便大家用最小的精力、最小的配置准备好服务器。1.4.1 httpd.confhttpd.conf是主配置文件。它告诉服务器将如何运行。一、最重要的配置选项ServerType standalone | inetd这个配置选项指定如何运行WEB服务器。Apache可以使用两种方法来运行服务器:standalone(独立的)和inetd(由inetd运行的)。standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。inetd参数表示WEB服务不是以一个单独的守候进程的形式支持。而是由Inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的WEB服务请求的时候,再启动一个WEB服务进程为其服务。从功能的角度看,这两种方法几乎是相同的。但它们之间实际有很大区别,区别在于服务器的性能。一个由inted运行的服务器进程在它结束对请求服务的同时立刻退出。而在standalone模式下,子WWW服务器进程在退出之前要挂起一段时间,这就给它们提供了机会,可以重新用来服务新的请求。在standalone模式下,不存在对每个请求启动新进程的开销,所以它的效率更高;而inetd模式被认为比standalone模式更具安全性。standalone模式: 此种模式下,WWW服务器侦听特定端口的连接请求。当客户机发出到特定端口地址的连接请求时,主服务器进程启动子WWW服务进程来服务该请求。如下图所示:图2 独立服务器另外还需要告诉主服务器进程侦听的特定端口地址,使用命令:Port number (缺省值为80) inetd模式 inetd是侦听有小于1024的端口连接请求的Internet守护进程(一个服务器进程)。与前面的方法不同,当客户系统发出到WWW服务器的连接请求时,inetd启动一个WWW服务器进程,由此进程服务此请求,完成服务后即退出。如下图所示:图3 由inetd启动的服务器如果选择通过inetd服务器来运行Apache,需要编辑/etc/inetd.conf文件为Apache添加一条新的记录:httpd stream tcp nowait httpd /etc/httpd/bin/httpd -f /etc/httpd/conf/httpd.conf修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行httpd 80/tcp httpd做完以上修改后,需要重新启动inetd进程。首先,使用以下命令取得inetd的进程ID:ps auxw |grep inetd然后执行命令:kill -HUP 在RedHat Linux中,默认是采用inetd服务器来运行Apache,所以只要你在安装时选择了httpd,以上工作在安装时就已经代你完成了。二、其它配置选项Server Admin命令,用来设置WEB管理员的E-Mail地址。这个地址会出现在系统连接出错的时候,以便访问者能够将情况及时地告知WEB管理员。 命令格式: Server Admin you E-Mail address例:Server Admin ErrorLog命令,用来指定错误记录文件名称和路径。 命令格式: ErrorLog log filename例:ErrorLog /var/httpd/error.log Timeout命令,只要客户端超过这里设定的秒数还没有完成一个请求的话,服务端将终止这次请求服务。如果网络速度较慢的话,建议在此设置较大的数值。以给客户端更多机会。 命令格式: Timeout second例:Timeout 120 ServerRoot命令,它指定在何处保存服务器的配置、错误及日志文件。 命令格式: ServerRoot fully qualified path name例:ServerRoot /etc/httpd ServerName命令,它配置服务器的Internet主机名 命令格式: ServerName host name例:ServerName 1.4.2 srm.confsrm.conf是资源配置文件,用它来告诉服务器你想在WWW站点上提供什么资源以及在哪里和如何提供它们。DocumentRoot命令,用来指定主文档的地址。 命令格式: DocumentRoot Path例:DocumentRoot /home/httpd/html UserDir命令,用来指定个人主页的位置。如果你有一个用户test,那么它主目录是“/home/test”,当客户端输入“http:/yourdomain/test”,系统就会到对应的目录“/home/test/UserDir/”中去寻找。其中“UserDir”就是在UserDir命令中设置的指定目录。 命令格式: UserDir Path例: UserDir Public_html DirectoryIndex命令,用来声明首页文件名称。一般地,我们使用“index.html”或“index.htm”作为首页的文件名。如果这样设置后,那么客户端发出WEB服务请求时,将首先调入的主页是在指定目录下文件“index.html”或“index.htm”。 命令格式: DirecotryIndex filename例:DirecotryIndex index.html index.htm ScriptAlias命令,为脚本程序目录起个别名,具体可见4.7小节。 命令格式: ScriptAlias /alias/ fullly qualified path for script directory例: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin 1.4.3 access.conf的配置access.conf文件用来设置WWW站点上诸如文件、目录和脚本项目的访问权限。该文件的第一段非注释部分如下:Option Indexes Includes ExecCGI FollowSymLinkAllowOverride NoneOrder allow , denyallow from all 大家应该注意到,这一个部分是以开始,以结束的。这表示在其中间的部分都是针对指定目录“/home/httpd/html”而言的。1Option命令有很多的参数,各个参数的意义如下所示:All 准许以下所有功能(MultiViews除外);MultiViews 准许内容协商的Multiviews;Indexes 若该目录下无index文件,则准许显示该目录下的文件以供选择;IncludesNOEXEC 准许SSI(Server-side Includes),但不可使用#exec和#include功能;Includes 准许SSI;FollowSymLinks 准许符号链接到其他目录;ExecCGI 准许该目录下可以使用CGI。 2而AllowOverride命令则是用来决定是否准许在“access.conf”文件中设定的权限是否可以被在文件“.htaccess”中设定的权限覆盖。它有两个参数:All 准许覆盖;None 不准许覆盖。 3Order命令:用来设定谁能从这个服务器取得控制。它也有两个参数:allow 可以取得控制;deny 禁止取得控制。 现在我们一起来看看关于目录“/home/httpd/html”的设置的含义:它使得这个目录,如果不存在index.htm文件时,列出目录信息以供选择,准许SSI,允许执行CGI程序,开启了动态连接。它不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。使所有的人都可以取得控制。该文件的第二段非注释部分如下:Option ExecCGIAllowOverride None 这个表示目录“/home/httpd/cgi”的设置为,当前目录下可以执行CGI程序。不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。需要说明的是,不同的LINUX系统中,可以在这个文件中看到的信息不完全相同,但是根据这里给出的信息,大家可以参照命令的解释自行理解文件中的设置,以及根据自己的需要进行相应的修改。4.3.4 使新的配置生效在上面,我们可能已经根据新的需求更改了相应的配置选项,如果我们要使得这个新的配置立即生效。我们就必须重新启动WEB服务进程。在LINUX中,我们可以十分方便地使用命令行来使得WEB服务进程重启。/etc/rc.d/init.d/httpd restart 1.5 为用户开辟个人主页空间如果我们利用了LINUX系统架设了一台WEB服务器,我们不仅可以存放公司的主页,而且还可以为公司的每一个员工提供一块个人主页的空间。首先,为需要个人主页空间的员工在LINUX上开设一个帐号。这样,它就拥有了一个用户主目录“/home/用户帐号名”。 addusr 用户帐号名passwd 用户帐号名 在用户主目录下建立一个目录“public_html”,然后为其设置相应的权限。 cd 用户帐号名mkdir public_htmlchmod 755 public_html 确认在srm.conf文件中的UserDir命令设置的是public_html目录。 让员工将自己的个人主页上传到自己用户主目录下的public_html目录中。 现在就可以使用“/用户帐号名”来访问员工的个人主页了。 1.6 用Apache实现虚拟主机服务1.6.1 什么是虚拟主机服务所谓的虚拟主机服务就是指将一台机器虚拟成多台WEB服务器。举个例子来说,一家公司想从事提供主机代管服务,它为其它企业提供WEB服务。那么它肯定不是为每一家企业都各准备一台物理上的服务器,而是用一台功能较强大的大型服务器,然后用虚拟主机的形式,提供多个企业的WEB服务,虽然所有的WEB服务就是这台服务器提供的,但是让访问者看起来却是在不同的服务器上获得WEB服务一样。具体地说,就是,我们可以利用虚拟主机服务将两个不同公司与的主页内容都存放在同一台主机上。而访问者只需输入公司的域名就可以访问到它想得到的主页内容。用Apache设置虚拟主机服务通常可以采用两种方案:基于IP地址的虚拟主机和基于名字的虚拟主机,下面我们分别介绍一下它们的实现方法。以便大家在具体的应用中能够选择最合适的实现方法。1.6.2 设置实现基于IP地址的虚拟主机服务实现前提 这种方式需要在机器上设置IP别名,也就是在一台机器的网卡上绑定多个IP地址去为多个虚拟主机服务。而且要使用这项功能还要确定在你的LINUX内核中必须支持IP别名的设置,否则你还必须重新编译内核。下面举一个拥有两个虚拟主机的服务设置,以供参考。2配置步骤假设,我们用来实现虚拟主机服务的机器,首先已经为自己提供了WEB服务,现在将为新的一家公司提供虚拟主机服务。规划IP地址:为虚拟主机申请新的IP地址。(假设本机IP地址为) W 2) 让ISP作好相应的域名解析工作。3) 为网卡设置IP别名:/sbin/ifconfig eth0:0 netmask 4) 重新设置“/etc/httpd/conf/httpd.conf”,在文件中加入:ServerAdmin DocumentRoot /home/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论