编译安装httpd-2.4.17

一. 预备环境:

# 编译安装apache之前需要确认:apr(apache虚拟机),apr-util,apr-util-ldap的版本, 不同的版本所依赖的apr版本不同.

# 例:httpd-2.4.*需要依赖于apr-1.4.*以上的版本

# 如需下载相应的版本: http://apr.apache.org/

# 查看apr的版本

[[email protected] ~]# rpm -qa apr*

apr-1.3.9-5.el6_2.i686

apr-util-ldap-1.3.9-3.el6_0.1.i686

apr-util-1.3.9-3.el6_0.1.i686

[[email protected] ~]#

A. 安装组件

# 安装apr之前需要确认开发组件和开发库"Development tools" 和 "Development Libraries"是否已经安装.

# centos 5.X 的版本需要安装

[[email protected] software]# yum groupinstall "Development Libraries"

[[email protected] software]# yum groupinstall "Development tools"

# centos 6.X 的版本需要安装

[[email protected] software]# yum groupinstall "Server Platform Development"

[[email protected] software]# yum groupinstall "Development tools"

B. 安装apr, apr-util

# 下载apr

[[email protected] software]# wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz

[[email protected] software]# tar zxvf apr-1.5.2.tar.gz

# 如果无法解压缩, 同步一下软件时间

[[email protected] software]# hwclock -s

# 安装apr

[[email protected] apr-1.5.2]# cd apr-1.5.2

[[email protected] apr-1.5.2]# ./configure --prefix=/usr/local/apr-1.5.2

[[email protected] apr-1.5.2]# make

[[email protected] apr-1.5.2]# make install

# 下载apr-util

[[email protected] software]# wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz

[[email protected] software]# tar zxvf apr-util-1.5.4.tar.gz

[[email protected] software]# cd apr-util-1.5.4

# 需要注意指定apr的安装路径

