Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。当前Apache版本为2.4,本文主要描述基于CentOS 6.5以源码方式安装Apache httpd。

一、编译安装的优势

源码的编译安装一般由3个步骤组成:

配置(configure),通常依赖gcc编译器,binutils,glibc。配置软件特性,检查编译环境,生成 Makefile文件

编译(make)

安装(make install)

优势

自定义软件功能

优化编译参数,提高性能

解决不必要的软件间依赖

方便清理与卸载

configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –-help输出详细的选项列表。

常用的选项

--prefix

该选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,

库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share

如果配置--prefix,如: ./configure --prefix=/usr/local/test

则可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。

用了—prefix选项的另一个好处是卸载软件或移植软件。

当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;

移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

二、httpd的版本

版本:

httpd-1.3

httpd-2.0

httpd-2.2

httpd-2.4

三、httpd 2.4的新特性

1) MPM支持运行时装载

--enable-mpms-shared=all --with-mpm=prefork|worker|event

2) 支持event MPM

3) 异步读写支持

4) 支持每模块及每目录分别使用不同的日志级别

5) 支持per-request(即支持, , and 条件判断)

6) 增强版的表达式分析器;

7) 支持毫秒级keepalive timeout;

8) 基于FQDN(域名)的虚拟主机不再需要NameVirtualHost;

9) 支持用户使用自定义变量;

新增一些模块:mod_proxy_fcgi, mod_ratelimit, mod_request, mod_remoteip

修改了一些配置机制:不再支持使用order, allow, deny来实现基于IP的访问控制;

四、编译安装httpd 2.4

1、依赖关系

httpd依赖于apr, apr-util

apr全称为apache portable runtime,能实现httpd跨平台运行

httpd-2.4 依賴于1.4+及以上版本的apr

apr-1.5.0.tar.bz2

apr-util-1.5.3.tar.bz2

httpd-2.4.9.tar.bz2

pcre-devel包

openssl-devel

2、编译安装

# yum install gcc

# yum install pcre-devel

# tar xf apr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr (--prefix指定apr安装的目录)

# make

# make install

# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

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

# tar xf httpd-2.4.9.tar.bz2

以下为几个主要的配置项

--sysconfdir=/etc/httpd24 指定配置文件路径 --enable-so 启动模块动态装卸载 --enable-ssl 编译ssl模块 --enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议) --enable-rewrite 支持url重写 --Author : Leshami --with-zlib 支持数据包压缩 --Blog : http://blog.csdn.net/leshami --with-pcre 支持正则表达式 --with-apr=/usr/local/apr 指明依赖的apr所在目录 --with-apr-util=/usr/local/apr-util/ 指明依赖的apr-util所在的目录 --enable-modules=most 启用的模块 --enable-mpms-shared=all 以共享方式编译的模块 --with-mpm=prefork 指明httpd的工作方式为prefork

# cd httpd-2.4.9

# ./configure \

--with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util \ --prefix=/usr/local/apache \ --sysconfdir=/etc/httpd24 \ --enable-so \ --enable-ssl \ --enable-cgi \ --enable-rewrite \ --with-zlib \ --with-pcre \ --with-mpm=prefork \ --enable-modules=most \ --enable-mpms-shared=all

# make

# make install

五、配置http2.4启动及停止

1、修改端口号

修改端口号使得与2.2版本使用不同的端口,可以同时运行,修改后如下

# cat /etc/httpd24/httpd.conf |grep Listen |grep -v ^#

Listen 8080

2、启动与停止

# /usr/local/apache/bin/apachectl start

# netstat -nltp|grep 80

tcp 0 0 :::8080 :::* LISTEN 17365/httpd

# /usr/local/apache/bin/apachectl status

Not Found

The requested URL /server-status was not found on this server.

通过修改httpd.conf,增加如下配置

# grep server-stat /etc/httpd24/httpd.conf -A5

SetHandler server-status

# Order deny,allow

# Deny from all

Allow from 192.168.21.157 192.168.21.10

# /usr/local/apache/bin/apachectl restart

# /usr/local/apache/bin/apachectl status

Apache Server Status for localhost (via 127.0.0.1)

Server Version: Apache/2.4.9 (Unix)

Server MPM: prefork

..........

# /usr/local/apache/bin/apachectl stop

3、配置自启动文件

可以通过复制2.2版本的启动文件,修改相关路径后将2.4版作为单独服务运行,如下

注启动文件pid文件位置要配置成与/usr/local/apache/bin/apachectl -V看到的pid位置一致

查看pid位置

# /usr/local/apache/bin/apachectl -V|grep pid

-D DEFAULT_PIDLOG="logs/httpd.pid"

# cp /etc/init.d/httpd /etc/init.d/httpd24

# vi /etc/init.d/httpd24

# diff /etc/init.d/httpd /etc/init.d/httpd24

26,27c26,27

< if [ -f /etc/sysconfig/httpd ]; then

< . /etc/sysconfig/httpd

---

> if [ -f /etc/httpd24 ]; then

> . /etc/httpd24

42,46c42,46

< apachectl=/usr/sbin/apachectl

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

< prog=httpd

< pidfile=${PIDFILE-/var/run/httpd/httpd.pid}

< lockfile=${LOCKFILE-/var/lock/subsys/httpd}

---

> apachectl=/usr/local/apache/bin/apachectl

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

