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 19:44
下一篇 2017-04-22 21:41

相关推荐

  • Linux操作系统发展史

    内容摘要:Linux操作系统的诞生,Linux 的发展,Linux的特性决定其迅猛发展,Linux的应用领域与发展前景 关键词:Linux的发展  前景   1.  Linux操作系统的诞生 在1981年到1991年十年间,微软公司的MS-DOS系统一直主宰操作系统的市场,其价格十分昂贵,另一个操作系统UNIX的经销商为了高利润…

    Linux干货 2016-10-14
  • shell脚本循环及函数

    16.循环执行                 将代码段重复运行多次           &nbsp…

    Linux干货 2016-08-24
  • 网络基础

    计算机网络     计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 1、网络通信设备     网络通信设备种类繁多,且日新月异,网络通信设备通常由网络线缆、网卡、集线器、中继器、网桥、交换机、路由器等组成。 网桥(Bri…

    Linux干货 2016-12-16
  • 命令read

    read命令是一个bash命令,它用于从键盘或标准输入中读取文本.我们可以使用read以交互的形式读取来自用户的输入.并且read还提供一种不需要按回车就能够输入参数的方法. read可以从标准输入中读取单独的一行,或者使用-u选项,从文件描述符FD中读取.并且这单独的行被分隔成多个域,第一个词被赋值给第一个变量,第一个赋值给第二个变量,以此类推,直到剩下的…

    Linux干货 2016-08-12
  • 系统进程管理

    ps 查看系统进程命令 启动进程的方式:     系统启动过程中自动启动:与终端无关的进程;     用户通过终端启动:与终端相关的进程; 选项:         a:所有与终端相关的进程; &nbs…

    Linux干货 2016-09-06
  • Linux 压缩、解压缩和打包工具

        前言:你是否曾经因为某个文件占用空间较大,而空间紧缺的U盘无法存放此文件。你是否曾经因为软件里有太多文件而不方便复制和携带。你是否曾因需要备份太过零散而头疼。那么基于“文件压缩和打包”的技术因此出现。下面介绍下Linux下关于压缩、解压缩和打包的工具及使用。 一、相关术语的原理和意义   &…

    Linux干货 2015-07-15

评论列表(1条)

  • renjin
    renjin 2017-04-28 10:50

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