HTTP 之 编译安装HTTPD2.4

1 概述

目前CENTOS7默认安装是HTTPD2.4,但是CENTOS6上默认是安装HTTPD2.2,CENTOS6如果要安装HTTPD2.4,需要通过编译安装实现,一般情况下,centOS7默认是安装httpd2.4,除非要自己编译特殊的模块,否则建议见用yum进行安装httpd2.4的服务包就可以。

编译安装HTTPD2.4需要涉及APR,本文将介绍一下APR基本概念,同时介绍两种在centos6上编译HTTPD2.4方法,以及在centos7上编译安装HTTPD2.4

2  APR概念

apache的项目,apache支持跨平台,但是window和linux的系统调用机制不一样

APR就会去处理不同系统间的问题,应用开发人员面对的是APR的接口,而不是操作系统接口开发

APR针对的是apache的项目软件

.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

3 centos6上编译HTTPD2.4

方法一

环境:centos6.9 apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz   httpd-2.4.27.tar.bz2

apr的版本需要是1.4以上

#1 安装包组

yum -y groupinstall "Development tools"

yum -y install openssl-devel pcre-devel expat-devel

#2 创建账号

mkdir  /app/website

useradd -r -d  /app/website -s /sbin/nologin apache

#3 解压安装包

tar xvf apr-1.6.2.tar.gz -C /usr/local

tar xvf  apr-util-1.6.0.tar.gz   -C /usr/local

tar xvf  httpd-2.4.27.tar.bz2   -C /usr/local

#4 编译apr

cd /usr/local/apr-1.6.2

./configure --prefix=/usr/local/apr

make & make install

#5 编译apr-util

cd /usr/local/apr-util-1.6.2

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make & make install

#6 编译httpd24

cd /usr/local/httpd-2.4.27

./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

make & make install

#7 修改配置文件

vim  /app/httpd24/conf/httpd.conf

user apache

group apache

Documentroot /app/website

<directory /app/website>

#8 将编译的httpd24执行文件路径导入PATH变量

vim /etc/profile.d/httpd24.sh

PATH=/app/httpd24/bin:$PATH

#保存后执行

. /etc/profile.d/httpd24.sh

#9 拷贝其他机器的httpd脚本进行相关修改

scp 172.18.50.61:/etc/init.d/httpd /etc/init.d/httpd24

vim /etc/init.d/httpd24

apachectl=/app/httpd24/bin/apachectl

httpd=${HTTPD-/app/httpd24/bin/httpd}

pidfile=${PIDFILE-/app/httpd24/logs/httpd24.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

#保存后,执行如下的语句

chkconfig --add httpd24

chkconfig httpd24 on

service httpd24 start

#这样就可以用service 来查看启动服务,7上启动脚本是二进制,不能通过用户自己编写shell服务启动脚本实现,

#这个是6和7的区别,因为在7上执行service httpd restart的时候,会被重定向另一个语句,

# Redirecting to /bin/systemctl restart  httpd.service而执行chkconfig httpd on ,

# 会被重定向另一个语句执行,Note: Forwarding request to 'systemctl enable httpd.service'。

# 并不是通过httpd的启动脚本执行的。所以在7上如果要开机启动,编译安装的话,

# 就要在/etc/rc.d/rc.local里写入 /app/httpd24/bin/apachectl  start

#这个语句,实现开机启动。同时编译安装的http24,在7上由于没有httpd这个脚本,

#所以必须通过apachectl来控制httpd24这个服务。

#10 创建主站点文件

mkdir /app/website

echo "I am sunny in cent65E under /app/website" > /app/website/index.html

#11 测试

#启动服务

service httpd24 restart

#或者

apachectl start

#在浏览器输入该http链接,如 http://172.18.50.65/

方法2

不用独立编译apr 和apr-util,将这个包放到/usr/local/httpd-2.4.27/srclib路径下,并将服务包目录改名为apr 和apr-util,编译时关键参数是--with-included-apr,进行统一编译

即方法一中的4,5,6三步合成如下这个操作,其他步骤不变

cp -r /usr/local/apr-1.6.2 /usr/local/httpd-2.4.27/srclib/apr

cp -r /usr/local/apr-util-1.6.0 /usr/local/httpd-2.4.27/srclib/apr-util

cd  /usr/local/httpd-2.4.27/srclib/apr

./configure --prefix=/app/httpd24  --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

4 centos7源码编译httpd2.4

如果centOS7上的apr和apr-util已经是1.4版本以上,就不要在编译apr和apr-util了,如果机器上没有apr和apr-util或者版本较低,参照centOS6的方法编译安装apr和apr-util

#1 安装编译包组

yum groupinstall "development tools"

yum -y install apr-devel apr-util-devel openssl-devel pcre-devel

#2 创建账号

mkdir  /app/website

useradd -r -d  /app/website -s /sbin/nologin apache

#3 解压安装包

tar xvf apr-1.6.2.tar.gz -C /usr/local

tar xvf  apr-util-1.6.0.tar.gz   -C /usr/local

tar xvf  httpd-2.4.27.tar.bz2   -C /usr/local

#4  编译安装

cd  /usr/local/src/httpd-2.4.27/

./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre  --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

make  && make install

#5 修改配置文件

vim /app/httpd24/conf/httpd.conf

User apache

Group apache

#6 将编译的httpd24执行文件路径导入PATH变量

vim /etc/profile.d/httpd24.sh

PATH=/app/httpd24/bin:$PATH

#保存后执行  ". /etc/profile.d/httpd24.sh"

#7 vim /etc/rc.d/rc.local

/app/httpd24/bin/apachectl start

chmod +x   /etc/rc.d/rc.local

#注意,这里和centos6不一样,不能自己创建httpd文件,所以,只能通过apachectl这个工具来控制httpd

#8 测试

#启动服务

apachectl -k start

#这里和centOS6语法不同,需要加选项-k

#在浏览器输入该http链接,如 http://172.18.50.65/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容