httpd源码安装

前面介绍了源码安装,现在小试牛刀一把。在linux中安装httpd,下面是安装步骤:

一、下载httpd-2.4.4.tar.bz2.

二、tar�Cjxvf   httpd-2.4.4.tar.bz2  -C /usr/local/src

三、进入 /usr/local/src 可以看到你解压缩后的一个名为httpd-2.4.4的文件夹

四、使用ls查看里面的内容,一般源码安装的文件都有一些特征的文件,如README  INSTALL (这            

   两个一般都是说明文件,为了知道你的安装),CONFIGURE(它是一个可执行的脚本文件,目的是

   为了 生成makefile文件,由源码的开发商提供)

  INSTALL的内容:


   $ ./configure --prefix=PREFIX  (安装目录)

   $ make                      (经过第一步之后就生成了makefile文件)

   $ make install                  (将产出的makefile文件安装同一个目录)

   $ PREFIX/bin/apachectl start   在安装目录的中会生成一个bin文件,里面有可执行的脚本)


五、在安装时指明两个目录安装路径配置文件路径sysconfigdir

六、--with-apr-util=     apach可移植运行库,为了在多种操作系统中使用,如果不安装的话就

无法安装apache

七、然后运行 ./ configure  --prefix=/usr/local/apache  --sysconfdir = /etc/apache  

始进行编译

八、可是这步报错了,为什么呢?因为./configure 是一个脚本,在生成maikefile时会检测你的

系统运行环境,看你的系统是否满足它所要运行的环境。

九、上面的错误说明你没有安装APR ,所以你就有查看你是否安装了APR。如果你安装了的话,那

可能是缺少库文件,APR的库文件在一个APR-DEVEL-1..RPM。如果你的linux版本是redhat el5

话,你可以在光盘中找到。

  使用命令rpm �Civh/mnt/cdrom/Server/apr-devel-1.2.7-11.el5_31.i386.rpm安装。

十、然后在使用命令:./configure  --prefix =/usr/local/apache --sysconfdir=/etc/apache.

可能你又失败了,原因是你的版本太低。没关系,失败是成功的妈。你可以在网上下载一个高版本

