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服务器的配置与测试。
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编译安装完成
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移植成功
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移植成功
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移植成功
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服务器访问成功