linux http服务源码编译安装详解
相信大家大多都听过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 http服务源码编译安装详解的更多相关文章
- apache源码编译安装详解
查看是否安装 rpm -qa httpd 如果已安装,则卸载:rpm -e 卸载 --nodeps 不考虑意外 下载 wget http://mirrors.sohu.c ...
- Linux环境PostgreSQL源码编译安装
Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...
- 在Linux下用源码编译安装apache2
Linux下安装一个软件,最好去看下它的官方guide,apache2.4的安装安装guide 0. installation guide http://httpd.apache.org/docs/2 ...
- linux下如何源码编译安装vim
1. 获取源码 git clone https://github.com/vim/vim.git ~/vim cd ~/vim 2. 配置 ./configure --prefix=/home/jel ...
- QGIS源码编译步骤详解——官方新方案
目录 源码下载 环境下载 Cygwin64 OSGeo4W CMAKE Visual Studio 2017 环境配置 配置 编译 方案详细可见源码文件中INSTALL.md. 源码下载 QG ...
- 源码编译安装MySQL8.0.20
1 概述 本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装 2 源码编译安装的相关知识 2.1 make与configure make ...
- Linux 从源码编译安装 OpenSSH
https://blog.csdn.net/bytxl/article/details/46639073 Linux 从源码编译安装 OpenSSH以及各问题解决 2015年06月25日 17:37: ...
- Linux源码编译安装httpd
Linux安装软件采用源码编译安装灵活自由,适用于不同平台,维护也十分方便. 源码编译的安装方式一般由3个步骤组成: 1.配置(configure) 2.编译(make) 3.安装(make inst ...
- Httpd服务进阶知识-LAMP源码编译安装
Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理 ...
随机推荐
- android踩坑日记1
Android四大组件-活动.服务.广播.碎片 情况一 应用场景:定时从服务器获取数据,然后活动或者碎片中根据最新获得的数据,更新UI. 思考: 首先定时,想到定时器,推荐使用系统自带的AlertMa ...
- data science学习笔记1
Mutiple Plots on One Graph plt.plot(x, norm.pdf(x)) plt.plot(x, norm.pdf(x, 1.0, 0.2)) #1.0 = mean, ...
- android 界面设计
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetric ...
- Scala中的Implicit详解
Scala中的implicit关键字对于我们初学者像是一个谜一样的存在,一边惊讶于代码的简洁, 一边像在迷宫里打转一样地去找隐式的代码,因此我们团队结合目前的开发工作,将implicit作为一个专题进 ...
- Android中RecyclerView出现java.lang.IndexOutOfBoundsException
在RecyclerView更细数据时出现java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder ...
- day19_雷神_django第二天
django_day02 Django的路由系统 URL配置(URLconf)就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. 1.URLconf配置 基本 ...
- 转发: windows如何管理内存
(1)有三种方法:虚拟内存,内存映射文件,内存堆栈. 虚拟内存是将页文件加载到内存,适用于比较大的对象或结构: 内存映射文件是将磁盘上文件加载到内存,适用于大文件和单机的进程间内存共享: 堆栈就是动态 ...
- Linux-系统编程-知识点概述
1.基本指令和5个背景知识(os.env.file.shell.权限) 2.开发环境:(vim.gcc.g++.gdb.ctags.make.Makefile.procbar) 3.进程1: 进程的基 ...
- table设置上下左右边距不一样-html
新手上路,刚刚自学html,仅作为记录学习历程用,有需要的可以参考. 1.边距相同时 <table align="center" cellpadding="15re ...
- war和war exploded区别
war和war exploded区别 在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况: 是选择war还是war exploded 这里首先看一下他们两个的区别: war模式: ...