当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > LinuxApacheWeb服务器配置教程

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 LinuxApacheWeb服务器配置教程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 160 ::
收藏到网摘: n/a

Apache

根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的WWW服务器都在使用Apache,是世界排名第一的WEB服务器。

Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了ApacheGroup,后来这个团体在NCSA的基础上创建了Apache。

Apache的主要特征是:

.可以运行上所有计算机平台;

.支持最新的HTTP1.1协议;

.简单而强有力的基于文件的配置;

.支持通用网关接口CGI;

.支持虚拟主机;

.支持HTTP认证;

.集成Perl脚本编程语言;

.集成的代理服务器;

.具有可定制的服务器日志;

.支持服务器端包含命令(SSI)

.支持安全Socket层(SSL)

.用户会话过程的跟踪能力;

.支持FastCGI;

.支持JavaServlets。

我们还有什么理由放弃这个功能强大而且前途光明的WWW服务器软件呢?

 安装Apache

下面我们就开始漫漫征服Apache之旅,通过循序渐进的需求实例,一步步地学习使用Apache,从入门到精通。

系统需求

运行Apache不需要太多的计算资源。它在有6-10MB硬盘空间和8MBRAM的Linux系统上运行得很好。然而,只运行Apache可能不是你想做的事情。更可能的是,你想运行Apache来提供WWW服务、启动CGI进程以及充分利用所有WWW能够提供的令人惊奇的功能。在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间。也就是说,如果仅仅是启动WWW服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源。

获取软件

你可以在http://www.apache.org中获得Apache的最新版。而几乎所有的Linux发行版中均包含有Apache软件包,你也可以直接使用它。

需要注意的是,Apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用。

安装软件

你可以通过以下三种方法安装Apache服务器。

1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工作,并做好基本的配置。

2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单。


下载软件包apache_1.2.4.e.tar.gz

tarxvzfapache_1.2.4.e.tar.gz

这就完成了安装工作,简单吧!

如果你使用的是RedHatLinux的话,你也可以下载apache_1.2.4.rpm软件安

装包,然后使用rpm–ivhapache_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=-O2


Rule配置选项:用来决定需要什么功能,一般情况下无需改变。


模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache灵活性的表现。模块配置行如下所示:

AddModulemodules/standard/mod_env.o

如果你需要Apache服务器具备什么功能,就将那个模块用AddModule语句加到配置文件Configuration中去。

配置Apache基础篇,让WWW服务器跑起来Apache服务器软件的配置文件主要有:“access.conf”:用于设置系统中的存取方式和环境;“httpd.conf”:用于设置服务器启动的基本环境;“srm.conf”:主要用于做文件资源上的设定;“mime.type”:记录Apache服务器所能识别的MIME格式。

在具体讲解之前,我们必须告诉大家,Apache已经在安装时就采用了一系列的缺省值,已经让WWW服务器跑起来了。你只需要将装上Linux+Apache的主机联入Internet,然后将主页存放到“/home/httpd”目录下即可。

下面介绍一些最主要的配置选项的含义,以便大家用最小的精力、最小的配置准备好服务器。

httpd.conf

httpd.conf是主配置文件。它告诉服务器将如何运行。

一、最重要的配置选项ServerTypestandalone inetd

这个配置选项指定如何运行WEB服务器。Apache可以使用两种方法来运

行服务器:standalone(独立的)和inetd(由inetd运行的)。

standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。

inetd参数表示WEB服务不是以一个单独的守候进程的形式支持。而是由Inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的WEB服务请求的时候,再启动一个WEB服务进程为其服务。

从功能的角度看,这两种方法几乎是相同的。但它们之间实际有很大区别,区别在于服务器的性能。一个由inted运行的服务器进程在它结束对请求服务的同时立刻退出。而在standalone模式下,子WWW服务器进程在退出之前要挂起一段时间,这就给它们提供了机会,可以重新用来服务新的请求。

在standalone模式下,不存在对每个请求启动新进程的开销,所以它的效率更高;而inetd模式被认为比standalone模式更具安全性。

standalone模式:

此种模式下,WWW服务器侦听特定端口的连接请求。当客户机发出到特

定端口地址的连接请求时,主服务器进程启动子WWW服务进程来服务该请求。 


另外还需要告诉主服务器进程侦听的特定端口地址,使用命令:

Port[number](缺省值为80)

inetd模式

inetd是侦听有小于1024的端口连接请求的Internet守护进程(一个服务器进程)。与前面的方法不同,当客户系统发出到WWW服务器的连接请求时,inetd启动一个WWW服务器进程,由此进程服务此请求,完成服务后即退出。

如果选择通过inetd服务器来运行Apache,需要编辑/etc/inetd.conf文件为Apache添加一条新的记录:

httpdstreamtcpnowaithttpd/etc/httpd/bin/httpd–f/etc/httpd/conf/httpd.conf

修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行

httpd80/tcphttpd

