什么是编译安装——编译:将源代码变为机器可执行的代码文件。安装:将可执行文件安装到操作系统里,才可以使用。

一、下载httpd源码包

在官网上下载httpd源码包http://httpd.apache.org,也可以在linux中输入rpm -qi httpd查看到当前下载源码httpd的网址

下载到linux的data目录下,然后进行解压:

[root@ansibledata]#rz

[root@ansibledata]#tar xf httpd-2.4.39

注意:一定要在解压后的httpd目录下安装,下面的编译需要用到httdp目录下的脚本,所以我用cd httpd把目录切换到httpd中去进入cd httpd-2.4.27/

二、查看INSTALL、README 这些帮助信息

查询 cat INSTALL,里边有简单的安装过程,和一些例子

查询 cat README,(what is it ?)里边有一些Apache 的功能介绍

三、configure脚本(检测当前编译环境)

(1)./configure --help 查询这个脚本的用法,

--prefix=PREFIX  指定默认安装总目录, 默认为/usr/local/

--sysconfdir=/PATH 配置文件安装位置,默认就安装到指定安装总目录的下面

Optional Features:  需要什么功能

--disable-FEATURE 关闭某些功能

--enable-FEATURE 开启某些功能

下面我们就来执行这个脚本,添加一些简单的设置

手工创建账号:

[root@ansiblehttpd-2.4.39]#useradd -r -u 80 -d /var/www  -s /sbin/nologin httpd

(1)首先安装development-tools包,因为没有C编译工具,缺少gcc,这时候,我们需要下一个包组development tools

yum -y groupinstall "Development Tools"

[root@ansiblehttpd-2.4.39]#yum groupinstall "development tools"

(2)首次安装包,会有一些提示错误,第一次安装没有一些准备好的包,可以根据提示错误进行安装:

[root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

(3)我们只需按照提示的错误,把需要的都安装上去(直到没有提示错误)

先查询缺少的 yum search apr-devel(一般关于开发的都叫 devel)

再安装 yum -y install apr-devel

[root@ansiblehttpd-2.4.39]#yum install apr-devel

 

(4)此时缺少apr-util包,按照提示错误来进行下一步安装:

[root@ansiblehttpd-2.4.39]#yum install apr-util-devel
[root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

 

(5)根据提示错误继续往下安装,此时缺少pcre包,安装pcre-devel包

[root@ansiblehttpd-2.4.39]#yum install pcre-devel

 继续执行指定路径的包安装

[root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

(6)根据提示的错误,安装openssl-devel包:

[root@ansiblehttpd-2.4.39]#yum install openssl-devel

(7)再执行指定路径的包安装,此时就已经完成指定路径包的安装。

[root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

(8)configure脚本完全执行成功(多了一个Makefile)没有Makefile

四、make和make install编译

(1)进行make编译,make 编译后,多了很多.o .lo 文件 (二进制文件),在此之前的工作,任何用户都能做,并且都在httpd-2.4.27 这个目录下进行

[root@ansiblehttpd-2.4.39]#make

(2)make install 安装到指定位置,只有root 能做,此时httpd的编译完成。

[root@ansiblehttpd]#make install

(3)切换到/app/httpd/bin执行程序目录下,此时去执行服务启动,都必须是./apachectl start,不太方便,我们可以指定变量路径

[root@ansiblehttpd]#cd /app/httpd/bin
[root@ansiblebin]#pwd
/app/httpd/bin
[root@ansiblebin]#echo 'PATH=/app/httpd/bin:$PATH' > /etc/profile.d/httpd.sh 定义一个/app/httpd/bin的配置文件路径
[root@ansiblebin]#apachectl start 启动当前编译的httpd服务

此时在网上输入本机的IP地址就可以访问信息:

五、安装后的配置

导入帮助手册man

  vim /etc/man_db.conf

  加入一行 MANDATORY_MANPATH                       /app/httpd/man

  

httpd源码编译安装的更多相关文章

  1. Linux httpd源码编译安装

    # wget http://apache.fayea.com/httpd/httpd-2.2.31.tar.bz2 去官网下载源码包 # mv httpd-.tar.bz2 /usr/local/sr ...

  2. Linux源码编译安装httpd

    Linux安装软件采用源码编译安装灵活自由,适用于不同平台,维护也十分方便. 源码编译的安装方式一般由3个步骤组成: 1.配置(configure) 2.编译(make) 3.安装(make inst ...

  3. Httpd服务进阶知识-LAMP源码编译安装

    Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理  ...

  4. bash-2 httpd服务的源码编译安装脚本

    httpd服务的源码编译安装脚本 #!/bin/bash # #******************************************************************** ...

  5. 总结源码编译安装mysql

    最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...

  6. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  7. 第四次作业;创建raid5,源码编译安装;磁盘配额

    创建raid5 格式化 ext4 创建物理卷: 创建卷组: 创建逻辑卷: 格式化  ext4 挂载 开机自启动 创建raid配置文件 源码编译安装: 创建本地yum仓库 umount /dev/sr0 ...

  8. LAMP环境源码编译安装过程

    LAMP环境源码编译安装过程 一.Apache的安装 1.1.apache软件包及依赖包准备 httpd-2.4.29.tar.bz2       apr-1.6.3.tar.gz      apr- ...

  9. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

随机推荐

  1. vue项目使用keep-alive的作用

    在vue项目中,难免会有列表页面或者搜索结果列表页面,点击某个结果之后,返回回来时,如果不对结果页面进行缓存,那么返回列表页面的时候会回到初始状态,但是我们想要的结果是返回时这个页面还是之前搜索的结果 ...

  2. 分享一个关于Opencv的小总结

    import cv2   #opencv读取的格式是BGR import numpy as np 一.#读入文件 img=cv2.imread('cat.jpg') #’’引号内是图片所在盘的地址+名 ...

  3. Windows服务操作帮助类

    /// <summary> /// 打开系统服务 /// </summary> /// <param name="serviceName">系统 ...

  4. spring boot 单选按钮

    jsp代码 性别: <form:radiobutton path="xb" value="男"/>男 <form:radiobutton pa ...

  5. hadoop基本文件配置

    [学习笔记] 5)hadoop基本文件配置:hadoop配置文件位于:/etc/hadoop下(etc即:“etcetera”(附加物))core-site.xml:<configuration ...

  6. 使ssh记住密码

    前面介绍过Conemu , Msys2工具,提升了windows本地文件操作的效率,但使用ssh时候,总需要重新输入密码,不能像SercurityCRT等工具记住密码,使用时不是很爽快. 其实通过ss ...

  7. dubbo探究

    一 占位 待整理.. 二 问题汇总 1 谈谈dubbo的超时重试 dubbo 启动时默认有重试机制和超时机制.如果在一定的时间内,provider没有返回,则认为本次调用失败.重试机制出现在调用失败时 ...

  8. vim字符匹配

    按 : 这个符号进入命令模式后,可以对文本信息进行替换.删除等操作.

  9. element-ui获取用户选中项

    <el-table :data="tableData" stripe border style="width: 100%" @selection-chan ...

  10. Luogu5363 SDOI2019移动金币(博弈+动态规划)

    容易想到可以转化为一个有m堆石子,石子总数不超过n-m的阶梯博弈.阶梯博弈的结论是相当于只考虑奇数层石子的nim游戏. nim和不为0不好算,于是用总方案数减掉nim和为0的方案数.然后考虑dp,按位 ...