> 文章列表 > Ubuntu20.4利用httpd(Apache2)源码搭建web服务器

Ubuntu20.4利用httpd(Apache2)源码搭建web服务器

Ubuntu20.4利用httpd(Apache2)源码搭建web服务器

        Apache取自“a patchy server”的读音,源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一,Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

        本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

        本文通过下载Apache2的httpd的源码,在ubuntu20.4的虚拟机计算机上搭建web服务器,基于Apache2的httpd在编译的过程中依赖于APR的开发环境(含APR、APR util和pcre2软件),其中apr-util依赖expat的软件。因此httpd的源码移植包括apr源码移植、expat源码移植、apr-util源码移植、pcre2源码移植和httpd源码移植等部分组成,并进行ubuntu20.4的httpd的web服务器的配置与测试。

(一) APR软件源码移植

1.首先在apache的官网下载APR的最新软件压缩包(V1.7.4)

http://archive.apache.org/dist/apr/

图1 下载最新的apr压缩包

 

2.拷贝apr压缩包到工作目录,并解压。

图2 拷贝解压apr最新源码压缩包

 

3.在apr的解压目录下新建编译脚本build_x86.sh。

图3 新建编译脚本

 

4.编译脚本build_x86.sh的内容如下所示:

图4 APR的编译脚本

 

5.给编译脚本添加可执行权限,并运行编译脚本进行APR的配置、编译与安装。

图5 APR进行配置、编译与安装

 

6.安装完成后,在/usr/local/apr目录生成如下文件目录。

图6 APR编译安装完成

 

(二)expat源码移植

1.Github下载expat的最新版本压缩包(V2.5.0),由于apr-util依赖expat的头文件,因此需要移植。

Release 2.5.0 · libexpat/libexpat · GitHub

图7 下载expat最新源码压缩包

 

2.拷贝expat源码压缩包到工作目录,并解压expat源码压缩包。

图8 拷贝并解压expat源码

 

3.在解压后新建编译脚本build_x86.sh,如下图所示:

图9 expat目录新建编译脚本

 

4.编译脚本build_x86.sh的内容如下所示:

图10 build_x86.sh编译脚本

 

5.给编译脚本添加可执行权限,运行编译脚本,在/usr/local/expat目录下生成安装文件如下所示:

图11 expat移植成功

 

(三)apr-util源码移植

1.在apr源码移植章节的步骤1,在官方下载apr-util的最新版本压缩包(V1.6.3)。

图12 下载apr-util V1.6.3压缩包

 

2.拷贝apr-util压缩包到工作目录,并解压。

图13 拷贝解压apr-util

 

3.在apr-util解压目录新建编译脚本build_x86.sh

图14 新建编译脚本和安装目录

 

4.编译脚本build_x86.sh的内容如下所示:

图15 apr-util编译脚本内容

 

5.给编译脚本添加可执行权限,运行编译脚本,在安装目录/usr/local/apr_util下生成文件列表如下:

图16 apr-util移植成功

 

(四)pcre2源码移植

1.github官方下载pcre2的最新源码压缩包(V10.42)。

https://github.com/PCRE2Project/pcre2/tags

图17 下载pcre2源码压缩包

2.拷贝pcre2源码压缩包到工作目录,并解压pcre2源码压缩包。

图18 pcre2源码拷贝与解压

 

3.进入pcre2解压目录,新建编译脚本build_x86.sh,如下所示

图19 新建编译脚本

 

4.运行antogen.sh脚本,生成配置文件和Makefile。

图20 运行autogen.sh脚本文件生成配置文件和Makefile

 

5.编译脚本build_x86.sh的内容如下所示:

图21 编译脚本build_x86.sh内容

 

6.给编译脚本build_x86.sh添加可执行权限,运行编译脚本,在安装目录/usr/local/pcre2生成如下目录。

图22 pcre2移植成功

 

(五)httpd源码移植

1.首先在apache的官网下载httpd的最新源码压缩包,有两个官方下载网址(其中有一个是github),具体如下图所示:

Index of /dist/httpd

图23 apache官网httpd下载

 

2.拷贝httpd的源码压缩包到工作目录,并解压,如下图所示:

图24 拷贝解压httpd

 

3.新建编译脚本build_x86.sh,如下图所示:

图25 新建编译脚本

 

4.编辑编译脚本build_x86.sh,具体如下所示:

图26 编译脚本build_x86.sh内容

 

5.给编译脚本添加可执行权限,并运行编译脚本进行httpd的编译。在安装目录/usr/local/httpd下生成移植后的文件目录,如下图所示:

图27 httpd移植成功

 

(六)基于httpd的web服务器配置与测试

1.Ubuntu首先输入ifconfig命令获得本地网口的ip地址(192.168.50.151),如下所示:

图28 本地网卡ip地址

 

2.进入httpd的安装目录的配置文件目录/usr/local/httpd/conf,打开配置文件httpd.conf(注意:sudo权限),修改监听IP地址和端口号:

图29 修改监听ip和端口号
图30 设置服务ip与端口号

3.进入httpd的安装目录/usr/local/httpd的子目录bin目录下,运行启动脚本,开启web服务。如果外部浏览器访问本web服务器,会显示httpd的安装目录/usr/local/httpd/htdocs子目录下的index.html文件。

sudo ./apachectl start         //开启httpd的web服务

sudo ./apachectl stop         //停止httpd的web服务(用于关闭web服务使用)

图31 开启web服务器

 

图32 /usr/local/httpd/htdocs下的index.html网页内容

 

4.在浏览器输入web服务器的IP地址和端口号,访问浏览器如下所示:

图33 搭建的web服务器访问成功