Apache服务简介及编译安装详解

Apache服务简介及编译安装详解

一、Apache简介

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是目前世界上使用最广泛的一种web server,它以跨平台,高效和稳定而闻名,可以运行在几乎所有广泛使用的计算机平台上。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

Apache是用C语言开发的基于模块化设计的web应用,总体上看起来代码的可读性高于php代码,它的核心代码并不多,大多数的功能都被分割到各种模块中,各个模块在系统启动时按需载入。

支持SSL技术,支持多个虚拟主机。Apache是以进程的Prefork模式(还有基于线程的Worker模式)为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。

二、Apache 的特性

Apacheweb服务器软件拥有以下特性:

1.支持最新的HTTP/1.1通信协议

2.拥有简单而强有力的基于文件的配置过程

3.支持通用网关接口

4.支持基于IP和基于域名的虚拟主机

5.支持多种方式的HTTP认证

6.集成Perl处理模块

7.集成代理服务器模块

8.支持实时监视服务器状态和定制服务器日志

9.支持服务器端包含指令(SSI)

10.支持安全Socket层(SSL)

11.提供用户会话过程的跟踪

12.支持FastCGI

13.通过第三方模块可以支持JavaServlets

三、编译安装Apache步骤及参数详解

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

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

编译(make)

安装(make install)

apr和apr-utils下载地址:http://apr.apache.org/download.cgi

PCRE下载地址:http://sourceforge.net/projects/pcre/files/pcre/8.32/

[[email protected] ~]#yum -y install gcc

[[email protected] ~] wget  http://archive.apache.org/dist/httpd/httpd-2.4.7.tar.gz

[[email protected] ~]tar xf httpd-2.4. 7.tar.gz

[[email protected] ~]# cd httpd-2.4.7

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

> --prefix=/usr/local/apache \       指定安装目录

> --with-apr=/usr/local/apr \   指定依赖文件的安装目录

> --with-apr-util=/usr/local/apr-util \ 指定依赖文件的安装目录

> --enable-deflate \               压缩文本文件提高速度节约带宽

> --enable-expires \               让浏览器缓存,减轻服务器压力,提高访问速度

> --enable-headers \              激活http头

> --enable-modules=most \         激活大多数模块

> --enable-so \                  让apache核心装载DSO,但是不实际编译任何动态模块;

> --with-mpm=worker \            让Apache工作在worker模式下

> --enable-rewrite                 激活伪静态功能

checking for chosen layout... Apache

checking for working mkdir -p... yes

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking target system type... x86_64-unknown-linux-gnu

configure:

configure: Configuring Apache Portable Runtime library...

configure:

checking for APR... no

configure: error: APR not found.  Please read the documentation. 这里出现报错

[[email protected] ~]# tar xf apr-1.4.6.tar.gz    解压并安装依赖包

[[email protected] ~]#cd /apr-1.4.6

[[email protected] apr-1.4.6]# ./configure

[[email protected] apr-1.4.6]# make && make install

[[email protected] apr-1.4.6]# cd ..

[[email protected] ~]# tar xf apr-util-1.4.1     解压并安装工具组件依赖包

[[email protected] ~]# cd apr-util-1.4.1

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

[[email protected] apr-util-1.4.1]# make && make install

[[email protected] ~]# tar xf pcre-8.34.tar.gz   解压并安装这个正则表达式函数库依赖包

[[email protected] ~]# cd pcre-8.34

[[email protected] pcre-8.34]# ./configure

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

………………………………………………………省略若干

checking for dirent.h... yes

checking windows.h usability... no

checking windows.h presence... no

checking for windows.h... no

configure: error: You need a C++ compiler for C++ support.   这里报错需要安装gcc-c++软件

[[email protected] pcre-8.34]# yum -y install gcc-c++

[[email protected] pcre-8.34]# ./configure

[[email protected] pcre-8.34]# make && make install