[[email protected] apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr-1.5.2

[[email protected] apr-util-1.5.4]# make

[[email protected] apr-util-1.5.4]# make install

二. 至此环境已经安装完成, 可以安装apache(httpd)

# 下载httpd安装包(就近选择的下载地址, 搜狐镜像站点)

[[email protected] software]# wget http://mirrors.sohu.com/apache/httpd-2.4.17.tar.gz

[[email protected] software]# tar zxvf httpd-2.4.17.tar.gz

[[email protected] software]# cd httpd-2.4.17

[[email protected] httpd-2.4.17]# ./configure \

--prefix=/usr/local/apache-2.4 \

--sysconfdir=/etc/httpd \

--enable-so \

--enable-rewirte \

--enable-ssl \

--enable-cgi \

--enable-cgid \

--enable-modules=most \

--enable-mods-shared=most \

--enable-mpms-shared=all \

--with-apr=/usr/local/apr-1.5.2 \

--with-apr-util=/usr/local/apr-util \

# 常见报错一:

checking for pcre-config... false

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

# 解决办法

[[email protected] httpd-2.4.17]# yum install pcre-devel -y

# 常见报错二:

checking whether to enable mod_ssl...

configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

# 解决办法

[[email protected] httpd-2.4.17]# yum install openssl-devel -y

# 配置通过后:

[[email protected] httpd-2.4.17]# make

[[email protected] httpd-2.4.17]# make install

# 注意: httpd受selinux控制, 如果selinux为运行状态, 有可能导致httpd无法启动

# 此时为关闭状态, 如果不是关闭状态, 修改selinux配置文件 vim /etc/selinux/config 修改为: SELINUX=disabled

[[email protected] local]# getenforce

Disabled

[[email protected] local]#

# 至此apache已经安装完毕

三. 配置apache

# 启动apache

# 编译安装的启动脚本在: /usr/local/apache-2.4/bin/apachectl

[[email protected] bin]# /usr/local/apache-2.4/bin/apachectl start

# 如果报如下错误:

AH00557: httpd: apr_sockaddr_info_get() failed for caiya.localdomain

AH00558: httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1.

Set the ‘ServerName‘ directive globally to suppress this message

# 解决办法:

[[email protected] httpd]# vim /etc/httpd/httpd.conf

找到"#ServerName www.example.com:8" 去掉前面的注释

# 检测是否正常启动(当前为正常状态)

[[email protected] bin]# /usr/local/apache-2.4/bin/apachectl start

[[email protected] bin]# netstat -tnlp | grep 80

5:tcp    0    0 :::80    :::*    LISTEN    41862/httpd

[[email protected] bin]# ps -ef | grep httpd

101:root    41862  1    0 19:51 ?    00:00:00 /usr/local/apache-2.4/bin/httpd -k start

102:daemon  41863  41862  0 19:51 ?    00:00:00 /usr/local/apache-2.4/bin/httpd -k start

103:daemon  41864  41862  0 19:51 ?    00:00:00 /usr/local/apache-2.4/bin/httpd -k start

104:daemon  41865  41862  0 19:51 ?    00:00:00 /usr/local/apache-2.4/bin/httpd -k start

106:root  41952  1738  0 19:51 pts/1    00:00:00 grep -n --color httpd

[[email protected] bin]#

四. httpd-2.4.x 的访问策略

# 单条策略

require ip ipaddre

require ip hostname

require ip username

require not ip ipaddre

require not ip hostname

require not ip username

# 允许所有主机访问:

require all granted

# 拒绝所有主机访问:

require all deny

五. 制作启动脚本

# 编译安装的httpd-2.4.x的启动脚本路径在编译目录: /httpd-2.4.17/build/rpm/httpd.init 

# 当前环境的启动脚本路径在: /software/apache/httpd-2.4.17/build/rpm/httpd.init

# 复制 httpd.init 至 /etc/init.d/httpd

[[email protected] rpm]# cp /software/apache/httpd-2.4.17/build/rpm/httpd.init /etc/init.d/httpd

# 修改httpd脚本文件

[[email protected] rpm]# vim /etc/init.d/httpd

# 修改之前(每修改一项先做备份)

60 httpd=${HTTPD-/usr/sbin/httpd}

61 pidfile=${PIDFILE-/var/run/${prog}.pid}

62 lockfile=${LOCKFILE-/var/lock/subsys/${prog}}

63 RETVAL=0

64

65 # check for 1.3 configuration

66 check13 () {

67         CONFFILE=/etc/httpd/conf/httpd.conf

68         GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"

69         GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"

70         GONE="${GONE}AccessConfig|ResourceConfig)"

71         if grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then

72                 echo

73                 echo 1>&2 " Apache 1.3 configuration directives found"

74                 echo 1>&2 " please read @[email protected]/migration.html"

75                 failure "Apache 1.3 config directives test"

76                 echo

77                 exit 1

78         fi

79 }

# 修改之后(红色为修改部分)

60 # httpd=${HTTPD-/usr/sbin/httpd}

61 httpd=${HTTPD-/usr/local/apache-2.4/bin/httpd}

62 # pidfile=${PIDFILE-/var/run/${prog}.pid}

63 pidfile=${PIDFILE-/usr/local/apache-2.4/logs/httpd.pid}

64 lockfile=${LOCKFILE-/var/lock/subsys/${prog}}

65 RETVAL=0

66

67 # check for 1.3 configuration

68 check13 () {

69         # CONFFILE=/etc/httpd/conf/httpd.conf

70         CONFFILE=/etc/httpd/httpd.conf

71         GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"

72         GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"

73         GONE="${GONE}AccessConfig|ResourceConfig)"

74         if grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then

75                 echo

76                 echo 1>&2 " Apache 1.3 configuration directives found"

77                 echo 1>&2 " please read @[email protected]/migration.html"

78                 failure "Apache 1.3 config directives test"

79                 echo

80                 exit 1

81         fi

82 }

# 修改完成以后, 即可使用 service httpd {start|stop|status...}

[[email protected] /]# service httpd start

正在启动 httpd :    [确定]

[[email protected] /]# service httpd status

httpd (pid  3864) 正在运行...

[[email protected] /]# service httpd stop

停止 httpd :    [确定]

[[email protected] /]#

六. 添加自动

[[email protected] /]# chkconfig --add httpd

[[email protected] /]# chkconfig --list | grep httpd

8:httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

[[email protected] /]# chkconfig httpd on

[[email protected] /]# chkconfig --list | grep httpd

8:httpd           0:off 1:off 2:on 3:on 4:on 5:on 6:off

[[email protected] /]#

==================== 扩展部分 ====================

# httpd的模块解释

选项解释:

# 指定安装路径

# --prefix=/usr/local/apache

# 指定配置文件的路径

# --sysconfdir=/etc/httpd

# 装载核心模块,支持动态共享模块,以模块的方式加载PHP, 如果不开启, 无法使用PHP

# --enable-so

# 支持URL重写

# --enable-rewrite

# 支持ssl的功能, 否则无法使用https

# --enable-ssl

# 启动压缩机会, 将文本信息压缩后回复给客户端, 浏览器自动解压, 很常用的一种压缩机制

# --enable-deflate

# 配置PHP的时候让PHP以FastCGI的模式工作, 必须要开启此项

# --enable-proxy-fcgi

时间: 2024-10-04 08:50:54

编译安装httpd-2.4.17的相关文章

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin+cacti+nagios 一.安装环境 Linux系统:CentOS 6.5 Apache版本:http-2.4.12 MySQL版本:MySQL 5.6.24 PHP版本:PHP-5.6.8 基本的安装顺序为:先安装httpd,然后安装mysql,最后安装PHP. 软件包: [[email protected] httpdbao]# ll total 334908 -rwxrw-rw-. 1 root root

编译安装httpd 2.4 ---格式待整理

httpd 2.4 版本需要依赖于apr 1.4版本httpd 依赖于 apr,apr-util    其安装又先后顺序之分:        1.apr        2.apr-util        3.httpd [[email protected] httpd]# rpm -q httpdhttpd-2.2.15-39.el6.centos.x86_64[[email protected] httpd]# service httpd stopStopping httpd:        

编译安装HTTPD 2.4.9版本

编译安装HTTPD 2.4.9版本 ? ?服务脚本:/etc/rc.d/init.d/httpd ? ?脚本配置文件路径:/etc/sysconfig/httpd ? ?运行目录:/etc/httpd ? ?配置文件: ? ? ? ?主配置:/etc/httpd/conf/httpd.conf ? ? ? ?扩展配置:/etc/httpd/conf.d/*.conf ? ?监听的Socket: tcp的80, 443是https/tcp的监听端口 ? ?在内核中使用小于1023的端口的只有管理员

linux命令:编译安装httpd、mysql、php等LAMP环境

Httpd 2.4新特性: 1.MPM可于运行时装载: --enable-mpms-shared=all --with-mpm=event  编译安装是指定MPM运行模块为event 2.Event MPM 支持event新的多路处理模块 3.异步读写 4.在每模块及每目录上指定日志级别 5.每请求配置: <If>,<ElseIf>,<Else>; 6.增强的表达式分析器: 7.毫秒级的Keepalive Timeout; 8.基于域名的虚拟主机不再需要NameVirt

编译安装httpd 2.4

编译安装LAMP之:编译安装httpd 2.4 环境介绍: 系统环境:CentOS6.5 所需软件包:apr-1.5.2.tar.gz.apr-util-1.5.2.tar.gz.httpd-2.4.6.tar.gz 注意:httpd2.4需要依赖apr和arp-util 1.4以上版本 CentOS编译安装Apache准备:确保开发包组已安装(Development tools.Server Platform Development) yum groupinstall "Development

编译安装httpd

CentOS 6默认提供的是httpd 2.2,现尝试在CentOS 6上编译安装httpd 2.4 1.编译安装apr和apr-util httpd程序依赖于apr和apr-util.apr(Apache portable Run-time libraries,Apache可移植运行库)旨在为上层的httpd应用程序提供一个可以跨越多种操作系统平台使用的底层支持接口库,给httpd程序提供了一个虚拟机环境,由此实现了httpd的跨平台性 httpd 2.4依赖apr 1.4以上的版本,因此若a

编译安装httpd服务

首先,编译安装http,需要有它的源码包,这里提供官方下载:http://httpd.apache.org 我使用的是httpd-2.4.4.tar.bz2软件包 在进行源码编译安装之前,我们需要设定一下安装环境 1.安装开发包组: # yum groupinstall "Development tools" "Server Platform Development" "Desktop Platform Development" "Co

CentOS 6.4源码编译安装httpd并启动测试

今天来总结一下在Linux中软件安装,通常我们应该知道,安装软件有两种方法:一种是软件包的安装,也就是rpm包的安装,就是指这些软件包都是 已经编译好的二进制rpm包,我们通过rpm安装工具和yum安装工具就可以直接安装了.另一种则是源代码安装,这种软件安装就是指它只有源代码,没有经 过编译的二进制,需要通过手动去编译安装的. rpm包是别人所编译好的软件包,比如说编译好的rpm包没有某个功能,也我们又想用,那我们就得自去手动下载源代码来自行安装了,自定义去安装程序包,这个是我们要撑握的. 下面

apache编译安装 httpd 2.2 httpd 2.4

#apache编译安装#httpd 2.2 , httpd 2.4 #!/bin/sh #apache编译安装 #httpd 2.2 , httpd 2.4 #centos #rpm -e httpd* Ve=2.2 [ $1 = 2.4 ] && Ve=2.4 || Ve=2.2 #设置安装版本2.2或2.4 #目录 Ddir=/it/tools #定义下载目录 Sdir=/www/server #定义安装目录 Adir=$Sdir/apache$Ve [ ! -d $Ddir ] &a

搭建Yum服务器及编译安装Httpd

搭建yum服务器 编译安装Httpd 原文地址:http://blog.51cto.com/10461810/2106438