一键编译安装httpd服务

一键编译安装httpd服务

背景:

httpd服务是一个常用的web服务,所以很多地方会用到,这里写一个一键编译安装httpd服务的脚本。

环境:

系统:centos6.9和centos7.3(应该所有的6和7的版本都可以使用)

httpd源代码版本:httpd-2.2.34.tar.bz2和httpd-2.4.27.tar.bz2 。下载网址官网:http://httpd.apache.org/

条件:已安装yum工具。

准备编译httpd:

当这两个版本的源代码下载好后,我们先将这两个源代码包放在一个文件夹里,这个文件夹取名为httpd。

 

#install development tools 
#安装开发工具组包,其中-y表示当需要输入y/n时,直接选择y
 1 yum groupinstall -y "development tools" &> /dev/null
#这段代码是获取系统的主要版本号是centos6还是centos7,然后将结果放在releasever这个变量里 
 2 releasever=`cat /etc/centos-release | egrep -o " [0-9]" | cut -d" " -f2`
#在编译安装过程中会提示我们有些工具包没有安装,我们这里提前先安装
 3 yum -y install apr-devel.x86_64 &> /dev/null
 4 yum -y install apr-util-devel.x86_64 &> /dev/null
#pcre这个包是我在centos7上测试安装时提示我缺少的包,所以先判断是不是centos7版本,是就安装上
5 [ $releasever -eq 7 ] yum -y install pcre-devel.x86_64 &> /dev/null

开始编译:

 

#先切换目录到httpd下
 18 cd httpd  
#判断系统主版本号,如果是7则解压2.4版本的httpd源代码,如果是6则解压2.2版本的httpd源代码 
#然后切换目录到对应的解压后的文件夹里
#执行configure文件,--prefix=/app/httpd22或者24是指,编译安装的后的文件放在哪,我们这里将所有的文件都放在了/app/httpd22里
#如果需要将不同的文件放在不同的目录下,则需要自己添加相关参数。
 19 [ $releasever -eq 7 ] && tar -xf httpd-2.4.27.tar.bz2 && cd httpd-2.4.27 && ./configure --prefix=/app/httpd24 && make && make install
 20 [ $releasever -eq 6 ] && tar -xf httpd-2.2.34.tar.bz2 && cd httpd-2.2.34 && ./configure --prefix=/app/httpd22 && make && make install
 21 echo "#####httpd install finished####"
 22 echo "#####start config the PATH ####"
#在/etc/profile.d/目录下写配置文件,将httpd的启动过路径放在PATH变量里
 23 [ $releasever -eq 7 ] && echo 'export PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh
 24 [ $releasever -eq 6 ] && echo 'export PATH=/app/httpd22/bin:$PATH' > /etc/profile.d/httpd.sh
#让配置文件生效 
 25 source /etc/profile || echo "httpd.sh start failed"
#启动httpd服务,如果失败则输出开启失败
26 apachectl start || echo "start httpd failed"
 27 echo "#####start httpd finished"
#注销变量 
28 unset releasever

 

完整代码:

 

  1 #!/bin/bash
  2 #install development tools 
  3 yum groupinstall -y "development tools" &> /dev/null
  4 releasever=`cat /etc/centos-release | egrep -o " [0-9]" | cut -d" " -f2`
  5 yum -y install apr-devel.x86_64 &> /dev/null
  6 yum -y install apr-util-devel.x86_64 &> /dev/null
  7 [ $releasever -eq 7 ] yum -y install pcre-devel.x86_64 &> /dev/null
  8 cd httpd  9 [ $releasever -eq 7 ] && tar -xf httpd-2.4.27.tar.bz2 && cd httpd-2.4.27 && ./configure --prefix=/app/ht    tpd24 && make && make install 10 [ $releasever -eq 6 ] && tar -xf httpd-2.2.34.tar.bz2 && cd httpd-2.2.34 && ./configure --prefix=/app/ht    tpd22 && make && make install
 11 echo "#####httpd install finished####"
 12 echo "#####start config the PATH ####"
 13 [ $releasever -eq 7 ] && echo 'export PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh
 14 [ $releasever -eq 6 ] && echo 'export PATH=/app/httpd22/bin:$PATH' > /etc/profile.d/httpd.sh
 15 source /etc/profile || echo "httpd.sh start failed" 16 apachectl start || echo "start httpd failed"
 17 echo "#####start httpd finished"  18 unset releasever               
 18 unset releasever

安装成功界面:

一键编译安装httpd服务

 

原创文章,作者:657188918,如若转载,请注明出处:http://www.178linux.com/83819

(1)
657188918657188918
上一篇 2017-09-16 09:41
下一篇 2017-09-16 09:47

相关推荐

  • LVM原理、创建、扩容、缩减、快照详解

    LVM是什么?为什么要使用LVM?     LVM(Logical Volume Manager):逻辑卷管理, 在日常使用或生产环境中, 我们可能会因为在规划存储时未考虑到未来数据增长的速度超乎我们的预计而措手不及,因为增加一块硬盘再将源数据移到新硬盘上很麻烦并且提高了成本还浪费硬盘空间。   &…

    Linux干货 2016-03-09
  • 22期第十周课堂练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)     2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;       (1) 为硬盘新建两个主分区;并为其安装grub;       (2) 为硬盘的第一个主分区提供内核和ramdi…

    Linux干货 2016-10-24
  • 第十九周作业

    1.描述tomcat的架构 tomcat服务器是一种Servlet/jsp容器,更实质性的说是Servlet容器,因为jsp最终还是被编译成servlet来执行的。而对于servlet来说,其最长见的用途是扩展java web服务器功能,为来自web客户的请求提供服务。它完全运行在java虚拟机上。由于它的运行在服务器端,因此他的运行不依赖于浏览器。 tom…

    2017-07-11
  • X-Y Problem

    X-Y Problem 对于X-Y Problem的意思如下: 1)有人想解决问题X2)他觉得Y可能是解决X问题的方法3)但是他不知道Y应该怎么做4)于是他去问别人Y应该怎么做? 简而言之,没有去问怎么解决问题X,而是去问解决方案Y应该怎么去实现和操作。于是乎: 1)热心的人们帮助并告诉这个人Y应该怎么搞,但是大家都觉得Y这个方案有点怪异。2)在经过大量地讨…

    Linux干货 2016-08-15
  • DNS服务器之理论基础

    一、什么是DNS     DNS全称为Domain Name System,即域名系统,其作用就是将我们经常使用的“网址”解析为IP地址。     在互联网上通信需要借助于IP地址,但人类对于数字的记忆能力远不如文字,那么将IP地址转换成容易记忆的文字是个好办法,可是计算机只能识…

    Linux干货 2015-04-29
  • 关于文件系统备份、交换分区挂载等–中

    dd命令:convert and copy a file 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST  bs=#:block size, 复制单元大小 count=#:复制多少个bs  of=file 写到所命名的文件而不是到标准…

    Linux干货 2016-08-29