源码安装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 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 0 请输入要安装的版本序号: 1. 2.4.54 2. 2.4.53 q. 退出 eof cat tmp xbz.txt read -p "选择版本号" apache_version case $apache_version in 1) 'nr="=2{print" $2}' xbz.txt) echo ;; 2) q) exit *) "错误输入" esac #设置执行权限 if [ $uid -ne ];then "请以管理员用户进行执行" fi #定义变量 install_dir="/usr/local/apache" #创建用户 id apache &> /dev/null
if [ $? -ne 0 ];then
            useradd -r -M -s /sbin/nologin apache
    else
            echo "&#x7528;&#x6237;&#x5DF2;&#x5B58;&#x5728;"
fi
#&#x5B89;&#x88C5;&#x4F9D;&#x8D56;&#x5305;
dnf -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ wget make vim  zip --allowerasing
#&#x89E3;&#x538B;&#x6E90;&#x7801;&#x5305;
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/
#&#x7F16;&#x8BD1;&#x5B89;&#x88C5;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 &#x7F16;&#x8BD1;&#x5B89;&#x88C5;&#x5B8C;&#x6210;"
fi
#&#x7F16;&#x8BD1;&#x5B89;&#x88C5;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 &#x7F16;&#x8BD1;&#x5B89;&#x88C5;&#x5B8C;&#x6210;"
fi
#&#x7F16;&#x8BD1;&#x5B89;&#x88C5;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 &#x7F16;&#x8BD1;&#x5B89;&#x88C5;&#x5B8C;&#x6210;"
fi
#&#x8BBE;&#x7F6E;&#x73AF;&#x5883;&#x53D8;&#x91CF;,man&#x6587;&#x6863;,&#x5934;&#x6587;&#x4EF6;
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
#&#x5C06;&#x5176;&#x52A0;&#x5165;systemd&#x670D;&#x52A1;&#x91CC;&#x9762;
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 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' httpd.conf &> /dev/null
if [ $? -eq 0 ];then
        echo "Include conf/extra/httpd-vhosts.conf" >> $install_dir/conf/httpd.conf
fi
#&#x914D;&#x7F6E;&#x865A;&#x62DF;&#x4E3B;&#x673A;
cat > $install_dir/conf/extra/httpd-vhosts.conf <<eof <virtualhost *:80>
    DocumentRoot "$install_dir/htdocs/zhuawawa.example.com"
    ServerName zhuawawa.example.com
    ErrorLog "logs/zhuawawa.example.com-error_log"
    CustomLog "logs/zhuawawa.example.com-access_log" common

