相信大家大多都听过linux 的编译安装,但它到底是怎么把源代码变为自己电脑里可以应用的软件哪?今天,小编就以httpd 为例详细讲解一下。

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

一、下载httpd最新版本的源码包

(1)如果电脑里有老版本的情况下,rpm -qi httpd 查看详细信息,里边有这个命令下载的官网,没有老版本就去官网查找。

(2)去官网下载最新版本(自己想要的版本)(一般在downloads下)

(3)rz上传到linux ,并解压包 tar -xf  httpd-2.4.27.tar.bz2

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

进入cd httpd-2.4.27/

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

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

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

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

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

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

Optional Features:  需要什么功能

--disable-FEATURE 关闭某些功能

--enable-FEATURE 开启某些功能

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

./configure --prefix=/app/apache24 --sysconfdir=/etc/apache24  --enable-rewrite

① 首次安装,会提示出一些错误,因为有些包没有安装

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

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

再安装 yum -y install apr-devel

中间会提示一个,没有C编译工具,缺少gcc的错误,这时候,我们需要下一个包组Development Tools

yum -y groupinstall "Development Tools"

③ configure脚本完全执行成功(多了一个Makefile)没有Makefile ,不能下面make过程

四、make    和    make install 编译

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

make install 安装到指定位置,只有root 能做,

安装完毕

五、启动服务 

(1)netstat -ntl  查看本地监听端口,有没有开启80端口

如果没有开启, service httpd start 开启80端口

(2)设置防火墙,因为防火墙组织了80端口

  iptables -vL  查看防火墙策略,防火墙阻止,可以关闭防火墙

  systemctl status firewalld.service 查看当前防火墙状态(只有centos 7 中有)

    或 systemctl is-active firewalld.service  查看当前防火墙状态

  systemctl stop firewalld.service 暂时关闭防火墙(下次开机会在开启)

  systemctl is-enabled firewalld.service  查看开机时是否开启防火墙

  systemctl disable firewalld.service  设置开机时不开启防火墙

如果是centos 6 以下的较低版本

  service iptables stop 关闭防火墙

  chkconfig httpd off 设置开机时不开启防火墙

(3)如果是安装新版本,需现将旧版本卸载 rpm -e httpd (rpm -qf `which httpd`查询当前版本)

(4)/app/apache24/bin/apachectl start  开启服务

就此服务开启成功!!!

/app/apache24/bin/apachectl stop 可以关闭服务

六、安装后的配置

(1)设置PATH   export PATH=$PATH:/app/apache24/bin/

  设置后,可以 apachectl start 开启服务

         apachectl stop 关闭服务

(2)导入帮助手册man

  vim /etc/man_db.conf

  加入一行 MANDATORY_MANPATH                       /app/apache24/man

就可以man apachectl

到此就完成所有工作了!!!

希望对大家有帮助,有什么错误请告诉我~

linux 编译安装详解的更多相关文章

  1. Linux—编译安装详解

    编译安装python3 1.python是通过C语言编写,所以在编译安装python3时需要在C语言环境 [root@localhost ~]# yum install -y gcc 2.python ...

  2. linux http服务源码编译安装详解

    相信大家大多都听过linux 的编译安装,但它到底是怎么把源代码变为自己电脑里可以应用的软件哪?今天,小编就以httpd 为例详细讲解一下. 什么是编译安装——编译:将源代码变为机器可执行的代码文件. ...

  3. centOS linux 下nginx编译安装详解

    Nginx的官方网站是 www.nginx.org   Nginx的下载地址是:http://nginx.org/en/download.html   由 于官网的设计非常简洁不大气不上档次,所以我们 ...

  4. hadoop2.2.0 centos 编译安装详解

    http://blog.csdn.net/w13770269691/article/details/16883663 废话不讲,直切正题. 搭建环境:Centos x 6.4 64bit 1.安装JD ...

  5. Linux wget安装详解

    Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具.如果没有安装可在 http://www.gnu.org/software/wget/wget.html下载最新版本,并使 ...

  6. centOS linux 下PHP编译安装详解

    一.下载PHP源码包 wget http://php.net/distributions/php-5.6.3.tar.gz   二.添加依赖应用 yum install -y gcc gcc-c++ ...

  7. 【转载】postgreSQL在linux中安装详解

    .编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgresq ...

  8. apache源码编译安装详解

    查看是否安装 rpm -qa httpd        如果已安装,则卸载:rpm -e 卸载  --nodeps 不考虑意外        下载 wget http://mirrors.sohu.c ...

  9. Redis Linux版安装详解

    Redis介绍 我的Linux系统是CentOS7 1.安装Redis 官方下载地址:http://download.redis.io 使用Linux下载:wget http://download.r ...

随机推荐

  1. ListView 介绍

    1. 通过继承Activity实现ListView 1.1 在XML布局文件中实现一个ListView <ListView android:layout_width="wrap_con ...

  2. 2017寒假零基础学习Python系列之函数之 递归函数

    什么是递归函数? 在函数内部,也可以继续调用其他函数,如果一个函数在内部调用本身,这个函数为递归函数举一个求n的阶乘的例子: def fact(n): if n == 1: return 1; els ...

  3. h5 新增特性用法---持续更新

    1.dataset <div class="box" data-title1="自定义属性" data-age="18" data-m ...

  4. Vue.js入学教程

    Vue.js是什么Vue.js 是用于构建交互式的 Web 界面的库.Vue.js 提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单.灵活的 API.Vue.js(类似于view)是一套构建 ...

  5. (转载)提高系统OOP抽象以应对复杂的需求

    提高系统OOP抽象以应对复杂的需求, 转自:http://www.nowamagic.net/librarys/veda/detail/1373 有人问我如何构建一个比较好的类阶层次,如何使用面向对象 ...

  6. wget下载站点文件

    非常简单的指令,只需要: wget -c -r -p -k -np [URL] 下面解释下个参数的意义: -c 断点续传 -r 递归下载,可遍历整个站点的结构 -p 网页显示所需要的素材(图片\css ...

  7. vijos1196题解

    Matrix67和Shadow正在做一个小游戏. 桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作.在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不 ...

  8. Watson API - Personality Insight For Certificate

    Personality Insight For Certificate 1.Describe the intended use of the Personality Insights service ...

  9. Samba远程代码执行漏洞(CVE-2017-7494)本地复现

    一.复现环境搭建 搭建Debian和kali两个虚拟机: 攻击机:kali (192.168.217.162): 靶机:debian (192.168.217.150). 二.Debian安装并配置s ...

  10. 十年过去了,各位 .net 兄弟还好吗

    时间是最无情的,一下子就毕业10年了.很久没有发发牢骚了,今天突然想发一下.看过我文章喷过的知道,我一般都是散文,看完不知道我写了什么,形散而神不散嘛. 十年了,不好意思,没像网上说的标准一样,做管理 ...