目录:
Apache简介
安装Apache HTTP Server软件
配置文件解析
应用案例
Apache简介
Apache HTTP Server项目是在Windows与Unix等平台上都可以运行的跨平台开源HTTP服务器软件,该项目的目标是提供安全、高效、可扩展的HTTP服务。Apache httpd自从1996年发布以来,如今已经成为世界排名第一的Web服务器软件。Apache httpd最新的稳定版本为2.4.4。安装Apache httpd软件可以选择源码安装或二进制包安装,但由于源码安装是可以定制的一种安装方式,这种安装方式灵活性比较大,可以满足企业对这种环境的不同需求。二进制包安装在CentOS 6.3系统中可以选择RPM包安装,这种安装的最大好处就是简单快捷。本书采用的是源码安装软件包,由于源码安装需要大量的依赖包,需要先安装这些依赖软件包。
Apache HTTP Sever非常重要的特性是她采用了模块化设计模型,Apache模块分为静态模块与动态模块,静态模块是Apache最基本的模块,是无法随时添加与卸载的模块,静态模块在编译软件时设定。动态模块是可以随时添加删除的模块,这样的设计使得企业部署Apache时可以获得最大的灵活性,每个企业都可以根据自己的平台以及实际需求,安装使用不同的模块功能。Apache模块将被编译为动态共享对象DSOs),这些动态共享对象独立于httpd程序,DSO模块可以在编译Apache是添加,也可以后期随时通过Apache Extension Toolapxs)工具编译添加模块。Apache HTTP Server软件安装完成后可以使用httpd –M查看模块加载清单。
安装Apache软件
1. 下载软件包
- [root@centos6 ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.4.tar.gz
- [root@centos6 ~]# wget http://mirror.bjtu.edu.cn/apache/apr/apr-1.4.6.tar.gz
- [root@centos6 ~]# wget http://mirror.bjtu.edu.cn/apache/apr/apr-util-1.5.2.tar.gz
2. 安装软件
- [root@centos6 ~]# yum –y install gcc autoconf automake make \
- > pcre pcre-devel openssl openssl-devel
- [root@centos6 ~]# tar –xzf httpd-2.4.4.tar.gz –C /usr/src/
- [root@centos6 ~]# tar –xzf apr-1.4.6.tar.gz –C /usr/src/
- [root@centos6 ~]# tar –xzf apr-util-1.5.2.tar.gz –C /usr/src/
- [root@centos6 ~]# cd /usr/src/apr-1.4.6/
- [root@centos6 apr-1.4.6]# ./configure --with-apr=/usr/local/apr/
- [root@centos6 apr-1.4.6]# make && make install
- [root@centos6 apr-1.4.6]# cd /usr/src/apr-util-1.5.2/
- [root@centos6 apr-util-1.5.2]# ./configure --with-apr=/usr/local/apr/
- [root@centos6 apr-util-1.5.2]# make && make install
- [root@centos6 apr-util-1.5.2]# cd /usr/src/httpd-2.4.4/
- [root@centos6 httpd-2.4.4]# ./configure –prefix=/usr/local/apache2 –enable-so \
- > --enable-ssl --enable-rewrite –with-mpm=worker –with-suexec-bin \
- > --with-apr=/usr/local/apr/
- [root@centos6 httpd-2.4.4]# make && make install
configure脚本用来检查系统环境、查找依赖文件、设置安装路径等操作,configure拥有很多参数,读者可以通过./configure --help查看该脚本支持的所有参数。
下面是configure常用参数说明:
参数 描述
--prefix 指定Apache httpd程序的安装主目录
--enable-so 开启模块化功能,支持DSO动态共享对象)
--enable-ssl 支持SSL加密
--enable-rewrite 支持地址重写
--with-mpm 设置Apache httpd工作模式
--with-suexec-bin 支持SUID、SGID
--with-apr 指定apr程序绝对路径
3. 启动服务
- [root@centos6 ~]# /usr/local/apache2/bin/apachectl start
- [root@centos6 ~]# netstat -ntulp |grep http
- [root@centos6 ~]# iptables -I INPUT -p tcp -dport 80 -j ACCEPT
安装完成后Apache会提供名为apachectl启动脚本,该脚本提供了Apache httpd的启动、关闭以及测试功能,没有修改配置文件的情况下使用start启动httpd程序,可能会返回错误提示:”Could not reliably determine the server’s fully qualified domain name”,提示说明httpd无法确定服务器域名称,可以修改主配置文件的ServerName项来解决。该提示也可以忽略,通过netstat命令查看httpd已经启动成功。
在客户端使用浏览器访问该Web服务器,看到”IT works!”说明服务器可以被正常访问了。
apachectl具体参数如下:
参数 描述
start 启动httpd程序,如果已经启动过该程序则报错
stop 关闭httpd程序
restart 重启httpd程序
graceful 启动httpd,不中断现有的连接
graceful-stop 关闭httpd,不中断现有的连接
status 查看httpd程序当前状态
configtest 检查httpd主配置文件语法
配置文件解析
Apache配置文件默认位于/usr/local/apache2/conf目录下,在该目录下最主要的配置文件是httpd.conf文件,还有一些位于extra目录下的附加配置文件。此外original目录中存有所有这些配置文件的副本。Apache HTTP Sever主配置文件主要由指令以及容器组成,容器使用<容器名称>开始,</容器名称>结尾,容器的指令一般仅在局部有效。下面是对主配置文件重点指定的具体描述。
SeverRoot指令
ServerRoot指令设置Apache软件的安装主目录,如果采用源码安装则默认路径为/usr/local/apache2。
Listen指令
Listen指令设置服务器监听的IP以及端口号,默认监听服务器本机所有的IP地址的80端口。语法格式为Listen [IP地址:]端口 [协议],其中IP地址与协议为可选项,默认监听所有IP,使用TCP协议。一个配置文件中可以多次使用Listen指令来开启多个端口。
LoadModule指令
Apache HTTP Server的特色之一就是她的功能多数是以模块方式加载的,但如果希望Apache动态加载模块,需要在编译Apache时通过--enable-so将mod_so以静态方式编译到Apache核心模块中,LoadModule指令的作用就是加载模块。语法格式为LoadModule 模块 模块文件名称,模块文件一般位于ServerRoot指定目录下的modules目录中。
LoadFile指令
LoadFile指令功能类似于LoadModule,区别在于LoadFile可以通过绝对路径加载modules目录以为的模块文件。
ServerAdmin指令
当网站出现故障时,需要为客户提供一个可以帮助解决问题的邮件地址,ServerAdmin指令的作用就是提供这样的邮件地址。
ServerName指令
ServerName指令设置服务器本机的主机名称以及端

