以下通过实例解释apache整个编译安装过程,与此同时先介绍RPM&YUM。

一     RPM 是应用程序包管理器,在过去RPM全称为:RedHat Package Manager 。现在已经成为包管理     器标准的RPM的解释为(RPM is Package Manager)


    1  RPM基本功能: ①打包

                     ②安装

                     ③查询

                     ④升级

                     ⑤卸载

                     ⑥校验

                     ⑦数据库管理


     2  RPM包的基本格式   Name-version-release.arch.rpm

                         包名  版本   修订号  硬件基于的PUC类型


                         version:major.minor.release  

                                  主版本 次版本 修改号

编译安装apache


     3 RPM 常用命令  

           安装 rmp -ivh rpm_package

                忽略依赖关系安装

                rpm -ivh rmp_package --nodeps


           卸载 rmp -e rpm_package

                  -e = --erase

                忽略依赖关系安装

                rpm -e rpm_package --nodeps


           查询  rpm -q

                 rpm -qa 查询所有已经安装的包

                 rpm -qf  /path/to/somefile查询某个文件是哪个包安装生成的

                 rpm -qd  package_name     查询包安装生成后生成的帮助文档

                 rpm -qc  package_name     查询包安装完成后生成的配置文件


           升级  rpm {-Uvh|-Fvh} /path/to/somefile

                 --force  强行升级

                 --nodeps 忽略依赖关系


二 yum ,不得不提的强大工具

         yum 属于程序包管理器的前段工具,它能更好的处理程序包之间的依赖关系 一起聊聊它的工作机制


   yum是标准的C/S架构,即 客户端/服务器架构

   1 yum文件服务器

     通过yum所支持的文件共享机制将 各rpm包通过文件服务共享出来,供yum客户端下载使用。


     服务器里有 yum仓库 -很重要的概念哦,以后要经常配置以.repo结尾的仓库文件的

       仓库中存放着①各种rmp包 ②rmp包的依赖关系、元数据文件。。。


编译安装apache

      如上图所示  /etc/yum.repos.d/ 目录下存放着所有仓库文件*.repo




       1.1 实现yum文件服务器的服务:ftp、http、nfs、file


  2 yum客户端

       1、配置文件:指定各个可用的yum仓库

       2、缓存源数据:yum会到各个可用的yum仓库中获取源数据,并缓存在本地

       3、分析源数据:根据具体操作请求完成源数据分析,可能包括检查依赖性、文件列表信息

       4、执行具体操作



三  编译安装apache

   上面啰嗦的时间不少,也是因为以上内容中的一些命令,机制等信息能让我们更好的理解更顺利的去编译安装


    1 测试本地开发环境是否可用

编译安装apache

        说明没有gcc开发环境

    2 安装开发环境程序包组

       操作系统为 CentOS6.4 x86_64版本的包组

       yum groupinstall "Server Platform Development"

       yum groupinstall  "Development tools"


         程序包组安装命令

         yum groupinstall "PackageGroup_Name"

               卸载命令

         yum groupremove  "PackageGroup_Name"


     2.1 为了更方便的下载安装开发环境程序包组,所以我们搭建一个本地yum源仓库以供下载


        (自己首先创建一个yum仓库,以方便下载安装包组 "Server Platform Development"                                                             "Development tools")  

   创建yum仓库repo1.repo

   #cd /etc/yum.repos.d/

   #vim repo1.repo  


   配置yum仓库repo1.repo

编译安装apache

   #mount /dev/cdrom /mnt ----将本地镜像挂载到/mnt中


          注意:baseurl=file:///mnt 这是创建本地yum源的方式;

   您也可以使用 baseurl=http://server/path/to/repo

                baseurl=nfs://server/path/to/repo

                baseurl=ftp://server/path/to/repo


     2.2 本地yum源搭建成功后,则可以更快速的下载安装开发环境


          #yum groupinstall "Development Tools"

          #yum groupinstall "Server Platform Development"


          #gcc -version 查看开发环境状态已OK


