Apache 简介

Apache HTTP Server 是开源软件项目的杰出代表基于标准的HTTP网络协议提供网贡浏览

服务在We服务器领域中长期保持着超过半数的份额。Aapache服务器可以运行在Lnux.UNX

Wndows 等多种操作系统平台中,

1.Apache 的起源

Apathe服务器是针对之前出现的若干个Web服务器程序进行整合。完善后形成的软件。其名

称来源于A Palchy Server 意思是“基于原有Web 服务程序的代码进行修改(T) 后形成的

服务器程序”,

1995Apeche服务程序的10版本发布之后一直由"ApacheGroup负责该项目的管理

和维护,直到1999 年在ApacheGroup 的基础上成立了Apache软件基金会(Apache Sotwae

Foundation ASF).目前,Apache项目一直由 ASF 负责管理和维护,

ASF 是非盈利性质的组织,最初只负责"ApacheWeb服务器项目的管理,随着Web应用需

求的不断扩大,ASF 逐渐增加了许多与Web 技术相关的开源软件项目因此Apsthe 现在不仅仅

代表着Web 服务器,更广泛地代表着ASF 管理的众多开源软件项目,ASF 基金会的官方网站是

htIP:/ www apache .org/.

ApacheHTTPServer ASF 旗下著名的软件项目之一,其正式名称是htpa”也就是历史

上的Apache 网站服务器。在本书后续内容中。若未作特殊说明,使用"Apache 或者“http:d

均指的是、Apache HTP Server

2.Apache 的主要特点

Apache 服务器在功能性能和安全性等方面的表现都是比较突出的可以较好地满足Web

服务器用户的应用需求,其主要特点包括以下几个方面。

开放源代码这是Apache服务器的重要特性之一,也是其他特性的基础。Apache服务程

序由全世界的众多开发者共同维护并且任何人都可以自由使用,这充分体现了开源软

件的精神。


跨平台应用这个特性得益于Apache的源代码开放。Apache服务器可以运行在绝大多数

软硬件平台上,所有UNX 操作系统都可以运行Apache服务器甚至Apache服务理可

以良好地运行在大多数Wndows 系统平台中。Apache 服务器的跨平台特性使美具有被

广泛应用的条件。


支持各种Web 编程语言Apache服务器可支持的网页编程语言包括perlPHPPythoonjava

等,甚至微软的ASP 技术也可以在Apache阳服务器中使用支持各种常用的web

程语言使Apache具有更广泛的应用领域。


模块化设计Apache 并没有将所有的功能集中在单一的服务程序内部,而是尽可能的通过标准的模块实现专有的功能这为Apache服务器带来了可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。


运行非常稳定,Apache服务器可用于构建具有大负载访问量的Web 站点,很多知名的企

业网站都使用Apache 作为Web 服务软件。


良好的安全性,Apache 服务器具有相对较好的安全性,这是开源软件共同具有的特性。

并且Apache 的维护团队会及时对已发现的漏洞提供修补在序,为Apache 的所有使用者

提供尽可能安全的服务器程序。

服务搭建环境:ret hat 6、httpd-2.2.17,apr-1.4.6.tar.gz,apr-util-1.4.1.tar.gz

  1. 准备工作

避免端口冲突,程序冲突等现象,需要做以下检查

[root@localhost ~]# netstat -anpt | grep 80

[root@localhost ~]# rpm -e httpd --nodeps

2.使用yum工具安装编译包

 yum -y install gcc gcc-c++ make pcre-devel

3.解开压缩包

[root@localhost ~]# tar -zxf apr-util-1.4.1.tar.gz -C /opt

[root@localhost ~]# tar -zxf apr-1.4.6.tar.gz -C /opt

[root@localhost ~]# tar -zxf httpd-2.4.25.tar.gz -C /opt

4.将优化包拷贝到httpd的目录下

[root@localhost opt]# cp -r apr-1.4.6/ httpd-2.4.25/srclib/apr

[root@localhost opt]# cp -r apr-util-1.4.1/ httpd-2.4.25/srclib/apr-util

5.进入httpd的目录检测安装平台的目标特征

[root@localhost opt]# cd httpd-2.4.25/

./configure \

--prefix=/usr/local/apache \

