centos7源码编译安装Apache2.4.25服务

•一、源码包下载

•二、安装开发环境以及编译环境

•三、编译安装以及报错排查

•四、调试Apache服务


前言:

本文主要介绍了在Centos7环境中如何通过源码编译的方式安装Apache服务(也就是我们的httpd服务)由于本文整理时间有限,所以难免有些纰漏之处,欢迎大家在阅读后在评论区指出,本人看到会在第一时间修改文中错误的地方。

为什么要进行源码编译安装

一般来说,我们软件的安装方式有yum(rpm),和源码编译两种方式,那么为什么我们需要源码编译安装一部分软件?选择源码编译安装软件有以下几个原因: 1:满足不同的运行平台,我们Linux发型版本众多,但是每个版本采用的软件或者内核版本都不一样,而我们的二进制包所依赖的环境不一定能够正常运行,所以大部分软件直接提供源码! 2:方便定制,满足不同的需求,很多时候我们所需要的软件都是可以定制的,我需要什么就安装什么,大多数二进制代码都是一键装全,所以自由度并不高! 3:方便运维、开发人员维护,我们的源码是可以打包二进制的,但是对于这个软件的打包都会有一份代价不小的额外工作,包括维护,所以如果是源码的话,软件产商会直接维护,但是如果是二进制的话,一般都是Linux发行商提供!

一、Apache源码包下载

1:如何下载源码包

为了线上环境的安全,我强烈建议各位不要随便去网上搜索出来某个源码包就进行编译安装,正确的姿势是去它的官网去下载,当然下载之后为了安全起见同时也不要忘记校验它的贞操(MD5和SHA1校验码)。httpd服务官网地址:https://httpd.apache.org/如下图
centos7源码编译安装Apache2.4.25服务 
 如果觉得这样比较繁琐还可以通过wget命令进行下载

wget http://httpd-mirror.frgl.pw/apache//httpd/httpd-2.4.25.tar.bz2 “通过wget下载Apache的源码包”

centos7源码编译安装Apache2.4.25服务


二、安装开发环境以及编译环境

工欲善其事必先利其器,所以我们要想编译安装软件必须要具备开发环境。这里我将直接通过yum的方式安装开发环境包组

yum groupinstall “Development Tools” -y “安装开发环境包组” 
yum install make -y “安装make编译包” 
yum -y install gcc gcc++ zlib zlib-devel “安装编译apache时所需要的相关软件包”


三、编译安装以及报错排查

1、首先我们要对压缩包进行解压
   在解压之前我个人还是习惯去校验一下压缩包的贞操(MD5校验)

wget https://www.apache.org/dist/httpd/httpd-2.4.25.tar.bz2.md5“我这里直接下载源码包的md5值到本地进行对比” 
md5sum httpd-2.4.25.tar.bz2 “输出下载的httpd源码包的md5值” 
cat httpd-2.4.25.tar.bz2.md5 “查看官网给出的安装包md5值”

centos7源码编译安装Apache2.4.25服务

经过对比两个值相同,证明该源码包的贞操依在可以放心使用。

tar -xfv cat httpd-2.4.25.tar.bz2.md5 -C /usr/local/src/httpd-2.4.25/ && cd /usr/local/src/httpd-2.4.25/ “解压文件到指定的目录下,并且进入解压的目录”

2、开始编译源码包(切记当前目录是在/usr/local/src/httpd-2.4.25/)

./configure –prefix=/app/httpd2.4 –sysconfdir=/etc/httpd2.4/ && make && make install

--prefix=/app/httpd2.4 #httpd服务安装路径  --sysconfdir=/etc/httpd2.4 #httpd服务配置文件路径 

错误排查

configure: error: APR not found.  Please read the documentation.
  #apr依赖包没有找到
  解决方法 ` yum install apr-devel -y `
 configure: error: APR-util not found.Please read the documentation.
  #apr-util依赖包没有找到
  解决办法 ` yum install apr-util-devel -y ` 
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ 
#pcre依赖包没有找到,如果需要pcre包可从http://pcre.org/获取最新版本。 
解决办法 ` yum install pcre-devel -y ` 
注释:通常编译报错提示的"xxx  not found"这些都是我们安装的软件所依赖的包,而你的环境没有安装导致的错误,安装即可。
而安装这些依赖包通常都是缺少的开发包所以我这边安装的都是以 ` ***-devel ` 的依赖包。我啰嗦这么多是基于性能上考虑,尽量减少不必要的安装包来减少服务器的压力。
如果你的服务器配置够好可以使用通配符 `yum -y install pcre*  apr* ` 来解决安装包的问题(但是不推荐这样的方式)
3、生成Makefile文件进行make install安装
` make -j 2 && make install ` "-j参数是加速编译  2是调用CPU的两个核心来编译   make install就是把编译好的文件进行安装" 
注释:-j参数后面跟的数字是你的CPU可用的核心数 不能超过实际的核心数量。
make 编译时系统默认是值是 make -j 1(所以你CPU是单核的话就不用加 -j参数了,直接make编译就可以了,只不过花费的时候可能会长一些。)

