设为首页 收藏本站
查看: 1070|回复: 0

[经验分享] 在CentOS6上编译安装http2.4

[复制链接]

尚未签到

发表于 2018-4-21 08:07:27 | 显示全部楼层 |阅读模式
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。
DSC0000.jpg
如果对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的时候,一般都是httd 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的配置文件进行修改,根据我们自己创建的用户,以及自己指定的网站目录,对配置文件进行相应的修改。
DSC0001.png
DSC0002.png
将应用程序添加到环境变量中
# 添加环境变量  
[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,然后修改如下内容
DSC0003.png
将服务添加到开机启动,并开启服务
# 将服务添加到服务列表
[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.pojun.tech/ 欢迎访问

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449815-1-1.html 上篇帖子: 网站 学习资源站 Centos linux 下篇帖子: centos 6.8模板机制作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表