• apache编译安装 httpd 2.2 httpd 2.4


    #apache编译安装
    #httpd 2.2 , httpd 2.4

    #!/bin/sh
    #apache编译安装
    #httpd 2.2 , httpd 2.4
    #centos 
    
    #rpm -e httpd*
    Ve=2.2
    [ $1 = 2.4 ] && Ve=2.4 || Ve=2.2 #设置安装版本2.2或2.4
    
    #目录
    Ddir=/it/tools  #定义下载目录
    Sdir=/www/server #定义安装目录
    Adir=$Sdir/apache$Ve
    [ ! -d $Ddir ]  && mkdir -p $Ddir
    mkdir -p $Adir
    
    echo '#安装需要的库'
    yum install make gcc gcc-c++ pcre pcre-devel zlib* -y
    yum install expat-devel -y #安装apr-util需要
    #yum install apr apr-util -y
    yum install wget lrzsz -y
    yum install openssl openssl-devel -y 
    
    # echo '#添加用户'
    # useradd apache -s /sbin/nologin -M 
    # id apache
    
    echo "#下载"
    cd $Ddir
    wget http://mirrors.aliyun.com/apache/apr/apr-1.6.2.tar.gz
    wget http://mirrors.aliyun.com/apache/apr/apr-util-1.6.0.tar.gz
    wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
    [ $Ve = 2.4 ] && { 
        wget http://mirrors.aliyun.com/apache/httpd/httpd-2.4.27.tar.gz ;
        }|| { 
        wget http://mirrors.aliyun.com/apache/httpd/httpd-2.2.34.tar.gz ;
        }
    
    echo "解压"
    tar -xf apr-1.*.tar.gz
    tar -xf apr-util-1.*.tar.gz
    tar -xf pcre-8.*.tar.gz
    tar -xf httpd-$Ve.*.tar.gz
    [ $? = 0 ] || { echo "解压出现问题 !";exit; }
    
    echo "#安装"
    mkdir -p $Sdir/http/{apr,apr-util,pcre}
    cd $Ddir
    #apr
    cd apr-1.*
    ./configure --prefix=$Sdir/http/apr/
    [ $? = 0 ] || { echo "编译出现问题 !";exit; }
    make && make install
    cd ..
    #apr-util
    cd apr-util-1.*
    ./configure --prefix=$Sdir/http/apr-util/ --with-apr=$Sdir/http/apr/
    [ $? = 0 ] || { echo "编译出现问题 !";exit; }
    make && make install
    cd ..
    #pcre
    cd pcre-8.*
    ./configure  --prefix=$Sdir/http/pcre/
    [ $? = 0 ] || { echo "编译出现问题 !";exit; }
    make && make install
    cd ..
    
    #httpd
    cd $Ddir/httpd-$Ve.*
    #./configure --help
    ./configure 
    --prefix=$Adir 
    --enable-deflate 
    --enable-expires 
    --enable-headers 
    --enable-modules=most 
    --enable-so 
    --with-mpm=worker 
    --enable-rewrite 
    --with-apr=$Sdir/http/apr/ 
    --with-apr-util=$Sdir/http/apr-util/ 
    --with-pcre=$Sdir/http/pcre/ 
    ap_cv_void_ptr_lt_long=no 
    #
    [ $? = 0 ] || { echo "编译出现问题 !";exit; }
    echo 编译安装
    make -j4 && make install
    echo '#编译模块查看'
    $Adir/bin/apachectl -l 
    
    pkill `netstat -antp|grep 80|awk -F '/' '{ print $2}'` &>/dev/null #关闭80端口进程
    echo "ServerName localhost:80">>$Adir/conf/httpd.conf
    echo '#启动apache'
    $Adir/bin/apachectl start
    echo '#查看'
    netstat -antp|grep httpd
    ps -ef|grep http|grep -v "grep"
    echo "$Adir/bin/apachectl { start|restart|stop }"
    
    # 加入系统服务,开机启动
    sed -i -e '2 i #chkconfig: 2345 70 60 
    #description: apache'  $Adir/bin/apachectl
    # ln -s $Adir/bin/apachectl /etc/init.d/httpd
    # echo "$Adir/bin/apachectl start">>/etc/rc.local
    # chkconfig --add httpd
    # chkconfig httpd on
    # chkconfig --list httpd
    
    # # #添加环境变量
    # echo "export PATH=$Adir/bin:$PATH">>/etc/profile.d/httpd.sh
    # . /etc/profile.d/httpd.sh
    
    # #添加库文件至系统
    # echo "$Adir/include/">>/etc/ld.so.conf.d/httpd.conf
    # ldconfig
    
    # #man文档添加至系统
    # man -M $Adir/man httpd
    # echo "MANPATH $Adir/man">>/etc/man.config
    
    # #隐藏头文件版本
    # echo "#隐藏头文件版本
    # ServerTokens ProductOnly
    # ServerSignature Off
    # ">>$Adir/conf/httpd.conf
    
    #php 测试
    echo '<?php phpinfo(); ?>'>$Adir/htdocs/test.php
    # other
    #--sysconfdir=/etc/httpd 
    
    #Apache配置php
    #php编译时,需要有参数--with-apxs2=/apache安装目录/bin/apxs  
    #php编译完成后,apache配置文件里会自动添加php模块LoadModule php5_module module/libphp5.so
    #echo "Addtype application/x-httpd-php .php .phtml">>$Adir/conf/httpd.conf #开启php支持
    
    #另一种方式,使用fcgi接口方式,传递php给独立php进程解析,配置略
  • 相关阅读:
    如何利用azMan (Authorization Manager) 实现 rolebased的安全验证机制
    如何处理源dump文件的mscordacwks.dll文件与调试机上的版本不一致问题而无法使用extension cmd的问题
    UI thread client callback和UI thread WCF Service一起工作时死锁的形成原因及解决方法
    如何在 IIS 6.0 上配置托管的 Web 应用程序时使用 SPN(包括Network service ,domain acount, NLB, host header等各种情况)
    WCF中各种Transaction的分类及其相关参数的设置
    利用windbg调试class type,value type以及MethodTable等强化C#的基本概念
    如何自定义Attribute class并将其应用到相应的class
    谷歌浏览器F12调试页面学习
    上班族致富之道
    折半插入排序
  • 原文地址:https://www.cnblogs.com/elvi/p/7717896.html
Copyright © 2020-2023  润新知