1. Apache介绍:

       Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中。

       Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 

       Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。

       它可以运行在几乎所有广泛使用的计算机平台上。

       Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

       本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

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


        Apacheweb服务器软件拥有以下特性:

       1.支持最新的HTTP/1.1通信协议

       2.拥有简单而强有力的基于文件的配置过程

       3.支持通用网关接口

       4.支持基于IP和基于域名的虚拟主机

       5.支持多种方式的HTTP认证

       6.集成Perl处理模块

       7.集成代理服务器模块

       8.支持实时监视服务器状态和定制服务器日志

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

       10.支持安全Socket层(SSL)

       11.提供用户会话过程的跟踪

       12.支持FastCGI

       13.通过第三方模块可以支持JavaServlets

       如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

 相关模块:

       1.SSO Module - LemonLDAP[1] 

       LemonLdap 是 Apache 的一个实现了 Web SSO 的模块,可处理超过 20 万的用户。

       2.并发限制模块 - limitipconn

       limitipconn 是一个 Apache 的模块,用来限制每个 IP 的并发连接数。支持 Apache 1.x 和 2.x。

       3.日志监控模块

       Apache Live Log 是一个 Perl 编写的模块,可以在浏览器上直接实时的通过 Ajax 技术浏览和监控 Apache 的 日志文件。

       4.负载均衡模块

       mod_backhand 是一个Apache 的负载平衡模块 。它定义了每个请求的HTTP重定向在一个异构的Apache服务器群集。每个请求的处理,并贯穿了一套“候选人的职能” ,以确定哪些服务器是最适合的回应。请求然后代理到该服务器。设施已到位,让你写您自己的动态加载决策算法。一切有关的要求和当前可用的资源可用于决策过 程。

       5.图像处理模块

       mod_gfx 是一个对图像进行即时处理的 Apache 模块,提供很多灵活的接口,包括:

       Resizing

       Resampling

       Watermarking

       Cropping

       以后还将添加如下功能:

       Add Text

       Rotate

       Draw Polygons

       6. 压缩模块

       mod-gzip-disk 是一个使用磁盘进行存储预压缩页面的 Apache 模块,与 mod-gzip 不同的是不需要每次请求的时候重新压缩。

       使用方法:

       gunzip -c mod_gzip_disk-0.5.tar.gz | tar -xvpf -

       cd mod_gzip_disk

       sudo make module

       7. 音乐模块

       mod_musicindex 是一个 Apache 用来处理音频文件的模块,类似 Perl 的 Apache::MP3,支持音频格式包括:              MP3, Ogg Vorbis, FLAC, or MP4 / AAC ,可根据不同的音频属性进行排序列表、在线播放、下载、构建播放列表和搜索等,提供 RSS 和 Podcast 输出,支持多 CSS 和包下载。

      8.LDAP 认证模块

       LDAP 是轻量级目录访问协议,基于 X.500 标准,但更简单,并可根据需要进行定制。mod_psldap 是 Apache 用来执行 LDAP 认证和授权的模块。同时可通过 Web 界面进行简单的 LDAP 管理

       9.带宽限制模块

       mod_cband 是一个用来限制请求占用带宽的 Apache 模块。

       10.CGI V8 引擎包

       v8cgi 是一个很小的 C ++ 和 JS 文件集合,允许开发者在服务器端使用 JS 的模块,基本功能包括:IO, GD, MySQL, Sockets, templates, FastCGI and Apache module.

2. Centos上如何安装Apache服务

      在linux下面安装一个源码包是最常用的,在日常的管理工作中,大部分软件都是通过源码安装的。安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。

       源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言。Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件。所以如果你的机器上没有安装gcc就没有办法去编译源码。你可以使用 yum install -y gcc 来完成安装。

       安装一个源码包,通常需要三个步骤:

       1)./configure

       在这一步可以定制功能,加上相应的选项即可,具有有什么选项可以通过 ./configure --help 命令来查看。在这一步会自动检测你的linux系统与相关的套件是否有编译该源码包时需要的库,因为一旦缺少某个库就不能完成编译。只有检测通过后才会生成一个Makefile文件。

       2) make

       使用这个命令会根据Makefile文件中预设的参数进行编译,这一步其实就是gcc在工作了。

       3) make install

       安装步骤,生成相关的软件存放目录和配置文件的过程。

       上面介绍的3步并不是所有的源码包软件都一样的,安装步骤并不是这样,也就是说源码包的安装并非具有一定的标准安装步骤。这就需要你拿到源码包解压后,然后进入到目录找相关的帮助文档,通常会以INSTALL或者README为文件名。所以,你一定要去看一下。

       #./configure --prefix……检查编辑环境时出现:

        checking for APR... no
        configure: error: APR not found .  Please read the documentation

       解决办法:

      1.下载所需软件包:

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz  
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz  
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

       2.编译安装:

yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs

       具体步骤如下:

  a:解决apr not found问题>>>>>>

[root@xt test]# tar -zxf apr-1.4.5.tar.gz  
[root@xt test]# cd  apr-1.4.5  
[root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr  
[root@xt apr-1.4.5]# make && make install

  b:解决APR-util not found问题>>>>

[root@xt test]# tar -zxf apr-util-1.3.12.tar.gz  
[root@xt test]# cd apr-util-1.3.12  
[root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config  
[root@xt apr-util-1.3.12]# make && make install


  c:解决pcre问题>>>>>>>>>

[root@xt test]#unzip -o pcre-8.10.zip  
[root@xt test]#cd pcre-8.10  
[root@xt pcre-8.10]#./configure --prefix=/usr/local/pcre  
[root@xt pcre-8.10]#make && make install

 

 编译:#./configure --prefix=/usr/local/pcre出现以下报错

source='pcrecpp.cc' object='pcrecpp.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/sh ./depcomp \
/bin/sh ./libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.      -c -o pcrecpp.lo pcrecpp.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -c pcrecpp.cc  -o .libs/pcrecpp.o
./libtool: line 990: g++: command not found
make[1]: *** [pcrecpp.lo] Error 1
make[1]: Leaving directory `/usr/local/src/pcre-8.10'
make: *** [all] Error 2

这个错误,基本可以断定是缺少系统包造成的,但是缺少哪个包却不明确,这里记录下,这个错误是缺少安装gcc-c++,只需yum install -y gcc-c++,重新configure,make && make install通过。

编译Apache:

 [root@yahoo httpd-2.3.12-beta]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/(--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre

 [root@yahoo httpd-2.3.12-beta]# make && make install  

[root@yahoo httpd-2.3.12-beta]# /usr/local/apache2/bin/apachectl start

 

执行apachectl start时候,提示如下错误:


httpd: apr_sockaddr_info_get() failed for shiwei

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

wKioL1Ys5tPThx08AAD3jh1t2vw511.jpg


于是上网查了一下,根据前人的经验,问题终于解决了。总结一下,方便以后使用。


原因:这个问题应该是没有在 /etc/httpd/conf/httpd.conf 中设定 ServerName。所以apache会用主机上的名称来取代,首先会去找 /etc/hosts 中有没有主机的定义。


解决办法:


(1)可以设定httpd.conf文件中的 ServerName,如下:ServerName localhost:80                        


(2)在 /etc/hosts 中填入自己的主机名称 bogon,如下:127.0.0.1 shiwei (用户名称)


在IE中输入地址 ,显示

It works!



参考:

http://www.linuxidc.com/Linux/2012-06/62289.htm

http://www.cnblogs.com/wenanry/archive/2012/04/16/2451798.html

http://www.cnblogs.com/Anker/p/3355039.html