目录

一 编译安装的优势

二httpd的版本

三httpd 24的新特性

四 编译安装httpd 24

五 配置http24启动及停止

六 配置man手册

七 验证

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

# make && make install ###该项被漏掉,补充@20160714

# 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

---

> 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

Linux下apache和fcgi的关系,Linux下编译安装Apache httpd 2.4相关推荐

  1. centos编译apache php mysql,在CentOS6.7中编译安装 apache php mysql

    安装 开发工具 yum groupinstall "Development Tools" ------------------------------ tar -jxvf apr- ...

  2. linux apache 安装 rewrite,linux下单独编译安装Apache rewrite_module

    Redhat linux下单独编译安装Apache rewrite_module Apache已经编译安装完了,今天弄了个lifebox,装完后发现必须得用rewrite,所以就给它装了个~~ 找到a ...

  3. linux3.10.53编译,根据官方文档在Linux下编译安装Apache

    根据官方文档在Linux下编译安装Apache 前言 永远记住官方文档才是最准确的安装手册,这篇文章仅为对官方文档的解读和补充,学习提升务必阅读官方文档: http://httpd.apache.or ...

  4. 用Linux虚拟机手工编译安装Apache

    用Linux虚拟机手工编译安装Apache Apache网站服务器:作为LAMP架构的前端,是一款功能强大.稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页.图片等文件内容. 实 ...

  5. linux源码编译安装apache( httpd-2.4.53)处理服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)

    linux源码编译安装apache 首先我们需要下载相关的依赖包 apr.apr-util.pcre 下载地址 http://archive.apache.org/dist/apr/apr-1.7.0 ...

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

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

  7. linux14.04 Apache,Ubuntu 14.04编译安装Apache

    Ubuntu下编译安装apache需要预先编译安装多个依赖件,包括:apr, apr-util,pcre,zlib-devel,等,相当麻烦,记录于此备查. 由于Ubuntu系统默认安装时没有安装C+ ...

  8. centos php编译安装mysql_CentOS手动编译安装Apache、PHP、MySQL

    64位CentOS 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...

  9. CENTOS编译安装APACHE 2.4.6笔记

    之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧. ...

最新文章

  1. 学用 TStringGrid [7] - ColWidths[0]、RowHeights[0]、GridLineWidth
  2. mcp2515 芯片驱动总线错误BUG的解决方法(主要无法进入中断bug)
  3. Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。
  4. Python 得到主机字节序
  5. Windows10安装Ubuntu子系统+docker教程说明
  6. centos6.5装mysql好难_centos 6.5装mysql5.7
  7. Node.js的完全卸载与下载安装及各种npm、nvm、nrm配置(保姆式教程---提供全套安装包)---node.js的安装与配置(0)
  8. python urllib3 post ssl,python post https报错解决方案
  9. oracle内连接时列的值是null,Oracle SQL - 比较空值时的JOIN性能
  10. 对比Linux系统和Windows系统哪个更好
  11. 2021-03-08
  12. mysql日期为00_MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决
  13. 1核2G3M,系统盘40G,流量500G/月,83一年
  14. 2021年新高考八省联考成绩查询江苏省,江苏2021八省联考分数线、位次汇总-附江苏新高考改革方案解读...
  15. 论微服务架构设计与应用
  16. 再看《蜂蜜与四叶草》
  17. 【Unity3D】 物体始终朝向目标物体的实现
  18. java编译字节码转化程序下载_编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )...
  19. C++读书笔记:C++数据类型
  20. 字符和字节的区别与分析

热门文章

  1. 完了!Windows弱爆了!Linux才是程序员的首选!程序员:好用!
  2. Linux 超全实用指令大全 | CSDN 博文精选
  3. 停就删稿!这个“可怕”的 GitHub 开源项目值得一试
  4. 程序媛报告:调查了 12,000 名女性开发者发现,女性比男性更懂 Java!
  5. 叫板苹果谷歌,微软将开发者应用分成上调至 95%
  6. 36 小时,程序员可以开发出什么?
  7. 身为程序员的唐僧说:只要我不死,就能取到真经!
  8. Kotlin 一统天下?Kotlin/Native 开始支持 iOS 和 Web 开发
  9. mysql通配符like,不吃透都对不起自己
  10. keepalived原理和安装