--enable-so \

--enable-rewrite \

--enable-mods-shared=most \

--with-mpm=worker \

--disable-cgid \

--disable-cgi

参数解释:

--prefix=   //来指定安装路径


--enable-so  //该参数表示支持用mod_so模块提供的功能,用LoadModule在httpd.conf文件或包含的conf文件中动态加载某个模块。让 Apache 可以支持DSO模式


--enable-rewrite  //支持 URL 重写


--enable-mods-shared=most  //选项:告诉编译器将所有标准模块都动态编译为DSO模块。


--with-mpm=worker // 让apache以worker方式运行


--with-mpm=worker   //该参数是配置apache将以何种模式编译的。Apache网站文档指出不同操作系统下的不同的默认模式.


--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本


--disable-cgi //禁止编译 CGI 版本的 PHP

6.编译和安装编译

[root@localhost httpd-2.4.25]# make && make install

7.确认安装结果

[root@localhost httpd-2.4.25]# ls /usr/local/apache/

bin    cgi-bin  error   icons    lib   man     modules

build  conf     htdocs  include  logs  manual

8.优化路径

[root@localhost httpd-2.4.25]# ln -s /usr/local/apache/bin/* /usr/local/bin

9.查看是否优化成功

[root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl 

lrwxrwxrwx. 1 root root 31 6月  18 00:51 /usr/local/bin/apachectl -> /usr/local/apache/bin/apachectl

lrwxrwxrwx. 1 root root 27 6月  18 00:51 /usr/local/bin/httpd -> /usr/local/apache/bin/httpd

10.添加httpd为系统服务

[root@localhost httpd-2.4.25]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd

[root@localhost httpd-2.4.25]# chmod  +x  /etc/init.d/httpd

[root@localhost httpd-2.4.25]# vim /etc/init.d/httpd

 1 #!/bin/sh

 2 #chkconfig: 35 85 21

[root@localhost httpd-2.4.25]# chkconfig --add httpd

[root@localhost httpd-2.4.25]# chkconfig --list httpd

httpd           0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭

11.配置httpd的配置文件

[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf

 各全局配置项的含义如下。
ServerRoot,设置httpd服务器的根目录,该目录下包括了运行Web站点必需的子目录和
文件。默认的根目录为/usr/local/httpd.与httpd 的安装目录相同,在httpa conf 配置文
件中,如果指定目录或文件位置时不使用绝对路径,则该目录或文件位置都认为是在服
务器的根目录下。
Listen; 设置httpd服务器监昕的网络端口号,默认为80.
User: 设置运行httpd进程时的用户身份,默认为daemon.
Group: 设置运行httpd进程时的组身份,默认为demon.
ServerAdmin; 设置htipd服务器的管理员E-mal 地址,可以通过此E-mal 地址及时联系
Web 站点的管理 员.
ServerName: 设置Web站点的完整主机名(主机名+域名).
Documentoot: 设置网站根目录,即网页文档在系统中的实际存放路径、此配置项比较容
易和ServerRoot 混淆,需要格外注意.
Directoryindex: 设置网站的默认索引页(首页),可以设置多个首页文件,以空格分开,
默认的首页文件为index.html.
Erorlog: 设置错误日志文件的路径,默认路径为logs/eror_log.
LogLevel; 设置记录日志的级别,默认级别为wam (警告)。
CustorLog.设置访问日志文件的路径、日志类型,默认路径为logs/access_og.使用的
类型为common (通用格式).
PidFile.设置用于保存httpd 进程号(PD) 的文件,默认保存地址为logs/ httpa pid.logs
目录位于Apache的服务器根目录下。
CharsetDefault;设置站点中的网页默认使用的字符集编码,如UTF-8.gb2312等。
include.包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的
文件中,再使用Include 配置项将其包含到httpd conf 文件中,这样便于独立进行配置功
能的维护而不影响主配置文件。
以上配置项是httpo conf 文件中主要的全局配置项。还有其他很多配置项,在此不一一列举,
如果需要使用可以查看Apache服务器中的相关帮助手册文档。

注:需要关闭防火墙,或者添加相应的端口号。

以下是本人自己写的一个简单的脚本直接传入linux就可以使用(只供参考,非商用)