> prog=httpd24

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

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

# service httpd24 start

Starting httpd24: [ OK ]

# service httpd24 status

httpd (pid 15641) is running...

# netstat -nltp|grep 80

tcp 0 0 :::80 :::* LISTEN 15677/httpd ###2.2版httpd

tcp 0 0 :::8080 :::* LISTEN 15641/httpd ###2.4版httpd

可以通过复制apachectl文件生成服务脚本

# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd249

# service httpd249 start

# service httpd249 status

ELinks: Connection refused ###该方式无法查看到状态

[root@orasrv1 bin]# netstat -nltp|grep 80

tcp 0 0 :::8080 :::* LISTEN 15999/httpd

最后将配置文件添加到服务,以下为http24为例

# chkconfig --add httpd24

# chkconfig httpd24 on

六、配置man手册

vi /etc/man.config

MANPATH /usr/local/apache/man

七、验证

# echo "This is a apached 2.4.9 version">>/usr/local/apache/htdocs/index.html

# curl http://192.168.21.10:8080

It works!

This is a apached 2.4.9 version

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

Apache 的详细介绍:请点这里

Apache 的下载地址:请点这里

linux下编译httpd,Linux下编译安装Apache httpd 2.4相关推荐

  1. Linux下编译安装Apache httpd 2.4

    Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.当前Apache版本为2.4,本文主要描 ...

  2. Linux下apache和fcgi的关系,Linux下编译安装Apache httpd 2.4

    目录 一 编译安装的优势 二httpd的版本 三httpd 24的新特性 四 编译安装httpd 24 五 配置http24启动及停止 六 配置man手册 七 验证 Apache是世界使用排名第一的W ...

  3. [软件安装] Apache Httpd 安装教程

    前言 前段时间重新安装了一下Apache. 在此记录一下过程. 简略 现在Apache服务器改名为httpd. 下载地址: http://httpd.apache.org/modules/ 我们这次因 ...

  4. Linux(CentOS)安装apache(httpd),其他电脑无法访问的原因 【iptables打开某端口】

    今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.2), 然后在windows系统下访问此虚拟机的ip地址,却访问不了.   因为前段时间有知道过iptable的 ...

  5. 【Ubuntu 16】源码包安装Apache Httpd

    源码包安装适合初学者使用. 背景信息 APR (Apache Portable Runtime) Apache可移植运行的任务(APR)项目是创建和维护软件库,为底层平台的具体实现提供了一个可预见的和 ...

  6. Linux系统终止httpd服务,【转】Linux下apache/httpd服务启动与停止

    apache服务,或者说httpd服务,如何启动,如何开机启动. 转来转去,找不到原文.. 操作系统环境:红帽5,具体如下: # uname -a Linux machine1 2.6.18-164. ...

  7. Linux源码编译安装apache httpd2.4.48

    Apache httpd httpd是Apache基金会的HTTP服务器项目:HTTP Server project httpd-2.4系列本版,依赖于apr-1.4+, apr-util-1.4+ ...

  8. 【高可用HA】Apache (4) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk httpd版本: httpd-2.4.17 jk版本: tomcat-connectors-1.2.41 参考 ...

  9. Linux centos 下apache(httpd)编译安装

    1,下载apache(httpd)源码: https://httpd.apache.org/ 2,检查当前系统中是否已安装过apache,如安装过,则需要先卸载: 3,需要依赖APR,所以要先安装AP ...

最新文章

  1. linux 调用redis cli,使用redis-cli定时执行指定命令
  2. 数据库优化方法(三)
  3. volley框架下发送和读取cookie
  4. 关于maven仓库中的_remote.repositories
  5. 使用免费的云服务 AWS EC2
  6. open ai gpt_您实际上想尝试的GPT-3 AI发明鸡尾酒
  7. 全国计算机等级考试题库二级C操作题100套(第11套)
  8. java互换_两个变量交换的四种方法(Java)
  9. 【分享】iOS功能界面漂亮的弹出框
  10. mysql limti_mysql优化
  11. 认知与思考-190820
  12. CorelDRAW弄什么封面都是很简单的事呢
  13. mysql数据库工资管理系统_企业工资管理系统--数据库课程设计.doc
  14. 【Web3 系列开发教程——创建你的第一个 NFT(9)】如何在手机钱包里查看你的 NFT
  15. windows查看自己的网卡名称
  16. TOEFL wordlist 9
  17. dw实现html实时更新,DW在HTML5 响应式代码实现完成
  18. hadoop启动缺少NameNode, 缺少ResourceManager, 缺少NodeManager
  19. 五、RISC-V SoC内核——中断 代码讲解
  20. 笛卡儿积、自然连接、等值连接的区别

热门文章

  1. uni-app 微信小程序自定义radio样式
  2. 广联达2018模板算量步骤_广联达GTJ2021操作教程:造价小白3天速成,计量效率翻倍...
  3. nginx输出日志_ingressnginx持久化日志
  4. android studio 虚拟机adb.exe已停止工作的处理
  5. 如何使用_如何使用Excel播放音乐
  6. C++11标准出现后,函数指针写法汇总
  7. Invocation failed Unexpected end of file from server java.lang.RuntimeException: Invocation failed U
  8. 安卓调用系统相机三步走
  9. JDBC(二)驱动程序类型发展历程
  10. JavaScript30秒, 从入门到放弃之Array(三)