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

相关推荐

  • Linux 磁盘、文件系统管理

    Linux 磁盘、文件系统管理                                               &nb…

    Linux干货 2016-09-01
  • linux中如何使用帮助

     在linux学习过程中,会遇到许多困难,尤其是一些命令掌握不牢固,不知道具体用法;或者是想要实现一些功能而不知道使用何种命令。这时求人不如求己,上网求助不如自己学会使用帮助,下面介绍几种linux帮助的用法。 1.what is +命令    执行这条命令可以显示命令的简短描述,让大家了解命令的基本功能。同时可以看到命令相关章…

    2017-07-23
  • vsftpd

    文件服务: 安装开启服务前先关闭selinux,清空iptables策略。避免不必要的麻烦,服务开启后,配置一切正常有需要再根据情况开启。 ftp:应用层,C/S,跨主机的文件共享服务;file transfer protocol nfs,cifs:文件系统接口,网络文件系统;     nfs:network&nbsp…

    Linux干货 2016-11-01
  • 自动化系统安装之DHCP服务实现

    DHCP服务实现 dhcp的工作过程是基于UDP协议的,其中用到了UDP的67(服务器),68(客户端)端口 使用场景 自动化安装系统 解决IPV4资源不足的问题 同网段多dhcp服务 dhcp服务必须基于本地 先到先得 跨网段 RFC 1542 dhcpclient客户端向dhcpsercer服务器请求续约时,中间相隔多网段时,如果路由器是 RFC1542…

    2018-01-29
  • Ansible 详细用法说明

    Ansible 一、概述 运维工具按需不需要有代理程序来划分的话分两类: agent(需要有代理工具):基于专用的agent程序完成管理功能,puppet, func, zabbix agentless(无须代理工具):基于ssh服务完成管理,ansible, fabric 二、简介   Ansible是一个简单的自动化运维管理工具,基于Python语言实现…

    2016-11-07
  • selinux与systemd

    selinux :service enhanced linux 安全增强的Linux  软件的安全性 选择安全系数较高的系统提高现有系统的安全性  计算机的安全等级D  最低的安全级别,提供最少的安全防护,系统访问无限制。DOS   C  访问控制的权限,能够实现可控的安全防护,个人账户管理,审计和…

    Linux干货 2017-05-22

评论列表(1条)

  • renjin
    renjin 2017-04-28 10:50

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