EOF
#&#x6DFB;&#x52A0;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;
firewall-cmd --add-rich-rule 'rule family=ipv4 source address=0.0.0.0/0 port port=80 protocol=tcp accept' --permanent &> /dev/null
firewall-cmd --reload
#&#x521B;&#x5EFA;&#x7F51;&#x7AD9;&#x5B58;&#x653E;&#x76EE;&#x5F55;
mkdir -p $install_dir/htdocs/zhuawawa.example.com
cp -r files/zhuawawa/* $install_dir/htdocs/zhuawawa.example.com

#&#x91CD;&#x542F;httpd
systemctl restart httpd
#&#x67E5;&#x770B;&#x7AEF;&#x53E3;
ss -antl
[root@localhost httpd]# ls
apache_lnh.sh  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(&#x63D0;&#x524D;&#x5C06;&#x6E90;&#x7801;&#x5305;&#x89E3;&#x538B;&#x5230;&#x8FD9;&#x91CC;)
[root@localhost httpd]# ls files/zhuawawa/  (&#x6B64;&#x5904;&#x662F;&#x6211;&#x89E3;&#x538B;&#x7684;&#x6E90;&#x7801;&#x5305;)
Battle_City  audio  css  images  index.html  js  tk.zip
</eof></eof></eof>

进行访问:

源码安装apache脚本部署
[root@localhost ~]# tar -Jcf httpd.tar.xz httpd/  //&#x538B;&#x7F29;&#x811A;&#x672C;&#x5B58;&#x653E;&#x76EE;&#x5F55;
[root@localhost ~]# ls
anaconda-ks.cfg  httpd  httpd.tar.xz

Original: https://www.cnblogs.com/tushanbu/p/16707212.html
Author: 涂山布
Title: 源码安装apache脚本部署

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573954/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 继承、封装、多态的实现原理

    欢迎来到Java学习之继承、封装、多态的实现原理 目录 从JVM结构开始谈多态 JVM 的结构 Java 的方法调用方式 常量池(constant pool) 图 2. 常量池各表…

    Linux 2023年6月13日
    0106
  • SlugRelatedField字段

    该字段用于外键字段该字段在序列化的时候多用于反向查询,在反序列化的时候用于接收关联表的唯一字段来生成该关联对象eg: 序列化 class PublishListSerializer…

    Linux 2023年6月14日
    099
  • Linux CURL的安装和使用

    –获得安装包,从网上直接下载或者其他途径,这里直接wgetwget http://curl.haxx.se/download/curl-7.17.1.tar.gz&#8…

    Linux 2023年6月13日
    085
  • Linux基础入门笔记

    Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux是一套免费使用和自由传播的类Unix操作系统,是一…

    Linux 2023年6月14日
    068
  • shell 获取变量是什么数据类型

    bash;gutter:true; function check(){ local a="$1" printf "%d" "$a&…

    Linux 2023年5月28日
    087
  • docker与kubectl 命令自动补齐

    安装自动补齐需要依赖工具 docker命令补齐: 执行下列命令 kubectl命令补齐: Original: https://www.cnblogs.com/qianyuliang…

    Linux 2023年6月8日
    073
  • 经典45个git使用技巧与场合,专治不会合代码。

    前言 git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户端工具,使得合并代码变的很方便。但找工作面试和…

    Linux 2023年6月13日
    0128
  • 一文教你快速部署OneBlog开源项目

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 OneBlog是什么? OneBlog,一个简洁美观、功能强大并且自适应的Java博客。使用springboot开发,前端使用B…

    Linux 2023年5月27日
    0117
  • 玩转redis-简单消息队列

    使用 go语言基于 redis写了一个简单的消息队列源码地址使用demo redis的 list 非常的灵活,可以从左边或者右边添加元素,当然也以从任意一头读取数据 添加数据和获取…

    Linux 2023年5月28日
    0107
  • Centos 7.x 线上安装 Kubernetes

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 安装依赖包 yum install -y conntrack ntpdate ntp ipvsadm ipset jq ipta…

    Linux 2023年5月27日
    0124
  • Unicode、UTF-8、UTF-16 终于懂了

    计算机起源于美国,上个世纪,他们对英语字符与二进制位之间的关系做了统一规定,并制定了一套字符编码规则,这套编码规则被称为ASCII编码 ASCII 编码一共定义了128个字符的编码…

    Linux 2023年6月13日
    0106
  • Emacs Lisp 入门

    ;; This gives an introduction to Emacs Lisp in 15 minutes (v0.2d);;;; 英文原作者: Bastien / @bz…

    Linux 2023年6月13日
    0111
  • ThinkPHP5权限管理

    自己写的权限管理,大致思路:用户登陆成功之后,查出该用户的权限列表,并把权限列表存到session中,进入系统后,再判断该模块是否在session中,如果存在就说明有该权限,就显示…

    Linux 2023年6月7日
    097
  • IaaS、PaaS和SaaS:云计算的三种服务模式 【转】

    云计算是一种新的计算资源使用模式,云端本身还是 IT 系统,所以逻辑上同样可以划分为这四层。底三层可以再划分出很多”小块”并出租出去,这有点像立体停车房,按…

    Linux 2023年6月8日
    0132
  • 5.7 Linux Vim可视化模式

    相信大家都使用过带图形界面的操作系统中的文字编辑器,用户可以使用鼠标来选择要操作的文本,非常方便。在 Vim 编辑器中也有类似的功能,但不是通过鼠标,而是通过键盘来选择要操作的文本…

    Linux 2023年6月7日
    0125
  • spingboot使用redis连接池报错

    配置如下,增加了连接池相关 redis: host: localhost port: 6379 database: 7 lettuce: pool: max-active: 20 …

    Linux 2023年5月28日
    090
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球