编译安装apache



   3  编译安装apache

     3.1 确保系统当前无 httpd程序--否则会出现冲突导致编译安装失败--->注意

         #yum list installed  查看当前已安装的所有程序包

         #rm -rf /etc/httpd   删除系统当前的httpd目录及内部文件


     3.2 获得httpd源码包(获得方式有①本地ftp服务器获得②官方下载③知名站点)

         以官方下载为例

         在http://httpd.apache.org/download.cgi 下载

编译安装apache

     3.3复制下载链接,使用wget下载到本地

编译安装apache

     3.4 解压源程序包

         #tar xf httped-2.2.26.tar.bz2


     3.5 进入源程序包目录

         #cd httped-2.2.26   一般源程序包的目录为Name-Version  



     3.6 执行configure脚本,手动配置相应的选项参数

         # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd

         

       ./configure --help获取configure使用说明。下述./configure部分配置选项

       --prefix=PREFIX

          <目录>:指定Apache的安装目录。

       --exec-prefix=EPREFIX

          体系相关文件的*安装目录EPREFIX ,把体系相关的文件安装到不同的位置可以方便地在不同主机之            间共享体系相关的文件

       --bindir=DIR

          用户可执行目录DIR 。用于存放对网站管理员很有帮助的htpasswd, dbmmanage之类的支持程序。  

       --includedir=DIR

          Apache的头文件目录DIR

       --libdir=DIR

          对象代码库目录DIR 。

       --mandir=DIR

          手册文档目录DIR 。

       --sbindir=DIR

          系统管理员可执行目录DIR ,用于存放运行HTTP服务器所必须的httpd, apachectl, suexec之类的服务            程序。

       --sysconfdir=DIR

          只读的单一机器数据目录DIR ,用于存放httpd.conf和mime.types之类的服务器配置文件。

     3.7 编译(源代码编译成二进制文件

         #make

     

     3.8 安装(将二进制文件安装到默认指定的路径)

         #make install


          3.7和3.8可以同时进行 #make && make install


     3.9 启动二进制程序

         #/usr/local/apache/bin/apachect1 start

编译安装apache


     3.10 查看httpd服务是否已启动

          #netstat -ntl | grep 80

编译安装apache


     3.11 打开web输入httpd服务器访问地址 192.16.1.107

编译安装apache

   

   

    编译安装成功~!

 4 安装成功的后续工作(全局设置httpd服务的二进制文件、库文件、include文件、man手册)


   4.1 设置二进制文件的全局引用路径

        添加临时环境变量将二进制程序关联到系统默认路径,如何这样其他用户无需再进入绝对路          径去启动服务

     临时有效,下次登陆则不再生效

#export $PATH:/usr/local/apache/bin

             

     长久有效的话则需要配置文件

     

#vim /etc/profile.d/apache.sh
#PATH=$PATH:/usr/local/apache/bin
#export PATH

     重新读取环境变量立刻生效

   

#source /etc/profile.d/apache.sh

       

    4.2 全局设置,关联头文件到系统默认路径

     

#ln -sv /usr/local/apache/include/ /usr/include/httpd/

   

    4.3 全局设置,关联库文件到系统默认路径

 

#ln -sv /usr/local/apache/lib/ /usr/lib/http

       

       重读数据库文件,生成新的缓存

     

lddconfig -v

   

    4.4 全局设置,配置服务命令的man手册路径,全局长久生效

     

#vim /etc/man.config

      添加MANPATH /usr/local/apache/man 添加到配置文件中如图:


   编译安装apache

   

   配置完4步骤的所有,httpd服务可以直接调用,并且其他用户同样可以直接使用,而且长久生效


   

 PS 此次编译安装的过程个人认为yum仓库的创建与源程序包的取得是重点          



 



   本人经验不足,望过路大神耐心指点。