根据官方文档在Linux下编译安装Apache

前言

永远记住官方文档才是最准确的安装手册,这篇文章仅为对官方文档的解读和补充,学习提升务必阅读官方文档:

http://httpd.apache.org/docs/2.4/install.html

1、官方对编译安装的大致步骤介绍:

编译安装:

1、下载 从http://httpd.apache.org/download.cgi下载最新版本

2、解压 $ gzip -d httpd-NN.tar.gz

$ tar xvf httpd-NN.tar

$ cd httpd-NN

3、配置 $ ./configure --prefix=PREFIX

4、编译 $ make

5、安装 $ make install

6、定制 $ vi PREFIX/conf/httpd.conf

7、测试 $ PREFIX/bin/apachectl -k start

先不着急,了解了大致的步骤,再看其他要求:

2、官方对编译安装的环境要求:

构建Apache httpd存在以下要求:

1、APR和APR-Util

确保已在系统上安装APR和APR-Util。如果不这样做,或者宁愿不要使用系统提供的版本,同时下载APR和APR-的Util从最新版本的Apache APR,解开他们进入/httpd_source_tree_root/srclib/apr和/httpd_source_tree_root/srclib/apr-util (确保目录名称不具有版本号;例如,则APR分发必须位于/ httpd_source_tree_root / srclib / apr /下,并使用 ./configure的–with-included-apr 选项。在某些平台上,您可能必须安装相应的-dev软件包,以允许httpd相对于已安装的APR和APR-Util副本进行构建。

2、Perl兼容的正则表达式库(PCRE)

该库是必需的,但不再与httpd捆绑在一起。从http://www.pcre.org下载源代码,或安装端口或软件包。如果您的构建系统找不到PCRE构建安装的pcre-config脚本,请使用–with-pcre参数指向它。在某些平台上,您可能必须安装相应的-dev 软件包,以允许httpd针对已安装的PCRE副本进行构建。

3、磁盘空间

确保您至少有50 MB的可用临时磁盘空间。安装后,服务器大约占用10 MB的磁盘空间。实际的磁盘空间要求会根据您选择的配置选项,任何第三方模块以及服务器上的一个或多个网站的大小而有很大不同。

4、ANSI-C编译器和构建系统

确保已安装ANSI-C编译器。在GNU C编译器(GCC)从自由软件基金会(FSF) 的建议。如果您没有GCC,则至少要确保供应商的编译器符合ANSI。此外,您PATH必须包含基本的构建工具,例如make。

5、精确计时

HTTP协议的元素表示为一天中的时间。因此,是时候研究在系统上设置一些时间同步功能了。通常 基于网络时间协议(NTP)来使用ntpdate或xntpd程序。有关NTP软件和公共时间服务器的更多详细信息,请参见NTP主页。

6、Perl 5 [可选]

对于某些支持脚本,如apxs或dbmmanage(用Perl编写),则需要Perl 5解释器(版本5.003或更高版本已足够)。如果configure脚本未找到Perl 5解释器 ,则将无法使用受影响的支持脚本。当然,您仍然可以构建和使用Apache httpd。

解读:这几点我们需要注意的是1、2、4,所以在编译安装前,先将这几个工具下载安装好。

3、详细步骤

1、下载各种安装包

由于版本会不断更迭,这里不列出具体的安装包版本,读者自行从提供的地址下载最新版本即可

Apache最新版本下载地址

apr及apr-util下载地址

pcre下载地址

2、将安装包传入服务器

方法有很多种,windows可用xftp工具,macos可用scp命令,上面两个都不会的话,直接在服务器用wget命令获取。

pengyuyaodeMacBook-Air:Apache安装包合集 pengyuyao$ ls

apr-1.7.0.tar.gzhttpd-2.4.46.tar.bz2

apr-util-1.6.1.tar.gzpcre-8.44.tar.gz

pengyuyaodeMacBook-Air:Apache安装包合集 pengyuyao$ scp * root@192.168.1.114:~

root@192.168.1.114's password:

apr-1.7.0.tar.gz 100% 1068KB 24.2MB/s 00:00

apr-util-1.6.1.tar.gz 100% 541KB 28.0MB/s 00:00

httpd-2.4.46.tar.bz2 100% 7019KB 31.0MB/s 00:00

pcre-8.44.tar.gz 100% 2042KB 30.0MB/s 00:00

[root@localhost ~]# ls

anaconda-ks.cfg apr-util-1.6.1.tar.gz pcre-8.44.tar.gz

apr-1.7.0.tar.gz httpd-2.4.46.tar.bz2

3、解压

tar zxvf apr-1.7.0.tar.gz

tar zxvf apr-util-1.6.1.tar.gz

tar -xf httpd-2.4.46.tar.bz2

突然发现pcre可以用yum装,这里就懒得弄了

按照官方文档要求将安装好的apr工具放入httpd目录:

mv apr-1.7.0 httpd-2.4.46/srclib/apr

mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util

4、安装各种依赖包

yum -y install gcc gcc-c++ make pcre-devel expat-devel perl

依赖包详解:

gcc:C语言的编译器

gcc-c++ :C++的编译器

make :源代码编译(源代码转换成二进制文件)

pcre-devel:支持正则表达式

expat-devel:网站解析HTML文件

perl:perl编译器

5、编译前的配置

cd httpd-2.4.46

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite--enable-charset-lite --enable-cgi

注释:rewrite重写功能(支持动态网页)、charset开启字符集(实现中英文兼容)、cgi用户访问的接口

模块可以自定义一些功能,在编译前用户可以自行选用模块,关于模块的描述此处不做多赘述,熟悉nginx的话则很好理解,具体可以参照官方文档:

http://httpd.apache.org/docs/2.4/programs/configure.html

6、编译并安装

make && make install

到这一步就已经安装成功了,但是要使用的话还需要增加一点点细节

7、安装后的设置

1、关闭selinux核心防护

临时关闭:

setenforce 0

永久关闭:在/etc/sysconfig/selinux下把selinux改成disabled

vim /etc/sysconfig/selinux

SELINUX=disabled

刷新服务:

service sshd restart

2、关闭防火墙

临时关闭:service firewalld stop

永久关闭:systemctl disable firewalld

3、启动httpd服务

service httpd start

curl 192.168.1.114

It works!

服务器内访问成功!

浏览器访问成功!

4、设置httpd开机自启动

由于我们的Apache是编译安装,所以用传统的方法systemctl enable httpd是没用的,因为没有相关的脚本和配置:

[root@localhost init.d]# systemctl enable httpd

httpd.service is not a native service, redirecting to /sbin/chkconfig.

Executing /sbin/chkconfig httpd on

服务 httpd 不支持 chkconfig

如何设置脚本和配置?

设置个p,我们搞点骚操作,省下那些繁琐的配置

echo "/usr/local/httpd/bin/apachectl" >>/etc/rc.local

chmod +x /etc/rc.d/rc.local

我们直接把启动路径丢进引导文件里,开机就执行,这里不理解的可以去学习下Linux开机启动流程。

后记

这样基本上就把Apache搭好了,当然这只是最基本的安装,如何使用,如何修改配置文件,各配置项的意义,这些去查阅官方文档即可。

linux3.10.53编译,根据官方文档在Linux下编译安装Apache相关推荐

  1. linux下软件编译终止,[2018年最新整理]linux下编译运行程序命令大全.ppt

    [2018年最新整理]linux下编译运行程序命令大全 1. 项目课题引入 2. Vi编辑器的使用方法 3. Linux中C语言程序的编辑 4. Linux中C语言程序的运行 5. 现场演示案例 课题 ...

  2. mysql5.7.20官方文档,MySql 5.7.20安装及data和my.ini文件的配置

    1.首先上MySql的官网下载 以我所选版本为例(免安装版),选择MYSQL Community Server 然后在右边选择你所对应的版本 我的是64位 下载相应的zip版本 下载完解压到你想要存放 ...

  3. OpenCV-Python官方文档学习笔记(上)

    整理自OpenCV-Python官方文档 一. OpenCV-Python Tutorials 1 安装及验证 2 图片读写,展示 3 视频读写,展示 4 绘图功能(绘制几何形状:线.圆.椭圆.矩形. ...

  4. Centos 7.6 服务器安装oracle 11gR2(参考官方文档)

    Centos 7.6 服务器安装oracle 11gR2 说来气人,项目需要所以得在服务器上安装Oracle. 像往常一样,打开浏览器 -> 搜索 - > 找博客 -> 安装. 但是 ...

  5. Linux错误27,解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”...

    centos64位编译32位代码,出现/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录,需要安装32位的glibc库文件. 安装 ...

  6. 爆肝1个多月,严选10大热门静态博客框架,官方文档、教学视频、经典案例、热门插件一应俱全,强烈建议收藏

    [文章编号 t001] 凌晨 12 点,我有一位朋友,在电话里,气愤地说他的博客文章又被平台删掉了. 我很好奇为什么,原来是他在某平台发布了一篇技术类原创文章,读者都比较喜欢.后来,他把这篇文章转发到 ...

  7. openharmony编译报错ubuntu20.04按照官方文档,hb set报错为OHOS ERROR] Invalid vendor path: /home/openharmony/vendor

    ubuntu20.04按照官方文档,hb set报错为OHOS ERROR] Invalid vendor path: /home/openharmony/vendor 作者:坚果 公众号:" ...

  8. Sklearn官方文档中文整理10——等式回归和神经网络模型(有监督)篇

    Sklearn官方文档中文整理10--等式回归和神经网络模型(有监督)篇 1. 监督学习 1.15. 等式回归[isotonic.IsotonicRegression] 1.17. 神经网络模型(有监 ...

  9. Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(下)

    Hyperledger Fabric 2.0 官方文档中文版 第6章 教程下 总目录 6.教程(下) 使用CouchDB 为什么使用CouchDB? 在Hyperledger Fabric中启用Cou ...

最新文章

  1. 超好用的自信学习:1行代码查找标签错误,3行代码学习噪声标签
  2. java不可编辑的文本框_如何使编辑文本不可编辑,但在JAVA中可点击
  3. java基础系列:集合总结(6)
  4. redhat安装wine教程_Ubuntu怎么下载应用并安装应用
  5. css鼠标移入线条延中心伸长,css动画效果:鼠标移上去底部线条从中间往两边延伸 - 子成君-分享出去,快乐加倍!-旧版已停更...
  6. 基础【循环】-----(枚举器)------(转)
  7. matlab中的神经网络训练,MATLAB中的神经网络训练
  8. STL浅析——序列式容器vector的数据结构
  9. 基于asp.net2 C#开发MapServer
  10. 微软官方大秀DX12:性能暴涨50%
  11. 不会装系统?有这篇就够了!
  12. Arduino+Avr libc制作Badusb原理及示例讲解
  13. 让电脑替你说:"I IOVE YOU"
  14. 数据库 : 事物以及隔离性导致的问题
  15. 关于C#编译器错误CS0685(VS2005)
  16. 搜索树判断 (25 分)(先序建立二叉树)
  17. 基于matlab的负反馈仿真,MATLAB的单闭环转速负反馈直流调速系统仿真
  18. sqlserver tvps java_中毒了,请高手看一下诊断报告。
  19. (待填坑)【数据结构】笛卡尔树
  20. python爬取文库,python爬取文库ppt的简单实现

热门文章

  1. Spring自动注入的几种方式
  2. 24分钟让AI跑起飞车类游戏
  3. Python基础__函数
  4. Java零基础系列003——变量
  5. 【POJ】【3164】Commond Network
  6. Week12(11月28日)
  7. 【转】Android 中的 Service 全面总结
  8. [转载] python字符串表示方法_python字符串使用方法归纳
  9. [转载] python基础:面向对象-封装
  10. [转载] python实现一个简易的计算器