centos源码编译apache

服务器 172.18.1.211         CentOS release 6.2 (Final)   2.6.32-220.7.1.el6.i686

客户机  172.18.18.212


1;在服务器上编译apache httpd的安装包可以去官网下载,最新的是http2.4

 假设我服务器的那些依赖包都安装好了 下面是准备工作

  [root@taoke1 ~]# rpm -qa |grep httpd  //查看我服务器原来有没有安装过httpd,如果有就要卸载

  httpd-tools-2.2.15-39.el6.centos.i686

  httpd-2.2.15-39.el6.centos.i686 

  

 [root@taoke1 local]# rpm -e --nodeps httpd-2.2.15-39.el6.centos.i686          //卸载httpd --nodeps表示不卸载它的依赖软件


 因为编译apache需要一个apr 和apr-util 依赖包 而我又习惯性的将这两个依赖包编译到/usr/local/apr和 /usr/local/apr-util下 所以原来的这个我也要卸载掉

[root@taoke1 ~]# rpm -e --nodeps apr-1.3.9-3.el6_1.2.i686 

[root@taoke1 ~]# rpm  -e --nodeps apr-util-1.3.9-3.el6_0.1.i686


再查看下他的安装包,发现原来的那两个apr包都卸载掉了

[root@taoke1 ~]# rpm -qa |grep apr

apr-util-ldap-1.3.9-3.el6_0.1.i686  


 1,1编译安装apr 和apr-util

   我通过rz -y将两个文件传到服务器上去,并解压

wKioL1UbsojSsvEGAAFYLM5aQdg970.jpg


编译apr和apr-util 

       创建3个目录

    [root@taoke1 ~]# mkdir -p /usr/local/apr

    [root@taoke1 ~]# mkdir -p /usr/local/apr-util

    [root@taoke1 ~]# mkdir -p /usr/local/apache


    [root@taoke1 ~]# cd apr-1.5.1

    [root@taoke1 apr-1.5.1]# ./configure --prefix=/usr/local/apr

    [root@taoke1 apr-1.5.1]# make && make install


    [root@taoke1 ~]# cd apr-util-1.5.3

    [root@taoke1 apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr

    [root@taoke1 apr-util-1.5.3]# make && make install

   如果没提示错误就编译好了



2;编译apache

    [root@taoke1 ~]# cd httpd-2.4.12

    [root@taoke1 httpd-2.4.12]# ./configure \

    --prefix=/usr/local/apache \

    --enable-so \

    --enable-deflate \

    --enable-expires \

    --enable-headers \

    --enable-modules=most \

    --with-mpm=worker \

    --enable-rewite \

  --with-apr=/usr/local/apr \

  --with-apr-util=/usr/local/apr-util


  [root@taoke1 httpd-2.4.12]# make && make install

  如果没有报错就成功了 至于安装哪些模块 可以./configure --help查看


 配置服务器启动脚本和配置文件,在httpd包下找httpd.init 文件并且复制到/etc/init.d/

  [root@taoke1 httpd-2.4.12]# cp build/rpm/httpd.init /etc/init.d/httpd


 

 配置脚本及授权

  [root@taoke1 httpd-2.4.12]# chmod 700 /etc/init.d/httpd

  [root@taoke1 httpd-2.4.12]# vi /etc/init.d/httpd

 

    httpd=${HTTPD-/usr/sbin/httpd}          修改成 httpd=${HTTPD-/usr/local/apache/bin/httpd}
    pidfile=${PIDFILE-/var/run/${prog}.pid}  修改成pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid} 

    lockfile=${LOCKFILE-/var/lock/subsys/${prog}} 
    RETVAL=0


  

  


 配置/usr/local/apache/conf/httpd.conf和apache运行的进程用户

  www:x:500:500::/home/www:/sbin/nologin    //我这已经有个www用户了 就用这个用户做进程运行用户

 [root@taoke1 httpd-2.4.12]# vi /etc/httpd/conf/httpd.conf

 

 

   User www

  Group www

  ServerName localhost:80


 查看服务器状态

[root@taoke1 httpd-2.4.12]# service httpd status

httpd is stopped


启动服务器

service httpd start


在chkconfig服务列表中增加httpd服务

[root@taoke1 conf]# chkconfig --add httpd

[root@taoke1 conf]# chkconfig --level 35 httpd on

[root@taoke1 conf]# chkconfig --list |grep httpd

httpd           0:off 1:off 2:off 3:on 4:off 5:on 6:off


你可能感兴趣的:(apache,centos,源码编译)