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

一、下载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. 求数值的n次方根

    二分法 float SqrtByBisection(float n) //用二分法 { if(n<0) //小于0的按照你需要的处理 return n; float mid,last; floa ...

  2. python:序列化与反序列化(json、pickle、shelve)

    本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...

  3. AWS 存储服务(三)

    目录 AWS S3 业务场景 挑战 解决方案 S3的好处 S3 属性 存储桶 Buckets 对象 Object S3 特性 S3 操作 可用性和持久性 一致性 S3 定价策略 S3高级功能 存储级别 ...

  4. linux 网络配置及远程连接

    linux 网络配置及远程连接 前言 本文结合自己的经历主要讲述以Centos7为基础网络配置和远程连接的解决步骤 网络配置: 安装好centos7后,是上不了网的,配置步骤如下: (1).输入命令d ...

  5. java 画图 Graphics 文字自动换行

    /** * 文字超出限定长度自动换行 * * @param g 画布 * @param font 字体样式 * @param text 文字 * @param widthLength 最大长度 (多少 ...

  6. 【ARM-Linux开发】DRM学习(一)

    http://www.landley.NET/kdocs/htmldocs/drm.html 非常好的一个链接,直接把DRM说的很透.很多API的功能都写全了. Table of Contents 1 ...

  7. php 阿里云国内短信实例

    调用:先去阿里云申请短信服务 $smsArr = array( "accessKeyId" => "", // key "accessKeySe ...

  8. PHP去除html的宽高属性的正则表达式

    PHP去除html的宽高属性的正则表达式 <pre><?php/** * 清除宽高样式 * @param String $content 内容 * @return String */ ...

  9. Anaconda是什么?Anconda下载安装教程(1)

    一.如果从事Python开发,配置环境需要安装两个包: 第一个安装开发工具,俗称IDE : 推荐使用 Pycharm 第二个安装开发工具包: Anaconda ps:Windows 下 Pycharm ...

  10. 第一周-----Java 的核心优势和生态体系——程序员们希望他们编写的程序能够运行在不同的机器,不同的环境中,这需要一种体系中立的语言(即跨平台)。

    跨平台是Java 语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已覆盖IT各个行业的“第一大语言,称为IT界的英语”