在Centos6.6下编译安装最新apache

前端之家收集整理的这篇文章主要介绍了在Centos6.6下编译安装最新apache前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

安装编译环境

安装开发工具组

yum groupinstall 'Development tools'

仅安装需要的工具

因我的虚拟机是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

cd apr-1.6.2
./configure --prefix=/usr/local/apr16 //指定安装位置
make && make install

编译apr-util

cd apr-util-1.6.0
./configure --with-apr=/usr/local/apr16/ --prefix=/usr/local/apr16-util //指定apr所在目录及apr-util安装目录
make && make install

在这里会报一个错,如下所示

xml/apr_xml.c:35:19: error: expat.h: No such file or directory  //注意这一行,提示没有expat.h这个头文件
xml/apr_xml.c:66: error: expected specifier-qualifier-list before ‘XML_Parser’
......强行省略.....
xml/apr_xml.c: In function ‘do_parse’:
xml/apr_xml.c:434: error: ‘apr_xml_parser’ has no member named ‘xp’
.....不要看我......
xml/apr_xml.c:500: error: ‘apr_xml_parser’ has no member named ‘xp_err’
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: Leaving directory `/root/apr-util-1.6.0'
make: *** [all-recursive] Error 1

expat是解析XML的程序,是不是想立马执行yum install expat-devel呢?

然而我可以告诉你,然并卵!

不管是base库中的2.0版还是epel库中的2.1版在后面编译httpd的时候都会报错!

所以,我们去expat的官网去下载最新版的expat。

cd ~
wget https://nchc.dl.sourceforge.net/project/expat/expat/2.2.3/expat-2.2.3.tar.bz2
tar -xf expat-2.2.3.tar.bz2
cd expat-2.2.3
./configure --prefix=/usr/local/expat23
make && make install

现在可以重新编译apr-util了

cd ~
cd apr-util-1.6.0
./configure --with-apr=/usr/local/apr16/ --with-expat=/usr/local/expat23/ --prefix=/usr/local/apr16-util
make clean //因执行过一次编译了,保险起见把那些编译出来的东东删掉,虽然理论上并不影响
make && make install

编译httpd

cd ~
cd httpd-2.4.27
./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --with-mpm=prefork --enable-mpms-shared=all --enable-mods-shared=most --with-apr=/usr/local/apr16 --with-apr-util=/usr/local/apr16-util/

到这一步会报错,提示我们没有装pcre,报错如下:

configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

执行yum install pcre-devel即可

./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --with-mpm=prefork --enable-mpms-shared=all --enable-mods-shared=most --with-apr=/usr/local/apr16 --with-apr-util=/usr/local/apr16-util/
make && make install

下面解释一下所用的选项:

@H_403_98@
  • --prefix=/usr/local/httpd24 :配置安装目录不用多说了吧?@H_404_100@
  • --sysconfdir=/etc/httpd24:指定配置文件存放目录,默认存放到安装目录下@H_404_100@
  • --with-mpm=prefork:默认mpm为prefork@H_404_100@
  • --enable-mpms-shared=all:将所有mpm编译为.so模块@H_404_100@
  • --enable-mods-shared=most:编译大多数模块为.so文件@H_404_100@
  • --with-apr=/usr/local/apr16:指定apr所在目录@H_404_100@
  • --with-apr-util=/usr/local/apr16-util/ : 指定apr-util所在目录@H_404_100@

    更多的./configure脚本选项请参考:http://httpd.apache.org/docs/2.4/programs/configure.html

    测试新版httpd

    首先将httpd2.4.27的bin目录加到PATH环境变量中以便执行命令~

    echo "export PATH=$PATH:/usr/local/httpd24/bin" >> /etc/profile.d/httpd.sh
    source /etc/rc.local

    简单执行下面命令开启服务并测试:

    apachectl start

    打开浏览器-->访问192.168.123.233-->看到如下图说明安装成功

    上文所指报错

    好吧,我没重现出错误情景....

    如遇到类似如下报错,可自行编译expat

    libaprutil-1.so: undefined reference to `XML_GetErrorCode'

    新增编译时没有启用的模块

    1. 进入apache源代码的modules/proxy目录
    2. 运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_proxy模块:
    apachepath/bin/apxs -c -i -a mod_proxy.c proxy_util.c
    apachepath/bin/apxs -c -i -a mod_proxy_http.c proxy_util.c
    选项说明:
    -c 执行编译操作
    -i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
    -a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
    -A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
    -e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块
    3. 重启apache。

    原文来自:http://100ye.wang/linux/centos66-make-apache-httpd.html

    本文地址:http://www.linuxprobe.com/centos66-make-apache.html

    原文链接:https://www.f2er.com/centos/375656.html
  • 猜你在找的CentOS相关文章