的。www.rpmfind.net apr-1.4.6.tar.gz  apr-util-1.4.6.tar.gz


   十一、下载一个高版本的之后

   使用命令将这两个文件解压缩,tar �Czxvf  压缩文件名   -C  解压的目录  /usr/local/src

   使用上面的方法,你就可以通过查看它们的大致信息了。通过README查看基本的安装方式。

   ./configure  --prefix =/usr/local/apr  (它只是一个运行库,所有不需要―sysconfdir这个

    参数了)

    在编译的过程中如果不出现error,那就没事。


    十二、编译之后,就产生了很多的makefile文件,此时你就可以用make来将这些makefile文件安

          装到一块儿。最后一步就是make install

    十三、然后你进入apache的安装目录(/usr/local/apr,


          可以看到有binbuild-1includelib。Bin是二进制文件,可执行文件,include

          文件。Lib库文件,你这个程序产生的库文件,和头文件可能被其他的某些程序用到,所

          有你就要有一个共享的精神,独乐乐不如众乐乐!那别的程序如何找到你的头文件和库文

          件呢。为了让别人找到它们。你需要进入/usr/include,因为这里有许多的include,系

          统在运行某些程序时就从这里开始查找,没有的话可能就无法执行了。进入系统能识别的

          目录 /usr/include  ln �Cs/usr/local/apr/include/apr-1/* ./这样就可以识      

          别include文件了。

    十四、那库文件这么做呢。首先你打开vim /etc/ld.so.conf   这个文件说明,你可以将你源码

          安装的库文件的路径加进来就可以了。如何做呢?你进入/etc/ld.so.conf.d/中创建一

          个apr.conf文件。在里面写入/usr/local/apr/lib (这个是你安装apache时的目

          录,lib是自动生成的)。这样还不行,你要更新一下缓存文件,这样系统才能找到。使

          用ldconfig更新缓存。然后使用 ldconfig �Cpv |grep apr

    十五、我们还下载了一个apr-util的工具,在安装一下。方法和apr的安装大同小异。进入你解

          压缩的文件,你会看到configure README

          ./configure �Cprefix=/usr/local/apr-util  --with-apr=/usr/local/apr/bin

          然后make

          最后makeinstall

    十六、如果出现errorpcre-cofigfor libpcre not found (这是缺少描述正则表达式的扩展

          库)

          看是否安装了pcre,如果安装了,可能就是少了库文件。你还需要安装pcre-devel这个库

          文件。rpm �Civh /mnt/cdrom/Server/pcre-devel-6.6-2.el5_1.7.i386.rpm

    十七、重新来到/usr/local/src/httpd-2.4.4/

    十八、最后执行./configure --prefix=/usr/local/apache �Csysconfdir=/etc/apache --  

       with-apr=/usr/local/apr/bin/apr-1-config  --with-apr-util =/usr/local/apr-  util,

          编译后出现了很多makefile文件,那就编译吧,make,最后一步执行makeinstall

    进入/usr/local/apache apache的安装目录,可以看到apache的安装文件,同样的,要把它的头文件加载到系统的头文件中,进入/usr/include 使用命令:ln �Cs /usr/local/apache/include/* ./

    进入/usr/local/apache/bin 中可以找到apache的相关运行脚本和可执行程序。其中的httpd就是可执行程序,而apachectl是运行脚本程序。你在apachebin目录中使用命令./httpd就可以启动httpd务了。

    但是这样肯定是不行的,因为httpd源码安装是可以在很多平台上安装的,那根据不同的平台和要求,

    实现不同的功能,就得需要配置文件。所以我们应该结合前面安装的apache的配置文件apache。可以使用./httpd  -h来查看相关参数。可以看到一个-f的参数。./httpd �Cf/etc/apache/httpd.conf

    但是这样运行的话比较麻烦,你可以编写一个脚本程序来控制它的运行。你还记得你用rpm安装某些服务时,启动服务的命令吗?service  服务名 startstoprestartstatus),其实你也可以这样来运行你的httpdService 控制的这些脚本一般都在/etc/init.d里。所以你就可以在这里面写一个控制你httpd的脚本。这样你也可以使用service  httpd start来开启你的httpd了。


httpd服务脚本:

vim httpd

chmod a+x httpd


#!/bin/bash

prog=/usr/local/apache/bin/httpd    *htpd源文件

configfile=/etc/apache/httpd.conf   *配置文件

lockfile=/var/lock/subsys/httpd     *锁文件

.  /etc/init.d/functions   *引进sources文件

start () {

if [ -e $lockfile ] ; then

echo “the program `basename $prog`

      isstarted……”

else

echo �Cn �Ce “the program `basename $prog  

              `is starting….”

sleep 2

$prog �Cf $chonfigfile  && echo �Ce  

“\033[31m [ ok ] \033[0m” && touch

$lockfile || echo  -e “\033[31m [ faile ]

\033[0m”

   fi

}

stop() {

   if [ -e $lockfile] ; then

   echo �Cn  “the program `basename $prog` is    

   stoping……”

   sleep 2

   killproc  httpd &&  echo “ok” &&rm �Crf

             $lockfile || echo “faile”

   else

   echo “the program`basename $prog` is

          stoped”

   fi

}

status () {

   if  [-e $lockfile ] ; then

   echo “the program `basename $prog`  

          isrunning…..”

   else

   echo “the program `basename $prog ` is

          stop “

   fi

}


case “$1” in

start)

   start

   ;;

stop)

   stop

   ;;

status)

   status

   ;;

restart)

   stop

   start

   ;;

*)

   echo “usage : start | stop | restart

          |status”

esac


本文出自 “人生在勤,不索何获” 博客,谢绝转载!

你可能感兴趣的:(httpd源码安装)