加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 运营中心 > Apache > 正文

源码安装apache脚本部署过程详解

发布时间:2023-02-17 13:24:49 所属栏目:Apache 来源:互联网
导读:源码安装apache脚本部署 [root@localhost ~]# ls anaconda-ks.cfg httpd.tar.xz [root@localhost ~]# tar xf httpd.tar.xz 解压存放脚本的压缩包 [root@localhost ~]# ls anaconda-ks.cfg httpd httpd.tar.xz [root@localhost ~]# cd httpd/ [root@localhost
  源码安装apache脚本部署
  
  [root@localhost ~]# ls
  anaconda-ks.cfg  httpd.tar.xz
  [root@localhost ~]# tar xf httpd.tar.xz  解压存放脚本的压缩包
  [root@localhost ~]# ls
  anaconda-ks.cfg  httpd  httpd.tar.xz
  [root@localhost ~]# cd httpd/
  [root@localhost httpd]# ls
  apache_lnh.sh(编译安装apache脚本)  config.sh(附属脚本)  files
  [root@localhost httpd]# ls files/    //存放安装包的目录
  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz  httpd-2.4.54.tar.gz  zhuawawa(源码包的目录)
  [root@localhost httpd]# cat apache_lnh.sh
  #/bin/bash
  
  #列出httpd版本号进行选择
  cat > /tmp/xbz.txt <<EOF
  请输入要安装的版本序号:
  1. 2.4.54
  2. 2.4.53
  q. 退出
  
  EOF
  cat /tmp/xbz.txt
  read -p "选择版本号"  apache_version
  case $apache_version in
          1)
          apache_version=$(awk 'NR==2{print $2}'  /tmp/xbz.txt)
          echo $apache_version
          ;;
          2)
          apache_version=$(awk 'NR==3{print $2}'  /tmp/xbz.txt)
          echo $apache_version
          ;;
          q)
          apache_version=$(awk 'NR==4{print $2}'  /tmp/xbz.txt)
          echo $apache_version
          exit
          ;;
          *)
          echo "错误输入"
          exit
  esac
  #设置执行权限
  if [ $UID -ne 0 ];then
          echo "请以管理员用户进行执行"
          exit
  fi
  #定义变量
  install_dir=/usr/local/apache
  #创建用户
  id apache &> /dev/null
  if [ $? -ne 0 ];then
              useradd -r -M -s /sbin/nologin apache
      else
              echo "用户已存在"
  fi
  #安装依赖包
  dnf -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ wget make vim  zip --allowerasing
  #解压源码包
  rm -rf /tmp/*
  tar xf files/apr-1.7.0.tar.gz -C /tmp/
  tar xf files/apr-util-1.6.1.tar.gz -C /tmp/
  tar xf files/httpd-$apache_version.tar.gz -C /tmp/
  #编译安装apr
  cd /tmp/apr-1.7.0
  if [ ! -d /usr/local/apr ];then
  sed -i '/$RM "$cfgfile"/d' configure
  ./configure --prefix=/usr/local/apr &&
  make && make install   
  else
          ls /usr/local
          echo "apr 编译安装完成"
  fi
  #编译安装apr-util
  cd ../apr-util-1.6.1/
  if [ ! -d /usr/local/apr-util ];then
  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr &&
  make && make install
  else
           ls /usr/local/
           echo "apr-util 编译安装完成"      
  fi
  #编译安装httpd
  cd ../httpd-$apache_version/
  if [ ! -d ${install_dir} ];then
              ./configure --prefix=${install_dir}
                      --enable-so
                      --enable-ssl
                      --enable-cgi
                      --enable-rewrite
                      --with-zlib
                      --with-pcre
                      --with-apr=/usr/local/apr
                      --with-apr-util=/usr/local/apr-util/
                      --enable-modules=most
                      --enable-mpms-shared=all
                      --with-mpm=prefork   
               make && make install   
  else
            ls ${install_dir}
            echo "httpd 编译安装完成"
  fi
  #设置环境变量,man文档,头文件
  echo "export PATH=${install_dir}/bin:$PATH" > /etc/profile.d/apache.sh
  ln -s ${install_dir}/include /usr/include/apache &> /dev/null
  grep 'apache' /etc/man_db.conf &> /dev/null
  if [ $? -ne 0 ];then
              sed -i "22a MANDATORY_MANPATH                       ${install_dir}/man" /etc/man_db.conf
  fi
  #将其加入systemd服务里面
  cat > /usr/lib/systemd/system/httpd.service <<EOF
  [Unit]
  Description=httpd server daemon
  After=network.target
  
  [Service]
  Type=forking
  ExecStart=${install_dir}/bin/apachectl start
  ExecStop=${install_dir}/bin/apachectl stop
  ExecReload=/bin/kill -HUP $MAINPID
  
  [Install]
  WantedBy=multi-user.target
  EOF
  #加载文件并设置开机自启
  systemctl daemon-reload
  systemctl enable --now httpd
  #查看端口
  ss -antl
  [root@localhost httpd]# cat config.sh
  #!/bin/bash
  
  #定义变量
  install_dir=$(grep '^install_dir=' apache_lnh.sh  | awk -F'=' '{print $2}' )
  echo $install_dir
  
  #添加包含虚拟主机
  grep 'Include conf/extra/httpd-vhosts.conf' $install_dir/conf/httpd.conf &> /dev/null
  if [ $? -eq 0 ];then
          echo "Include conf/extra/httpd-vhosts.conf" >> $install_dir/conf/httpd.conf

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读