Apache服务器配置
常州信息职业技术学院 Linux网络操作系统
2
本章内容
Apache简介
获取和安装Apache
配置并运行Apache
个人主页、访问控制和用户认证
建立虚拟Web站点
建立动态的Web站点
建立安全传输的Web站点
常州信息职业技术学院 Linux网络操作系统
3
1Apache简介
常州信息职业技术学院 Linux网络操作系统
4
2 获取和安装Apache
以RPM方式安装Apache
获取Apache源代码包
以编译方式安装Apache
常州信息职业技术学院 Linux网络操作系统
5
Apache的安装文件
Apache服务器的安装软件包
把Redhat 的第二张安装光盘放入光驱中。
把光盘挂载到/mnt/cdrom目录下。
进入安装文件所在目录。
安装Apache。
常州信息职业技术学院 Linux网络操作系统
6
以编译方式安装Apache
解压缩安装文件包 .
运行编译脚本的配置文件:configure文件 .
# ./configure --prefix=PREFIX (其中选项--
prefix用来指定Apache的安装目录,变量
PREFIX代表安装目录名 )
编译
make
安装
make install
常州信息职业技术学院 Linux网络操作系统
7
3配置并运行Apache
配置文件
启动和停止Apache
常州信息职业技术学院 Linux网络操作系统
8
配置文件
提示信息
全局变量
配置主服务器
配置虚拟主机
常州信息职业技术学院 Linux网络操作系统
9
全局变量
1.选择服务器启动类型
2.设置服务器的根目录
3.设置加锁文件
4.设置ScoreBoardFile
5.设置PidFile
6.设置超时时间
7.设置服务器进程数
8.设置地址绑定
9.选择模块
10.配置状态信息
常州信息职业技术学院 Linux网络操作系统
10
配置主服务器
1.设置用户和组
2.设置Email地址
3.设置服务器名
4.设置正式名称
5.设置文档目录
6.设置访问选项和覆
盖
7.设置用户目录
8.设置目录索引
9.设置访问控制
10.设置MIME类型文件
11.配置日志文件
12.设置服务器信息
13.设置目录别名
14.设置索引选项
15.定义编码和语言
16.添加MIME类型和处理类型
17.自定义错误响应
18.设置浏览器响应
常州信息职业技术学院 Linux网络操作系统
11
Apache的配置文件
配置文件所在目录:
/etc/httpd/conf/
主配置文件:
旧版本中的配置文件:
资源配置文件:
访问许可权配置文件:
常州信息职业技术学院 Linux网络操作系统
12
Access Config和ResourceConfig
为了对旧版本的Apache兼容, Apache服务器在每次启动时都查
找并读取和文件的内容。 文件中
的AccessConfig和ResourceConfig指令用于指定和
文件的位置,默认值为:
AccessConfig conf/
ResourceConfig conf/
出于安全性的考虑,可以设置为:
AccessConfig /dev/null
ResourceConfig /dev/null
指定这两个文件为空设备文件“/dev/null ”,这样可以避免恶意的
修改和文件对系统配置的影响。
常州信息职业技术学院 Linux网络操作系统
13
ServerType
ServerType standalone | inetd
ServerType用于定义apache服务器的运行模式,默认值
standalone为独立运行的服务器,如设置为inetd则由
xinetd服务器负责apache服务器的启动。
常州信息职业技术学院 Linux网络操作系统
14
ServerRoot
ServerRoot "/etc/httpd "
ServerRoot用于指定apache服务器的配置文件及
日志文件存放的根目录,默认为目录
"/etc/httpd " 。
常州信息职业技术学院 Linux网络操作系统
15
PidFile
PidFile /var/run/
PidFile用于指定记录httpd进程号(PID)的文
件位置,默认值为“/var/run/”。
常州信息职业技术学院 Linux网络操作系统
16
Timeout
Timeout 300
指定站点响应的秒数。若超过这段时间仍未收到或
送出数据,就断开连接。
常州信息职业技术学院 Linux网络操作系统
17
KeepAlive
KeepAlive On|Off
启用此项,表示允许保持连接,让每次连接能提
出多个请求。避免每请求一个文件就跟服务器建
立一次连接。
常州信息职业技术学院 Linux网络操作系统
18
MaxKeepAliveRequests
MaxKeepAliveRequests 100
每次连接可提出请求的数量,设置为0表示数量不限,
默认值为100。
常州信息职业技术学院 Linux网络操作系统
19
KeepAliveTimeout
KeepAliveTimeout 15
连续两个请求之间的时间如果超过15秒还未
到达,则视为连接中断。
常州信息职业技术学院 Linux网络操作系统
20
SpareServers
MinSpareServers 5
MaxSpareServers 20
提供浏览服务的httpd进程的数目需要随连接数目
的多少而变化,因此需要随时保持几个闲置的
httpd进程等候新的连接请求。若闲置的进程数少
于5个(默认值),则表示闲置进程太少,需要将
其增加到5个;若多于20个(默认值)则表示闲置
进程太多,需将其减少到20个。
常州信息职业技术学院 Linux网络操作系统
21
StartServers
StartServers 8
当apache服务器启动时,httpd进程的数目,默认值为8。
常州信息职业技术学院 Linux网络操作系统
22
MaxClients
MaxClients 150
同时接入的数目太多时会降低系统访问性能,
设置此参数可限制同时连接的最大数值,默认
值为150。
常州信息职业技术学院 Linux网络操作系统
23
Listen
Listen :80
Listen 80
用于设置apache服务器监听指定IP和(或)端口上的
连接请求。
常州信息职业技术学院 Linux网络操作系统
24
Port
Port 80
指定apache服务器监听的端口号。
常州信息职业技术学院 Linux网络操作系统
25
User & Group
User apache
Group apache
设置httpd用哪个用户帐号和组来启动,默
认使用apache用户和组。
常州信息职业技术学院 Linux网络操作系统
26
ServerAdmin
ServerAdmin root@localhost
服务器管理员的邮件地址,当服务器运行出错时将
向此邮件地址发信。
常州信息职业技术学院 Linux网络操作系统
27
ServerName
ServerName localhost
设置主机的名称,此名称会被送到远程连接程序,
以取代安装Apache主机的真实名称。默认值是
localhost,行首加#号,关闭此功能。
常州信息职业技术学院 Linux网络操作系统
28
DocumentRoot
常州信息职业技术学院 Linux网络操作系统
29
DirectoryIndex
DirectoryIndex指令用于指定目录中默认的索引文
件名称,可同时指定多个文件名称,两两之间用空
格分割。默认值为。
实例:
DirectoryIndex
常州信息职业技术学院 Linux网络操作系统
30
UserDir
UserDir public_html
UserDir用于设定用户个人主页存放的目录,默认为
“public_html”目录,即/home/anyuser/public_html。
常州信息职业技术学院 Linux网络操作系统
31
为每个用户配置个人主页
例:为用户user1建立个人主页
cd /home/user1
mkdir public_html
chown public_html
cd ..
chmod 711 user1
在/home/user1/public_html中建立
使用浏览器浏览http://localhost/~user1/
常州信息职业技术学院 Linux网络操作系统
32
Alias
Alias用于设置路径别名
Alias /doc/ /usr/share/doc/
给“/usr/share/doc/” 设置路径别名为“/doc/”
常州信息职业技术学院 Linux网络操作系统
33
载入模块指令
Apache服务器采用动态共享对象(DSO,Dynamic Shared
Object)的机制,在启动Apache服务器时可根据实际需要载
入适当的模块,使其具有相应的功能。
载入模块的相关指令有:
LoadModule
ClearModuleList
AddModule
常州信息职业技术学院 Linux网络操作系统
34
LoadModule
LoadModule指令用于动态载入模块,即将模块外挂在
Apache服务器上。
语法:
LoadModule 模块名称 模块文件路径全名
实例:
LoadModule status_module modules/
常州信息职业技术学院 Linux网络操作系统
35
ClearModuleList
ClearModuleList指令用于清空Apache服务器内建
的模块列表。通常先使用该指令清空列表,再使用
AddModule指令向模块列表加入模块。
语法:
ClearModuleList
常州信息职业技术学院 Linux网络操作系统
36
AddModule
AddModule指令用于向模块列表加入新的模块名称。
语法:
AddModule 模块
实例:
AddModule
常州信息职业技术学院 Linux网络操作系统
37
容器指令
容器指令(container directive)通常包括在<>括号内,
较容易识别。条件指令<IfDefine>和<IfModule>不是容器指
令,他们是例外。常用的容器指令有:
<Directory>
<Files>
<Location>
<VirtualHost>
常州信息职业技术学院 Linux网络操作系统
38
<Directory>… </Directory>
<Directory /> 设置“/”根目录的访问权限
Options FollowSymLinks
AllowOverride None
</Directory> 目录属性设置结束
使用<Directory>… </Directory>设置指定目录的访问权限,其中可包含:
Options
AllowOverride
Order
Allow
Deny
五个属性。
常州信息职业技术学院 Linux网络操作系统
39
Options属性
Options FollowSymLinks Indexes MultiViews
Options可以组合设置下列选项:
All:用户可以在此目录中作任何事情。
ExecCGI:允许在此目录中执行CGI程序。
FollowSymLinks:服务器可使用符号链接指向的文件或
目录。
Indexes:服务器可生成此目录的文件列表。
None:不允许访问此目录。
常州信息职业技术学院 Linux网络操作系统
40
AllowOverride
AllowOverride None
AllowOverride会根据设定的值决定是否读取目录中的
.htaccess文件,来改变原来所设置的权限。
All:读取.htaccess文件的内容,修改原来的访问权限。
None:不读取.htaccess文件
为避免用户自行建立.htaccess文件修改访问权限,
文件中默认设置每个目录为: AllowOverride None。
常州信息职业技术学院 Linux网络操作系统
41
AccessFileName
AccessFileName filename
AccessFileName指令用于指定保护目录设定文件的文件名
称,默认值为“.htaccess”。
AccessFileName .acl
常州信息职业技术学院 Linux网络操作系统
42
Allow
设定允许访问Apache服务器的主机
Allow from all
允许所有主机的访问
Allow from
允许来自指定IP地址主机的访问
常州信息职业技术学院 Linux网络操作系统
43
Deny
设定拒绝访问Apache服务器的主机
Deny from all
拒绝来自所有主机的访问
Deny from
拒绝指定IP地址主机的访问
常州信息职业技术学院 Linux网络操作系统
44
Order
Order allow,deny
Order用于指定allow和deny的先后次序。
范例:
Order deny,allow
Deny from all
Allow from
Order allow,deny
Allow from all
Deny from
常州信息职业技术学院 Linux网络操作系统
45
<Files>…</Files>
<Files>容器包含只应用于指定文件的指令,文件应该由文件名
(必要时使用统配符)指定。
实例:
<Files = “^\.ht”>
Order allow,deny
Deny from all
</Files>
常州信息职业技术学院 Linux网络操作系统
46
<Location>… </Location>
<Location>容器包含只应用于特定URL的指令。
实例:
<Location /server-status>
SetHandler server-status
order deny,allow
allow from
deny from all
</Location>
常州信息职业技术学院 Linux网络操作系统
47
Apache的启动与停止
/etc/
apache的启动脚本
service httpd start
启动apache服务器的命令
service httpd stop
停止apache服务器的命令
service httpd status
查询apache服务器状态的命令
service httpd restart
重新启动apache服务器的命令
常州信息职业技术学院 Linux网络操作系统
48
4 个人主页、访问控制和用户认证
设置个人主页
访问控制
用户认证
常州信息职业技术学院 Linux网络操作系统
49
设置个人主页
修改文件,在用户目录设置一节中加入如下
设置:
# UserDir: The name of the directory that is appended onto a
user's home
# directory if a ~user request is received.
#
UserDir mainpage (其中命令UserDir指定了用户的网页文件
在其主目录下保存的位置 )
常州信息职业技术学院 Linux网络操作系统
50
访问控制
建立基于用户的访问控制
Apache可以针对不同的目录或文件设定不同的口令
文件,实现基于用户的访问控制。
建立基于主机的访问控制
Apache也可以针对不同的目录或文件设定指定IP地
址的主机可以(不可以)访问。
常州信息职业技术学院 Linux网络操作系统
51
用户认证
采用文本方式存储认证信息
采用数据库方式存储认证信息
常州信息职业技术学院 Linux网络操作系统
52
采用文本方式存储认证信息
实例:
<Directory /home/auserdir>
AuthName "userauth"
AuthType Basic
Require valid-user
AuthUserFile /etc/httpd/conf/.htpasswd
</Directory>
定义目录“/home/auserdir”的用户认证。
常州信息职业技术学院 Linux网络操作系统
53
AuthName
AuthName auth-domain
AuthName指令对当前定义的认证区域进行命名,该名称
会出现在浏览器客户端的用户认证对话框中,以标识用
户被认证的区域。如认证区域名称中包含空格需用“”
括起。
AuthName需与AuthType、Require、AuthUserFile一同使
用。
常州信息职业技术学院 Linux网络操作系统
54
AuthType
AuthType Basic
AuthType指令用于设置身份认证时传送密码的编码方式。
设置为“Basic”时利用uuencode编码方式传送密码。
AuthType需与AuthName 、Require、AuthUserFile一同
使用。
常州信息职业技术学院 Linux网络操作系统
55
Require
Require指令用于设定可进行身份验证的用户。
Require user 用户名 [用户名] ……
设置指定用户名的用户可通过身份验证访问区域。
Require group 组名 [组名 ] ……
设置指定组内的用户可通过身份验证访问区域。
Require valid-user
设置所有合法用户可通过身份验证访问区域。
常州信息职业技术学院 Linux网络操作系统
56
AuthUserFile
AuthUserFile file-path
AuthUserFile指令用于设置验证用户身份的密码
文件,该文件名需设置绝对路径。
例如:
AuthUserFile /etc/httpd/conf/.htpasswd
密码文件是用htpasswd命令创建的。
常州信息职业技术学院 Linux网络操作系统
57
htpasswd命令
htpasswd指令用于创建密码文件和设置用户密
码:
htpasswd –c 文件名 用户名
创建密码文件并添加指定的用户。
-c表示创建文件。
例: htpasswd –c .htpasswd user1
htpasswd 文件名 用户名
在指定的密码文件中添加指定用户的密码,
如该用户已存在则修改用户密码。
常州信息职业技术学院 Linux网络操作系统
58
AuthGroupFile
AuthGroupFile 组文件路径
AuthGroupFile指令用于设置提供用户验证的组文件。
需与Require group 指令一同使用。
指定的组文件为文本文件,每行定义一个组,格式如下:
组名: 用户名1 用户名2
组名后面的是属于该组的用户列表,中间用“:”分割;
用户列表中用户名与用户名间用空格分割。
常州信息职业技术学院 Linux网络操作系统
59
采用数据库方式存储认证信息
采用MySQL数据库 .在Apache中使用
MySQL存储认证信息可以通过
mod_auth_mysql模块来实现 .
常州信息职业技术学院 Linux网络操作系统
60
建立虚拟Web站点
建立基于IP地址的虚拟主机
需要在同一台主机上绑定多个IP,在每个IP上建
立一个虚拟主机,由于IP地址缺乏,此种方法不常
使用。
建立基于域名的虚拟主机
所有的虚拟主机都使用同一个IP地址,通过不同
的域名来标识不同的虚拟主机。
常州信息职业技术学院 Linux网络操作系统
61
基于IP的虚拟主机的配置
常州信息职业技术学院 Linux网络操作系统
62
基于域名的虚拟主机的配置
常州信息职业技术学院 Linux网络操作系统
63
建立动态的Web站
PHP简介
获取、安装、配置PHP
常州信息职业技术学院 Linux网络操作系统
64
安装PHP
两种方法可以安装PHP,一种是把PHP以静态的
方式编译进Apache,另一种是把PHP最为一个
共享模块(DSO)安装到Apache中。
常州信息职业技术学院 Linux网络操作系统
65
静态安装PHP
解压缩Apache安装包
解压缩PHP的安装包,用选项-j来解压bzip类型的压缩
文件
进入生成的目录,并配置PHP的编译脚本
编译并安装PHP
常州信息职业技术学院 Linux网络操作系统
66
作为共享模块安装PHP
解压缩Apache安装包和PHP的安装包 。
进入Apache安装文件所在目录,配置Apache的编译
脚本,使其支持共享模块 。
编译并安装Apache 。
进入PHP安装文件所在目录,配置PHP的编译脚本
。
编译并安装PHP 。
常州信息职业技术学院 Linux网络操作系统
67
配置PHP
(1)设置PHP的初始配置文件,把-dist复制到目
录/usr/local/lib下,并命名为。
(2)在Apache配置文件中加入如下行,设置
Apache加载PHP模块 。
LoadModule php4_module libexec/
(3)在Apache配置文件中加入如下行,告诉
Apache那些后缀的文件是PHP脚本文件。
AddType application/x-httpd-php .php .phtml
(4)启动Apache服务器 。
常州信息职业技术学院 Linux网络操作系统
68
7建立安全传输的Web站点
SSL简介
安装具有SSL的Apache
常州信息职业技术学院 Linux网络操作系统
69
SSL简介
SSL提供的安全通道有以下特点:
1.数据的保密性
2.数据的一致性
3.安全验证
常州信息职业技术学院 Linux网络操作系统
70
安装具有SSL的Apache
安装OpenSSL
配置Apache服务器使用SSL
常州信息职业技术学院 Linux网络操作系统
71
安装OpenSSL
软件包的文件名是
常州信息职业技术学院 Linux网络操作系统
72
配置Apache服务器使用SSL
编译带mod_ssl的Apache
创建证书签署请求文件
创建自签署证书
配置Apache使用证书和密钥
测试Apache和SSL
常州信息职业技术学院 Linux网络操作系统
73
Apache的帮助资源
常州信息职业技术学院 Linux网络操作系统
74
相关网络资源
常州信息职业技术学院 Linux网络操作系统
75
本章小结
掌握Apache服务器的配置方法
掌握虚拟Web服务器的实现方法
掌握Apache+PHP+Mysql的实现