Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
安装编译环境
安装开发工具组
yum groupinstall <span style="color: #d69d85;line-height: 26px">'Development tools'</span>
仅安装需要的工具
因我的虚拟机是mini安装,配置aliyun的yum源家里小水管下载慢,就只装个gcc好了。
yum install gcc
下载源码包
下载最新版httpd
下载地址:http://httpd.apache.org/download.cgi#apache24
写此篇文章时最新版本为:httpd-2.4.27
如果默认镜像下载太慢的话,可以在红框内选择其他国内镜像。
执行如下命令将源码包下载至Linux中并解压
wget https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.27.tar.gz
tar -xf httpd-2.4.27.tar.gz
下载apr及apr-util
apr是Apache Portable Runtime的缩写,中文译为Apache可移植运行环境,是httpd所必须的,apr-util同理。
apr及apr-util下载地址:http://apr.apache.org/download.cgi
执行如下命令:
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.2.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.0.tar.gz
tar -xf apr-1.6.2.tar.gz
tar -xf apr-util-1.6.0.tar.gz
着手编译
首先编译apr
<span style="color: #4ec9b0;line-height: 26px">cd</span> apr-1.6.2
./configure --prefix=/usr/<span style="color: #4ec9b0;line-height: 26px">local</span>/apr16 //指定安装位置
make && make install
编译apr-util
在这里会报一个错,如下所示
expat是解析XML的程序,是不是想立马执行yum install expat-devel呢?
然而我可以告诉你,然并卵!
不管是base库中的2.0版还是epel库中的2.1版在后面编译httpd的时候都会报错!
所以,我们去expat的官网去下载最新版的expat。
现在可以重新编译apr-util了
编译httpd
到这一步会报错,提示我们没有装pcre,报错如下:
configure: error: pcre-config <span style="color: #569cd6;line-height: 26px">for</span> libpcre not found. PCRE is required and available from http://pcre.org/
执行yum install pcre-devel即可
下面解释一下所用的选项:
–prefix=/usr/local/httpd24 :配置安装目录不用多说了吧?
–sysconfdir=/etc/httpd24:指定配置文件存放目录,默认存放到安装目录下
–with-mpm=prefork:默认mpm为prefork
–enable-mpms-shared=all:将所有mpm编译为.so模块
–enable-mods-shared=most:编译大多数模块为.so文件
–with-apr=/usr/local/apr16:指定apr所在目录
–with-apr-util=/usr/local/apr16-util/ : 指定apr-util所在目录
更多的./configure脚本选项请参考:http://httpd.apache.org/docs/2.4/programs/configure.html
测试新版httpd
首先将httpd2.4.27的bin目录加到PATH环境变量中以便执行命令~
<span style="color: #4ec9b0;line-height: 26px">echo</span> <span style="color: #d69d85;line-height: 26px">"export PATH=<span style="color: #bd63c5;line-height: 26px">$PATH</span>:/usr/local/httpd24/bin"</span> >> /etc/profile.d/httpd.sh
<span style="color: #4ec9b0;line-height: 26px">source</span> /etc/rc.local
简单执行下面命令开启服务并测试:
apachectl start
打开浏览器–>访问192.168.123.233–>看到如下图说明安装成功
上文所指报错
好吧,我没重现出错误情景….
如遇到类似如下报错,可自行编译expat
libaprutil-1.so: undefined reference to `XML_GetErrorCode<span style="color: #d69d85;line-height: 26px">' </span>
新增编译时没有启用的模块