linux什么是编译安装,linux http服务源码编译安装详解

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

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

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

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

205891675_1_20201029095754275.png

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

205891675_2_20201029095754447.png

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

205891675_3_20201029095754525.png

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

进入cd httpd-2.4.27/

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

205891675_4_20201029095754587.png

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

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

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

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

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

205891675_5_20201029095754681.png

Optional Features:  需要什么功能

--disable-FEATURE 关闭某些功能

--enable-FEATURE 开启某些功能

205891675_6_20201029095754806.png

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

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

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

205891675_7_20201029095754915.png

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

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

再安装yum -y installapr-devel

205891675_8_2020102909575572.png

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

yum -y groupinstall 'Development Tools'

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

205891675_9_20201029095755165.png

四、make    和make install编译

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

205891675_10_20201029095755290.png

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

安装完毕

205891675_11_20201029095755337.png

五、启动服务

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

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

205891675_12_20201029095755415.png

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

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

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

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

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

205891675_13_20201029095755556.png

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

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

205891675_14_20201029095755822.png

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

service iptables stop 关闭防火墙

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

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

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

205891675_15_20201029095755962.png

就此服务开启成功!!!

/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

205891675_16_2020102909575656.png

就可以man apachectl

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

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

205891675_17_20201029095756165.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值