Linux学习日记——源码编译Apache

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习日记——源码编译Apache相关的知识,希望对你有一定的参考价值。

【本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正。】

一、典型的源码编译安装软件的过程包括以下3步:

  1) 运行 configure 命令,并结合必要的参数以生成Makefile ;(读者可以自行百度Makefile 相关知识)

  2) 运行 make 命令生成各类模块和主程序;

  3) 运行 make install 命令将必要的文件复制到安装目录中。

  (以上过程都在对应软件安装包的根目录中进行)

二、安装过程

    Linux 系统中,一般是在 /usr/local/src 目录中下载源码包 (不是硬性规定,只是一个习惯),在该目录下可以通过命令:

    wegt http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz 下载。资源来自清华大学开源软件镜像站(https://mirrors.cnnic.cn/),很多镜像资源都可以在里面找到。

    下载完成后使用 tar 进行解压,然后进入 /usr/local/src/httpd-2.4.27 目录,进入目录后需要使用 configure 工具生成Makefile ,对于我这样的菜鸟来说只用了最简单的方式生成,因为配置Apache 时可以加入的参数实在是太多了。命令: ./configure --prefix=/usr/local/apache/  在这之后,configure 会产生很多输出,开始checking 很多编译环境(是够有gcc 工具、软件依赖关系之类的)。

    这时候很多人会出现安装失败的报错信息(configure: error: APR not found. Please read the documentation. 没有找到APR,请阅读文档)这时候需要先配置相关依赖,一般来说后面还会出现缺少 apr-util 以及 pcre 的情况。若没有出错则直接跳到第4步即可。(注:1-3步 是报错后配置环境,应该在 /usr/local/ 目录下进行操作,配置完成后检查当前目录是否存在 apr apr-util pcre 三个文件夹,然后再进入到 /usr/local/src/httpd-2.4.27 目录中继续之前操作 )

    1 下载包

      wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz  

      wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz

      wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

    2  安装(下面演示 apr 的安装 其他安装方式相同)

      tar -zxf apr-1.4.5.tar.gz

      cd apr-1.4.5 

      ./configure --prefix=/usr/local/apr

      make && make install  (这种组合命令,如果不是在root 下运行,使用 sudo 也只能通过root 运行 make 而 make install 依然没有权限,笔者是通过bash 解决

      【sudo bash -c ‘ make && make install  ‘】)

    3  最后在编译Apache 的时候 加上:

     ./configure   --prefix=/usr/local/apache/   --with-apr=/usr/local/apr   --with-apr-util=/usr/local/apr-util/   --with-pcre=/usr/local/pcre/

    4  完成上一步之后会在当前目录下生成Makefile 文件,这时候使用make 和 make install 命令安装即可。 命令:  make && make install

    5  以上操作顺利完成后,Apache 已经安装完成,可以通过命令: /usr/local/apache/bin/apachectl start  打开服务

    然后使用 ifconfig 指令查看服务器地址:

    技术分享

    6  最后在浏览器中输入域名地址,结果如下安装成功:

    技术分享

 

  这种源码编译的方式,只是体验一下这个过程,熟悉其中的流程以及原理后加深自己的理解,以上方式安装虽然看似很简单,但是是由于使用了简单的编译方式。使用源码编译安装软件其实存在很多弊端,首先,系统中必须存在gcc 工具(对于安全生产有一定的影响);其次,源码编译本身是有很多的可选参数的,这些参数对应着不同的功能,安装时指定了哪些参数,软件就具备哪些功能,而对于不同的使用环境,需求应该是不同的,因此最坏的情况下,需要重新进行编译安装(除一些通过添加模块来添加功能的项目外,这些项目可以不重新编译,只需要编译相应的模块即可)。另外,编译安装的过程耗时很长,并不适用于大规模的项目部署。最后源码编译无法完成软件的管理功能(卸载、升级、检测...)。重在了解,另外RedHat 为了解决源码编译存在的种种不足,使用了更加简单的RPM (RedHat Package Manager)包管理机制。读者可以在 http://man.linuxde.net/rpm 查看详细内容。

 

以上是关于Linux学习日记——源码编译Apache的主要内容,如果未能解决你的问题,请参考以下文章

Numba学习日记 —— 2019-12-5

Linux学习日记

Linux学习日记

Linux学习日记-Linux基础

学习日记 09-27

linux学习日记1