阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS6上编译安装httpd2.4 详解

100次阅读
没有评论

共计 3626 个字符,预计需要花费 10 分钟才能阅读完成。

httpd 与 apr

APR(Apache portable Run-time libraries,Apache 可移植运行库) 主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的 Apache 版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。
随着 Apache 的进一步开发,Apache 组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR 的开发就从 Apache 中独立出来,Apache 仅仅是使用 APR 而已。目前 APR 主要还是由 Apache 使用,由于 APR 的较好的移植性,因此一些需要进行移植的 C 程序也开始使用 APR,开源项目比如用于服务器压力测试的 Flood loader tester,该项目不仅仅适用于 Apache,详情可查看这个连接 http://httpd.apache.org/test/flood。

CentOS6 上编译安装 httpd2.4 详解

如果对 APR 起到了什么作用还是不清楚的话,可以根据上面的图来理解。其实 APR 就是解决了应用与系统调用之间的衔接问题,避免了 Linux 开发一套应用程序,windows 开发一套程序。现在,有 APR,并开放了统一的接口,只要应用满足这个接口标准就可以了,至于如何去进行系统调用,则是由 APR 来实现。

根据我们上面的示意图,我们看出,httpd 2.2 的运行,是运行在 apr 1.3.9 的基础之上的。而 httd 2.4 则是运行在 apr 1.4+ 之上的。而 CentOS 6 默认的版本是 apr-1.3.9,apr-util-1.3.9,所以我们在使用 yum 安装 httpd 的时候,一般都是 httpd 2.2 的版本。但是,如果因为实际生产,我们需要在 CentOS 6 平台上安装 httpd 2.4 版本的话,应该如何做呢?其实也很简单,我们将 apr 也重新编译安装一下,就可以解决这个问题。

下载解压

首先使用 rpm -qi httpd  查看一下我们的系统中是否已经安装了 httpd 应用程序,以及 apr 相关程序,如果已经安装过的话,最好将其删除掉。

到 Apache 官方网站上下载最新版的 httpd 2.4 程序,以及 apr 和 apr-util 最新版源码包。将源码包进行解压。

[root@localhost src]# pwd
/usr/local/src

[root@localhost src]# ls
apr-1.6.2  apr-1.6.2.tar.gz  apr-util-1.6.0  apr-util-1.6.0.tar.gz  httpd-2.4.27  httpd-2.4.27.tar.bz2

安装开发包组和相关依赖包

在开始编译安装之前,需要先安装相关的开发包组以及其他的一些依赖包,这些包有下面的这些。

# 安装开发包组
[root@localhost src]# yum groupinstall "Development tools"

# 安装相应的 devel 包
[root@localhost src]# yum install openssl-devel pcre-devel expat-devel

当然,如果一开始不知道缺少哪些包的话,可以先进行编译安装,然后根据错误提示再将缺少的包安装上,这样也是可以的。

编译 apr 以及 apr-util

因为 httpd 是依赖与 apr 的,所以应该先编译 apr 以及 apr-util,然后再安装 httpd。
我们的源码文件存放的路径是/usr/local/src, 我们编译安装的路径是 /app/apr,/app/apr-util,/app/httpd24.

# 编译 apr 
[root@localhost apr-1.6.2]# ./configure --prefix=/app/apr  

# 安装 apr 
[root@localhost apr-1.6.2]# make -j 2 && make install   

# 编译 apr-util
[root@localhost apr-util-1.6.0]# ./configure --prefix=/app/apr-util --with-apr=/app/apr/    

#安装 apr-util  
[root@localhost apr-util-1.6.0]# make -j 2 && make install

创建 apache 默认账号

首先给 httpd 创建默认的系统用户。

# /app/website 表示网站的默认路径,如果不指定的话,默认是 /var/www/html
# 采用 yum 安装的方式,指定的路径就是默认路径
[root@localhost ~]# useradd -r -d  /app/website -s /sbin/nologin apache

编译安装 httpd

编译安装 httpd,可以自己指定需要开启的功能列表,然后指定程序安装的路径,我们这里指定的安装路径还是 /app/httpd24

# --prefix  指定程序需要安装的路径
# --enable  指定启用的模块  
# --with-apr 指定 apr 的路径    
# --with-apr-util  指定 apr-util 的路径
[root@localhost httpd-2.4.27]# ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/app/apr/ --with-apr-util=/app/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

# 安装 httpd  
[root@localhost httpd-2.4.27]# make -j 2 && make install

编辑 /app/httpd24/conf/httpd.conf 修改默认用户,以及主页目录

对 httpd 的配置文件进行修改,根据我们自己创建的用户,以及自己指定的网站目录,对配置文件进行相应的修改。

CentOS6 上编译安装 httpd2.4 详解

CentOS6 上编译安装 httpd2.4 详解

将应用程序添加到环境变量中

# 添加环境变量  
[root@localhost httpd-2.4.27]# echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/http24.sh   

#使环境变量生效  
[root@localhost httpd-2.4.27]# . /etc/profile.d/http24.sh

编写服务的启用脚本

CentOS 6 中,服务器的启动脚本存放于/etc/init.d/httpd。当然我们自己编写服务的启动脚本有些困难,我们可以参考以前安装过的服务脚本略加修改。

将这个文件/etc/init.d/httpd 改名为/etc/init.d/httpd24,然后修改如下内容

CentOS6 上编译安装 httpd2.4 详解

将服务添加到开机启动,并开启服务

# 将服务添加到服务列表 
[root@localhost init.d]# chkconfig --add httpd24

# 将服务设置为开机启动  
[root@localhost init.d]# chkconfig httpd24 on  


# 启动服务   
[root@localhost init.d]# service httpd24 start

在启动服务的过程中有可能会提示以下错误,这是提示没有创建网站的根目录。所以我们去创建一下。

[root@localhost init.d]# service httpd24 start
Starting httpd: AH00526: Syntax error on line 225 of /app/httpd24/conf/httpd.conf:
DocumentRoot '/app/website' is not a directory, or is not readable                                                           
                                                        [FAILED]

创建网站主页,并进行测试

# 创建网站的根目录  
[root@localhost init.d]# mkdir /app/website 

# 建立网站主页,用于测试路径    
[root@localhost init.d]# echo /app/website/index.html > /app/website/index.html

经过上述步骤,基本上就能够在 CentOS 6 上成功的安装和运行 HTTP 2.4 了,如果还有什么疑问,可以留言一起套路。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147350.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3626字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中