【本文为笔者在学习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 查看详细内容。

转载于:https://www.cnblogs.com/helianthus/p/7494168.html

Linux学习日记——源码编译Apache相关推荐

  1. Linux上全源码安装Apache、MySQL、PHP、WSF安装(转载)

    Linux上全源码安装Apache.MySQL.PHP.WSF安装 博客分类: PHP PHPMySQLApacheLinuxSQLite Linux上全源码安装Apache.MySQL.PHP.WS ...

  2. 01 linux 下tcl源码编译安装和tcl手册使用

    标签(空格分隔): 源码编译安装 2020.7.7 1 下载安装包.tar.gz 2 解压压缩包 3 进入configure文件所在文件夹,执行./configure ./configure 注解: ...

  3. orangepi升级linux内核,orangePi源码编译教程

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? #环境 ubuntu 12.04.5 64位 8G内存 jdk-6u45-linux-x64.bin 64位JDK6 板 ...

  4. [学习笔记]在Linux中使用源码编译的方式安装Nginx

    准备工作 准备nginx源码包: nginx: downloadhttp://nginx.org/en/download.html准备相关的依赖包以及环境: gzip 模块需要 zlib 库  zli ...

  5. Linux下Poppler源码编译安装

    Poppler Poppler是用于呈现可移植文档格式(PDF)文档的免费软件实用程序库.它的开发得到freedesktop.org的支持.它通常在Linux系统上使用,并被开源GNOME和KDE桌面 ...

  6. 在Linux下用源码编译安装apache2

    Linux下安装一个软件,最好去看下它的官方guide,apache2.4的安装安装guide 0. installation guide http://httpd.apache.org/docs/2 ...

  7. (转)linux上nginx源码编译安装

    亲测有效: 转:  https://segmentfault.com/a/1190000007116797https://segmentfault.com/a/1190000007116797 ngi ...

  8. Linux之MySQL源码编译安装

    2019独角兽企业重金招聘Python工程师标准>>> 系统平台:Ubuntu12.04 编译环境:gcc-4.6.3 准备工作: mysql-5.5.28.tar.gz       ...

  9. Linux下qwt源码编译,QWT的编译与配置

    QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类 ...

最新文章

  1. 定制Eclipse IDE之界面篇
  2. 阿里云数据库备份DBS商业化发布,数据库实时备份到OSS
  3. html css整理笔记,HTML CSS整理笔记 (八) 定位网页元素
  4. dashujufenxi:全球企业将遭受20万亿美元损失 年底杠杆率升至90年代水平
  5. 【西交ACM】298 第N大的数
  6. 赛事丨出道题就能赢万元奖金?华录杯大赛告诉你,是真的
  7. Spark SQL在100TB上的自适应执行实践
  8. 《Python编程从入门到实践》记录之字典遍历
  9. C语言变量unsafe,Java中Unsafe使用详解
  10. docker web程序本地化_Docker 容器化部署 Python 应用
  11. rsync同步目录及同步文件
  12. JavaScript 弹出窗口代码大全
  13. ESXI 6.5安装详细步骤
  14. WEB服务器有哪几种
  15. 阿里安全研究员路全:如何运用AI对抗“数据污染”?
  16. oracle学习app,Oracle学习相关
  17. 如何重新设置苹果id密码_苹果怎么设置下载软件不要密码?手机技巧分享
  18. 华为 FTTB(大ONU)修改同时节目观看数
  19. STM32普中F103抢答器与抢答器的延时控制
  20. 74HCT04D基本参数介绍

热门文章

  1. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...
  2. 《 Python树莓派编程》——第1章 树莓派简介 第1.1 树莓派的历史
  3. 沃尔玛尝到了推行InnerSource的甜头
  4. AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)
  5. 配置Exchange 2010邮箱和邮件大小限制
  6. 十招搞定SQL2K安全
  7. 干货分享:什么是Java设计工厂模式?
  8. 第一弹:超全Python学习资源整理(入门系列)
  9. phpstudy mysql优化_MySQL_MySQL优化之对RAND()的优化方法,众所周知,在MySQL中,如果直 - phpStudy...
  10. vscode智能提示css的插件_Visual Studio Code 必备插件,主题及语法提示