……………………………………………………………….省略若干

ln -sf pcre_version.3            /usr/local/share/man/man3/pcre32_version.3

make[3]: Leaving directory `/root/pcre-8.34'

make[2]: Leaving directory `/root/pcre-8.34'

make[1]: Leaving directory `/root/pcre-8.34'  出现这些证明编译安装完成

[[email protected] ~]# tar xf zlib-1.2.3.tar.gz    安装依赖的库文件或者yum安装zlib zlib-devel

[[email protected] ~]# cd zlib-1.2.3

[[email protected] zlib-1.2.3]# ./configure

Checking for gcc...

Building static library libz.a version 1.2.3 with gcc.

Checking for unistd.h... Yes.

Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()

Checking for vsnprintf() in stdio.h... Yes.

Checking for return value of vsnprintf()... Yes.

Checking for errno.h... Yes.

Checking for mmap support... Yes.

[[email protected] zlib-1.2.3]# vim Makefile

把第21行左右的CFLAGS=-O3 -DUSE_MMAP修改成CFLAGS=-O3 -DUSE_MMAP -fPIC

或使用sed -i ‘s/CFLAGS=-O3 -DUSE_MMAP/CFLAGS=-O3 -DUSE_MMAP -fPIC/g’ Makefile

注意:上面这个如果不修改安装httpd软件时就会报以下错误:

collect2: ld returned 1 exit status

make[4]: *** [mod_deflate.la] 错误 1

make[4]: Leaving directory `/root/httpd/httpd-2.4.7/modules/filters'

make[3]: *** [shared-build-recursive] 错误 1

make[3]: Leaving directory `/root/httpd/httpd-2.4.7/modules/filters'

make[2]: *** [shared-build-recursive] 错误 1

make[2]: Leaving directory `/root/httpd/httpd-2.4.7/modules'

make[1]: *** [shared-build-recursive] 错误 1