做完以上修改后,需要重新启动inetd进程。首先,使用以下命令取得inetd的进程ID:

psauxw grepinetd

然后执行命令:kill–HUP

在RedHatLinux中,默认是采用inetd服务器来运行Apache,所以只要你在安装时选择了httpd,以上工作在安装时就已经代你完成了。

其它配置选项

ServerAdmin命令,用来设置WEB管理员的E-Mail地址。这个地址会出现在系统连接出错的时候,以便访问者能够将情况及时地告知WEB管理员。

命令格式:ServerAdmin[youE-Mailaddress]

例:ServerAdmin[email protected]

ErrorLog命令,用来指定错误记录文件名称和路径。

命令格式:ErrorLog[logfilename]

例:ErrorLog/var/httpd/error.log

Timeout命令,只要客户端超过这里设定的秒数还没有完成一个请求的话,服务端将终止这次请求服务。如果网络速度较慢的话,建议在此设置较大的数值。以给客户端更多机会。

命令格式:Timeout[second]

例:Timeout120

ServerRoot命令,它指定在何处保存服务器的配置、错误及日志文件。

命令格式:ServerRoot[fullyqualifiedpathname]

例:ServerRoot/etc/httpd

ServerName命令,它配置服务器的Internet主机名

命令格式:ServerName[hostname]

例:ServerNamewww.xxx.com

srm.conf

srm.conf是资源配置文件,用它来告诉服务器你想在WWW站点上提供什么资源以及在哪里和如何提供它们。

DocumentRoot命令,用来指定主文档的地址。

命令格式:DocumentRoot[Path]

例:DocumentRoot/home/httpd/html

UserDir命令,用来指定个人主页的位置。如果你有一个用户test,那么它主目录是“/home/test”,当客户端输入“http://yourdomain/~test”,系统就会到对应的目录“/home/test/UserDir/”中去寻找。其中“UserDir”就是在UserDir命令中设置的指定目录。

命令格式:UserDir[Path]

例:UserDirPublic_html

DirectoryIndex命令,用来声明首页文件名称。一般地,我们使用“index.html”或“index.htm”作为首页的文件名。如果这样设置后,那么客户端发出WEB服务请求时,将首先调入的主页是在指定目录下文件“index.html”或“index.htm”。

命令格式:DirecotryIndex[filename]

例:DirecotryIndexindex.htmlindex.htm

ScriptAlias令,为脚本程序目录起个别名,具体可见4.7小节。

命令格式:ScriptAlias[/alias/][fulllyqualifiedpathforscriptdirectory]

例:ScriptAlias/cgi-bin//home/httpd/cgi-bin

access.conf的配置

access.conf文件用来设置WWW站点上诸如文件、目录和脚本项目的访问权限。该文件的第一段非注释部分如下:

OptionIndexesIncludesExecCGIFollowSymLink

AllowOverrideNone

Orderallow,deny

allowfromall

大家应该注意到,这一个部分是以开始,以结束的。这表示在其中间的部分都是针对指定目录��“/home/httpd/html”而言的。

1.Option命令有很多的参数,各个参数的意义如下所示:

All准许以下所有功能(MultiViews除外);

MultiViews准许内容协商的Multiviews;

Indexes若该目录下无index文件,则准许显示

该目录下的文件以供选择;

IncludesNOEXEC准许SSI(Server-sideIncludes),但不可

使用#exec和#include功能;

Includes准许SSI;

FollowSymLinks准许符号链接到其他目录;

ExecCGI准许该目录下可以使用CGI。

2.而AllowOverride命令则是用来决定是否准许在“access.conf”文件中设定的权限是否可以被在文件“.htaccess”中设定的权限覆盖。它有两个参数:

All准许覆盖;

None不准许覆盖。

3.Order命令:用来设定谁能从这个服务器取得控制。它也有两个参数:

allow可以取得控制;

deny禁止取得控制。

现在我们一起来看看关于目录“/home/httpd/html”的设置的含义:它使得这个目录,如果不存在index.htm文件时,列出目录信息以供选择,准许SSI,允许执行CGI程序,开启了动态连接。它不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。使所有的人都可以取得控制。

该文件的第二段非注释部分如下:

OptionExecCGI

AllowOverrideNone

这个表示目录“/home/httpd/cgi”的设置为,当前目录下可以执行CGI程序。不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。

需要说明的是,不同的LINUX系统中,可以在这个文件中看到的信息不完全相同,但是根据这里给出的信息,大家可以参照命令的解释自行理解文件中的设置,以及根据自己的需要进行相应的修改。

 使新的配置生效

在上面,我们可能已经根据新的需求更改了相应的配置选项,如果我们要

使得这个新的配置立即生效。我们就必须重新启动WEB服务进程。在LINUX中,我们可以十分方便地使用命令行来使得WEB服务进程重启。

/etc/rc.d/init.d/httpdrestart

上一页[1][2][3][4][5][6][7]