四、调试Apache服务

1、配置Apache的启动脚本

cp /app/httpd2.4/bin/apachectl /etc/init.d/httpd “复制启动程序到/etc/init.d/目录下并改名为httpd让系统调用” 
这时我们就可以使用/etc/init.d/httpd start来启动Apache服务了 
或者是下面这种写成PATH环境变量
echo ‘PATH=$PATH:/app/httpd2.4/bin’ > /etc/profile.d/httpd.sh && source /etc/profile.d/httpd.sh#这里是将/etc/init.d/httpd直接放在了PATH变量中,然后启用变量生效,这样我们直接可以运行httpd start 就可以启动服务了

` ss -tunl | grep 80 ` //查看80端口已经打开 这时打开浏览器访问你的IP地址就可以看到80端口的服务已经可以正常访问
centos7源码编译安装Apache2.4.25服务 
2、Apache安装完成需要注意的地方

ps -aux | grep apache //源码编译apache,运行用户为deamon

centos7源码编译安装Apache2.4.25服务 
id daemon //编译安装运行用户身份是daemon 
useradd -M -s /sbin/nologin apache //创建一个用户用来运行apache 
vim /etc/httpd2.4/httpd.conf //修改配置文件改变apache运行身份

centos7源码编译安装Apache2.4.25服务

User apache #运行用户 Group apache #运行组,创建apache的时候已经即时创建了apache这个组 

id apache //显示我们刚才新建的apache用户的信息 
chown -R apache:apache /app/httpd2.4/ //默认是root,改为apache 
ps -aux | grep httpd 查看是否为apache用户身份运行httpd服务

centos7源码编译安装Apache2.4.25服务

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

(1)
谷歌 shark谷歌 shark
上一篇 2017-04-22
下一篇 2017-04-22

相关推荐

  • 高效运维最佳实践(03):Redis集群技术及Codis实践

    前言 诚如开篇文章所言,高效运维包括管理的专业化和技术的专业化。前两篇我们主要在说些管理相关的内容,本篇说一下技术专业化。希望读者朋友们能适应这个转换,谢谢。 互联网早在几年前就已进入Web 2.0时代,对后台支撑能力的要求,提高了几十倍甚至几百倍。在这个演化过程中,缓存系统扮演了举足轻重的角色。 运维进化到今天,已经不是重复造轮子的时代。所以,我们在架构优…

    Linux干货 2015-04-03
  • Keepalived实现nginx双主

    一、架构描述与应用 1. 应用场景 大多数的互联网公司都会利用nginx的7层反向代理功能来实现后端web server的负载均衡和动静分离。这样做的好处是当单台后端server出现性能瓶颈时可以对其进行横向扩展从而提高整个系统的并发,同时也可以通过后端server提供的http或tcp监控接口对其进行健康检查实现自动Failover和Failback。&n…

    Linux干货 2016-07-16
  • vim编辑器

    vim编辑器    模式化编辑器                        &nbsp…

    Linux干货 2016-08-10
  • 马哥教育网络班20期第1周课程练习

    答: 1、 ①控制器:是计算机的中枢神经,协调计算机各部分工作及内存与外设的访问等 ②运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 ③储存器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。 ④IO:输入设备是将数据或控制命令等信息输入到计算机。输出设备把机算机的各种数据符号及文字或各种控制信号等…

    Linux干货 2016-06-23
  • bash数据类型探秘

    数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间,相当于多个变量的在调用变量时最好加双引号,对于字符串中含有空格等字符的能更好的调用集合。数组名和索引索引:编号从0开始,属于数值索引( 偏移量从默认0开始 )注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引, bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引…

    Linux干货 2016-08-24
  • 磁盘管理

    磁盘管理 本文将按顺序以实例演示磁盘管理的所有操作,让我们开始吧! 一,磁盘的添加 ① 先来查看linux系统总共有几个磁盘,由图可知是两个,分别是sda,sdb。我们再加一个,按照磁盘命名顺序,应是sdc,他们都在/dev目录下。 补充: 1,磁盘命名规则: 不同磁盘,按照a-z依次标识,如sda,sdb,sdc 同一磁盘的不同分区,按照1,2,&#823…

    2017-08-19

评论列表(1条)

  • renjin
    renjin 2017-04-28 10:50

    详细的介绍了linux下的编译安装使用,内容及排版都特别精细,非常好的一篇博客,博客数量上可以再增加一些了!