源码安装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)

大家都在看

  • 通过PowerShell实现SharePoint列表增删改

    通过 powershell 脚本实现 SharePoint 2010 列表项添加删除修改的例子。 接下来是获取列表: 当我们获取到列表后,就可以进一步获取列表项了。最直接的办法是调…

    Linux 2023年5月28日
    078
  • shell 中使用 diff 比较两条命令的输出

    直接给出命令: diff <(command1) <(command2)< code></(command1)> 原理: 使用了进程替换的语法,…

    Linux 2023年6月14日
    082
  • 【论文笔记】(2017,BIM)Adversarial Machine Learning at Scale

    本文主要是给出了两类多个对抗攻击方法:one-step 攻击和 multi-step 攻击,并在大型模型和大型数据集上对这些方法进行对比实验,实验结果发现使用 one-step 样…

    Linux 2023年6月7日
    070
  • 服务器部署 Vue 和 Django 项目的全记录

    本篇记录我在一个全新服务器上部署 Vue 和 Django 前后端项目的全过程,内容包括服务器初始配置、安装 Django 虚拟环境、python web 服务器 uWSGI 和反…

    Linux 2023年6月7日
    096
  • Redis Persistent Replication Sentinel Cluster的一些理解

    Redis Persistent Replication Sentinel Cluster的一些理解 我喜欢把工作中接触到的各种数据库叫做存储系统,笼统地说:Redis、Mysql…

    Linux 2023年5月28日
    067
  • 如何使用CMake构建c++项目

    1. c++项目构建与CMake简介 在Windows系统上我们通常使用 Visual Studio(VS)来生成我们的c++项目。我们只需在VS相应的层次目录中添加相应的文件即可…

    Linux 2023年5月27日
    0201
  • Netty源码解读(一)-前置准备

    前置条件 源码版本netty4.1 了解Java NIO、Reactor模型和Netty的基本使用。 解释一下: Java NIO:了解BIO和NIO的区别以及Java NIO基础…

    Linux 2023年6月7日
    079
  • Redis安装(CentOS 8.5 64位)

    Redis安装 1. 准备工作 1.1 下载安装包 官网下载地址:https://redis.io/ 1.2 传输文件到服务器 使用ssh工具连接到服务器,把下载好的文件上传到服务…

    Linux 2023年6月14日
    083
  • CentOS 压缩解压

    打包:将多个文件合成一个总的文件,这个总的文件通常称为 “归档”。 压缩:将一个大文件通过某些压缩算法变成一个小文件。 1.1、tar 压缩格式: tar …

    Linux 2023年6月8日
    076
  • 【Linux】指令学习

    Linux学习记录 😄生命不息,写作不止🏆 一个有梦有戏的人 @怒放吧德德🌝分享学习心得,欢迎指正,大家一起学习成长! 1、虚拟机网卡配置 服务器重启完成之后,我们可以通过linu…

    Linux 2023年6月6日
    0112
  • 以Docker方式安装Redis集群

    以 Redis-6.0.6 为例,先从仓库将镜像拉下来: docker pull redis:6.0.6 Redis 的配置文件和数据文件不能放在镜像中,这里选择容器中的目录和宿主…

    Linux 2023年5月28日
    055
  • sed高阶用法

    a 追加 [root@localhost ~]# cat test hello world jjjd aaaaaaa //向第二行后面追加’hi world’ [root@loca…

    Linux 2023年6月13日
    084
  • redis主从同步收到以下参数影响

    repl-ping-slave-period主从心跳ping的时间间隔。默认10 repl-timeout 从节点超时时间。默认60 repl-backlog-size 主节点保存…

    Linux 2023年5月28日
    060
  • Identity Server 4使用OpenID Connect添加用户身份验证(三)

    一、说明 基于上一篇文章中的代码进行继续延伸,只需要小小的改动即可,不明白的地方可以先看看本人上一篇文章及源码: Identity Server 4资源拥有者密码认证控制访问API…

    Linux 2023年6月13日
    078
  • 高速USB转4串口产品设计-RS485串口

    基于480Mbps 高速USB转8路串口芯片CH344Q,可以为各类主机扩展出4个独立的串口。CH344芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动…

    Linux 2023年6月7日
    091
  • 【已解决】linux centos7系统磁盘扩容

    第一步要手动加硬盘(我的操作是在20G的基础上加了30G) [reliable@hadoop102 ~]$ su root密码: 查看当前磁盘挂载情况: [root@hadoop1…

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