Apache服务器基础教程-01从源码安装Apache

一、准备:

  1. Ubuntu 16.04 Server 纯净系统
  2. Apache httpd-2.4.39 源码

Apache httpd-2.4.39的下载地址:http://httpd.apache.org/download.cgi
我在写此文档的时候这是最新版本,文档时间:2019.04.21。你可以下载.tar.bz2压缩包,也可以.tar.gz压缩包。文档教程中使用的是httpd-2.4.39.tar.gz

一、简单描述

  1. Apache是一个大名鼎鼎的服务器软件,废话不多说。从软件库中快速安装:
    (1)在Fedora/CentOS/Red Hat上安装Apache与运行Apache
sudo yum install httpd
sudo systemctl enable httpd
sudo systemctl start httpd

(2)在Ubuntu/Debian上安装并运行Apache

sudo apt install apache2
sudo service apache2 start
  1. 上面内容我不再多做讲解,今天我们使用从源代码安装的方式来安装Apache。
    (1)软件库不是可以直接安装吗?为什么要从源代码安装?
    答:观看我教程的同学大多是初学者,使用从源码安装的方式,让他们进一步了解底层的一些知识,如果你喜欢从库安装,就随意。
    (2)安装步骤:源代码安装当然要麻烦,但是对初学者来说,解决难题的过程是快乐的。

a. 安装程序编译环境

C/C++源代码需要通过编译生成可执行文件,才可以正常运行。而Apache服务器软件就是使用C/C++开发的,所以我们先需要先编译,所以编译环境必须有,你懂的。

b. 配置编译参数

Apache源码目录下的configure可执行文件,就是用来配置安装Apache的参数的。通过参数配置,我们可以自定义一些Apache服务器的一些功能,在配置参数的过程中,Apache会检查你系统缺失的必备程序组件,如果Linux系统缺失相应组件,则配置过程会报错,需要手动解决。解决过程无非就是把缺失的内容安装上。
c. 编译与安装

做好以上准备,就可以编译、安装了。废话少说,开始吧。

二、安装准备

对于安装Apache需要依赖的环境,可以直接在Fedora/CentOS/Red Hat上使用yum工具来安装依赖程序包,在Ubuntu/Debian上使用apt工具来安装依赖程序包。

当然了,你的Linux系统需要50M以上的临时空间、你的Linux系统能连接网络,同时你的系统时间正确,具体的这里不再介绍。

根据官方文档,从httpd-2.4.39源码安装,确保你系统包含以下环境。没有的话,请使用以下提示命令进行安装。

  1. APR and APR-Util
    确保您的系统上已安装APR和APR-Util,在某些系统上需要安装相应的-dev包。

    sudo apt install -y libaprutil1-dev
    
  2. PCRE

    sudo apt install -y libpcre3-dev
    
  3. C编译器和构建系统
    这里我们需要把gcc和cmake都安装上

    sudo apt install -y gcc cmake
    
  4. **Perl 5 **

    sudo apt install -y perl
    
  5. openssl
    这个程序不是官方补强制安装的。在此教程之后我会写一个安装ssl证书的教程,所以我们再此安装Apache服务器之前我们先安装上openssl。

sudo apt install -y openssl

三、安装过程

以下操作都在root用户模式下进行,“#”后为注释内容。

  1. 配置编译参数
    “#”号后面为注释内容
tar -zxvf httpd-2.4.39.tar.gz #解压源码包
cd httpd-2.4.39 #进入源码目录
ls #查看源码目录

你可以看到以下文件,如图所示:
Apache服务器基础教程-01从源码安装Apache_服务器

  1. 配置
./configure --prefix=/usr/local/apache2  --enable-modules=all --enable-mods-shared=all --enable-so

参数说明:
(1)–prefix:指定安装目录,如果不指定的话,默认就是/usr/local/apache2;

(2)–enable-modules=all:加载所有模块;

(3)–enable-mods-shared=all:所有模块使用动态编译的方式进行编译。如果不加此参数,默认为静态编译,静态是直接编译进httpd中, 动态编译会提供一个module.so 文件,需要在httpd.conf配置文件中使用时用 loadmodule 这个语法来加载;

(4)–enable-so:其实使用动态编译方式时该模块会自动生效,这里加不加都没关系,只是写出了让你了解一下。

本次安装我们使用以上列出的参数配置,就可以在很多需求场景使用了,不过你实际的项目上可能会做修改。具体参数说明你可以使用./configure -help查看。

配置结束参数之后,会看到如下图信息:
Apache服务器基础教程-01从源码安装Apache_Linux_02

此时,源码目录下面多出一个Makefile文件,但是,如果你的环境和我演示的不一样,执行上面过程你可能不会顺利通过,那么就需要你解决相应的错误了。有问题,可以来到https://jkdev.cn提问,我会抽时间回复。

2.编译与安装

make #编译
make install #安装

如果没有任何错误,那就是安装成功了,此时,/usr/local/目录下多出了apache2目录,也就是我们安装apache的目录,如图所示:
Apache服务器基础教程-01从源码安装Apache_Apache_03

此时,执行以下命令对apache服务器进行相应操作

/usr/local/apache2/bin/apachectl start  #开启服务器
/usr/local/apache2/bin/apachectl stop  #关闭服务器
/usr/local/apache2/bin/apachectl restart  #重启服务器

此时,打开网络浏览器,输入服务器的公网IP地址,看到浏览器“It Works”字样,那么恭喜你,安装成功了。

此次教程到这里,后续下一节。