• centos7一键编译安装Apache2.4.46脚本


    #!/bin/sh
    . /etc/init.d/functions
    #相关软件包
    PACKAGE="
    deltarpm
    gcc
    make
    pcre-devel
    openssl-devel
    expat-devel
    bzip2
    wget
    "
    #安装目录
    FILE=/apps/httpd
    
    #当前目录
    ML=`pwd`
    
    #相关软件安装
    for PACK in $PACKAGE;do
        rpm -q $PACK &> /dev/null || yum -y -q install $PACK
    done
    
    #下载相关源码包
    wget https://downloads.apache.org//apr/apr-1.7.0.tar.bz2 &> /dev/null
    wget https://downloads.apache.org//apr/apr-util-1.6.1.tar.bz2 &> /dev/null
    wget https://downloads.apache.org//httpd/httpd-2.4.46.tar.bz2 &> /dev/null
    
    #解压相关源码包
    tar xf httpd-2.4.46.tar.bz2
    tar xf apr-1.7.0.tar.bz2 && mv apr-1.7.0 ${ML}/httpd-2.4.46/srclib/apr
    tar xf apr-util-1.6.1.tar.bz2 && mv ${ML}/apr-util-1.6.1 httpd-2.4.46/srclib/apr-util
    
    #编译
    [ -d $FILE ] || mkdir -p $FILE
    cd ${ML}/httpd-2.4.46/
    ./configure --prefix=$FILE --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork  &> /dev/null && action "编译完成" || { action "编译失败" false; exit; }
    
    #安装
    make &> /dev/null  && { make install &> /dev/null; action "httpd安装完成"; }
    
    #创建用户
    id apache &> /dev/null || useradd -s /sbin/nologin -r apache
    
    #修改配置文件中的启动用户
    sed -i 's/^User.*/User apache/' ${FILE}/conf/httpd.conf
    sed -i 's/^Group.*/Group apache/' ${FILE}/conf/httpd.conf
    
    #配置环境变量
    echo 'PATH=/apps/httpd/bin:$PATH' > /etc/profile.d/httpd.sh
    source /etc/profile.d/httpd.sh
    
    #配置man帮助
    echo 'MANDATORY_MANPATH          /apps/httpd/man' >> /etc/man_db.conf
    
    #创建服务启动文件
    cat > /usr/lib/systemd/system/httpd.service <<EOF
    [Unit]
    Description=The Apache HTTP Server
    After=network.target remote-fs.target nss-lookup.target
    Documentation=man:httpd(8)
    Documentation=man:apachectl(8)
    
    [Service]
    Type=forking
    #EnvironmentFile=/etc/sysconfig/httpd
    ExecStart=/apps/httpd/bin/apachectl start
    #ExecStart=/apps/httpd/bin/httpd $OPTIONS -k start
    ExecReload=/apps/httpd/bin/apachectl graceful
    #ExecReload=/apps/httpd/bin/httpd $OPTIONS -k graceful
    ExecStop=/apps/httpd/bin/apachectl stop
    KillSignal=SIGCONT
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    #启动服务
    systemctl daemon-reload
    systemctl enable --now httpd.service &> /dev/null && action "httpd服务启动成功" || action "httpd服务启动失败,请检查配置文件" false
  • 相关阅读:
    [网络流24题]方格取数
    [网络流24题]太空飞行计划
    网络流24题题解合集【不定期更新】【附常见套路分析】
    【优先队列】POJ3614-Sunscreen
    【优先队列】POJ1442-Black Box
    【Huffman树贪心+优先队列】POJ3253-Fence Repair
    【优先队列+贪心】POJ2431-Expedition
    【专题笔记】优先队列和堆
    【动态规划】POJ1664-放苹果
    【动态规划+二分查找】POJ2533&POJ1631最长上升子序列(LIS)
  • 原文地址:https://www.cnblogs.com/nj-duzi/p/13885132.html
Copyright © 2020-2023  润新知