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

相关推荐

  • bash

    1.  bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示           状态返回值:            &nbsp…

    Linux干货 2016-11-06
  • 二进制、八进制、十进制、十六进制之间的转换

    二进制、八进制、十进制、十六进制之间的关系:   二进制:0,1 八进制:0,1,2,3,4,5,6,7, 十进制:0,1,2,3,4,5,6,7,8,9 十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F   二进制与十进制之间的转换: 十进制转二进制:   二进制转十进制:   二进制与八进制…

    2017-04-01
  • N21天天第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS主机按以下顺序启动 1、POST加电自检 2、BIOS读取CMOS中的BIOS设置的参数来识别基础硬件,寻找到启动设备 3、MBR 1)读取启动设备MBR中前446字节的bootloader 2)读取MBR后的扇区用来识别grub以及内核kernel所在的区域 3)启动g…

    Linux干货 2016-09-26
  • N25第六周作业

    vim 是vi编辑的升级版,同样有三种工作模式:编辑、命令和一般 模式 #:指定行号位置 #,#:指定多少行到多少行 #,+#:指定范围,多少行开始,加#行 $:最后一行 .:当前行 .,$-1,当前行到倒数第二行 1,$:全文 %:全文 /从上往下,?:从下往上 搜索 /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行 s/要查找的内容…

    Linux干货 2017-01-11
  • 高级文件系统管理之逻辑卷管理

    一,概述 逻辑卷管理器(LVM)     LVM: Logical Volume Manager, Version:2          dm:device mapper (设备映射),将一个或多个底层块设备组织成一个逻辑设备的模块 &nb…

    Linux干货 2016-09-10
  • ansible学习笔记之2 ad-hoc篇

    ansible学习笔记之2 ad-hoc篇 ansible学习笔记之2 ad-hoc篇 ansible 学习笔记 ad-hoc ansible学习笔记之2 ad-hoc篇 使用ansible ad-hoc搭建lnmp/lamp 编辑host文件,通过秘钥认证ssh连接主机 前期环境准备 在lnmp上安装lnmp 其中 ad-hoc搭建mysql主从 配置文件…

    2016-11-21

评论列表(1条)

  • renjin
    renjin 2017-04-28 10:50

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