make[1]: Leaving directory `/root/httpd/httpd-2.4.7'

make: *** [all-recursive] 错误 1

[[email protected] zlib-1.2.3]# make && make install

[[email protected] zlib-1.2.3]# cd ..

[[email protected] ~]# cd httpd-2.4.7

[[email protected] httpd-2.4.7]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so  --with-mpm=worker --enable-rewrite

[[email protected] httpd-2.4.7]#make && make install

[[email protected] httpd-2.4.7]# /usr/local/apache2/bin/apachectl start   启动Apache

到这里Apache就已经安装完成了。

[[email protected] httpd-2.4.7]# /usr/local/apache2/bin/apachectl -l  可以查看安装的模块

[[email protected] httpd-2.4.7]# /usr/local/apache2/bin/apachectl -t  检查配置文件语法是否有误

四、创建httpd启动脚本并设置开机自启

1、复制Apache的启动文件到/etc/init.d下面并改名

[[email protected] ~]# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

2、修改复制的启动文件

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

#!/bin/bash    这行下面增加两行文字

# chkconfig: 35 70 30

#35指的是在3和5级别开启该服务   70:指的是开机启动服务在70位,30指的是关机关闭服务在30位,一般启动服务的顺序和关闭顺序的和100。

# description: Apache   描述信息,这里的#不再试注释符

3、设置开机自启动

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

[[email protected] ~]# chmod +x /etc/init.d/httpd

[[email protected] ~]# chkconfig httpd on

[[email protected] ~]# systemctl restart httpd

原文地址:http://blog.51cto.com/longlei/2090981

时间: 2024-10-24 19:14:37

Apache服务简介及编译安装详解的相关文章

Nginx服务简介及编译安装详解

一.Nginx简介 Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反向代理服务器,其性能与IMAP/POP3代理服务器相当.Nginx以其高性能.稳定.功能丰富.配置简单及占用系统资源少而著称.Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多 二.Nginx工作原理 Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),loc

CentOS程序包管理器rpm、yum以及程序包编译安装详解

一.程序包管理器RPM和Yum简介 程序包管理器:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,可以更方便地实现程序包的安装.升级.卸载和查询等管理操作. rpm软件包管理器(RPM Package Manager):rpm包存在依赖关系,依赖关系复杂,安装时间很长,虽然可以忽略依赖关系,但是可能会导致程序包安装后无法正常使用. yum程序包管理器( Yellow dog Updater, Modified):yum是基于RPM包管理,自动解决程序包间的依赖关系.根据配置文件的资源地

redis服务简介 && redis.conf配置文件详解

#一.redis服务简介 redis是一个key-value存储系统. 和Memcached类似,它支持存储的value类型相对更多(memcached不支持value类型,只支持key),包括string(字符串).list(链表).set(集合)和zset(有序集 合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis 支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中

Apache服务【手工编译安装】

简介: Apache HTTP Server 是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在web服务器领域中长期保持着超过半数的份额.Apache服务器可以运行在Linux .Unix.Windows等多种平台. Apache的主要特点: 1.开放源代码 2.跨平台服务 3.支持各种网页编程语言 4.模块化设计 5.运行非常稳定 6.良好的安全性 环境:RHEL6.2. 一.Apache服务总览: 1.端口:80(http) https(443) 2.主配置文件(/e

MySQL5.6二进制软件包编译安装详解(三)

一.软件环境 [[email protected] ~]# uname -r 3.10.0-862.el7.x86_64 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 二.安装部署过程详解 MySQL安装3种方式:1>rpm包安装应用文件默认安装在/usr/local 目录下2>源码编译需要定制文件路径和参数3> 二进制免编译方式优点是可以指定文件安装路径,不存在依赖

Linux程序管理之rpm,yum,编译安装详解

操作系统:CentOS 6.7 内核版本:2.6.32-573.el6.x86_64 程序编译概念 程序要在机器上运行,就需要编译,编译针对特定的OS平台和硬件平台,编译后的程序只能运行在特定的软硬平台上  交叉编译:        在测试机上针对其他平台进行程序编译 编译过程:        预编译 -> 编译 -> 汇编 -> 链接            链接:生成库调用的头文件            静态链接:程序文件本身集成所需调用的库文件            动态链接:调用标

MySql5.5.37编译安装详解

      今天为大家介绍下mysql5.5.37的编译安装方式,在工作中编译安装也是我们常用的一种方式.希望通过这篇文章的介绍,能够给大家提供一个安装思路! 一.创建mysql的安装目录和用户 mkdir -p /usr/local/mysql  #安装mysql mkdir -p /usr/local/mysql/data   #存放数据库 groupadd mysql useradd -r -g mysql mysql 二.yum安装依赖库 yum install gcc-c++ ncur

centOS linux 下nginx编译安装详解

Nginx的官方网站是 www.nginx.org Nginx的下载地址是:http://nginx.org/en/download.html 由 于官网的设计非常简洁不大气不上档次,所以我们可以很容易的找到我们需要的内容.打开页面发现有三个版本,分别是Mainline version(开发版).Stable version(稳定版).Legact version(历史稳定版).在这里我们下载最新的稳定版本nginx-1.6.2. 在安装Nginx之前,我们要确保系统已经安装了gcc,opens

编译安装详解

1. 编译安装概述 前面两篇关于程序包管理器的文章谈到,无论是使用rpm命令还是yum命令安装的都是已编译好的程序包,在整个安装过程中用户只需执行一条命令即可完成安装.这样带来的好处是方便,但因为是安装的是已编译好的包,所以用户的系统平台环境必须与rpm包制作者的系统平台环境相同.此外,如果用户要安装使用某程序上的某个功能,而rpm包制作者在编译过程中默认没有指定该功能的实现,这时候该怎么办呢?更何况如果某程序只是提供源码而没有现成的rpm包.这时就需要用户手动编译安装了,而编译安装就是将程序源