Apache
Apache软件包的组成
Apache服务器的启动
Apache服务器的配置
Apache服务器的用户认证
用户web目录
虚拟主机
1.Apache简介
WWW(World Wide Web)
HTTP(HyperText Transfer Protocol)
交互式访问
模块化
2.Apache软件包的组成
/etc/httpd/conf/*
主配置文件位置
/etc/rc.d/init.d/httpd
启动脚本
/home/httpd/html
html文档的主目录
/home/httpd/html/manual/*
html格式的帮助文档
/home/httpd/icons/*
用在html网页中的图标文件
/usr/sbin/*
-/usr/sbin/htpasswd
建立和更新apache用户的程序
-/usr/sbin/httpd
http服务器程序
/var/log/httpd/*
日志文件
3.Apache服务器的启动
/etc/rc.d/init.d/httpd start(reload/restart/stop)
使其自动运行
ntsysv
4.Apache服务器的配置
1.配置文件
httpd.conf srm.conf access.conf
2.httpd.conf
ServerType standlone/inetd
服务器的运行方式
Port 80
在standlone方式下监听的端口号
User nobody
进程运行的属主
Group nobody
进程运行的属组
ServerAdmin admin@localhost
管理员信箱
ServerRoot "/home/httpd/"
服务器文件位置
ServerName httpserver
服务器名称
Timeout 300
设置服务器和客户端的连接超时时间
MaxClient 300
允许同时连接的客户数
ProxyRequests on
允许充当proxy
DocumentRoot "/home/httpd/html"
提供服务器文档服务的根目录
UserDir public_html
服务器上用户自己主页所在目录
DirectoryIndex index.html
目录索引文件
AccessFileName .htaccess
在每个目录中包含访问控制信息的文件名
Alias /icons/ "/home/user/icons/"
为不在DocumentRoot之下的文档建立别名
<VirtualHost></VirtualHost>
<Directory></Directory>
3.目录访问权限控制
----
通过修改httpd.conf文件中的Directory项来设置
Ex:
<Directory "/home/httpd/html/aa">
Options Indexes
AllowOverride None
order allow,deny
allow from all
</Directory>
Options指令
--控制一个目录的访问特性
-None:
-All:
-ExecCGI:可以执行cgi脚本
-Indexes:访问一个无索引文件的目录时,返回一个文件 列表
AllowOverride指令
--".htaccess"文件中哪些设置允许覆盖先前的设置
-None:不读取.htaccess
-Limit:覆盖控制主机访问的指令(allow,deny)
-AuthConfig:允许覆盖跟认证有关指令 (AuthType,AuthName)
order指令
控制处理allow和deny指令的顺序
Ex:
order allow,deny
deny from all
allow from host11
allow指令
对于一个目录来说,allow指令设置允许哪些主机访问
-all:所有主机
-域名:eloo.com
-一个完整IP:192.168.0.1
-网络号码/子网掩码:192.168.0.0/255.255.255.0
-网络号码/nnn:192.168.0.0/24
deny指令
对于一个目录来说,allow指令设置禁止哪些主机访问
-all:所有主机
-域名:eloo.com
-一个完整IP:192.168.0.1
-网络号码/子网掩码:192.168.0.0/255.255.255.0
-网络号码/nnn:192.168.0.0/24
5.Apache服务器的用户认证
功能:只有合法的帐号名和密码才能访问到指定目录的内容
1.建立用户数据库
格式:lpeng:BQ5DFS3%#$%
一般放在DocumentRoot以外的地方
#htpasswd -bc /etc/httpd/users user1 1234
2.使用用户数据库
在要保护的目录中建立".htaccess"文件
Ex:
AuthName "会员区"
AuthType Basic
AuthUserFile /etc/httpd/users
require valid-user(requrie user <username1>
注意:也可以建立一个用户组文件,然后在这里指定用户组
vi /etc/httpd/groups
teacher:jacky lpeng
Ex:
AuthName "会员区"
AuthType Basic
AuthGroupFile /etc/httpd/users
require group <group1>
另一种情况:
Ex:
AuthName "会员区"
AuthType Basic
AuthGroupFile /etc/httpd/users
require group <group1>
Allow from
Deny from
satisfy all //同时使用两种,都满足才可
satisfy any //符合一种即可
使用php+mysql数据库来实现用户认证
6.用户Web目录
Apache允许主机上的用户使用特定的目录存放用户自己的主页
http://hostname/~username/
一种方法
UserDir public_html
注意:此目录必须位于用户主目录下
另种方法
UserDir /home/httpd/*/httpd
7.虚拟主机
基于名字的虚拟主机
<VirtualHost 192.168.103.11>
ServerAdmin webmaster@host.some_domain.com
DocumentRoot /home/eloo/a
ServerName a.eloo.com
ErrorLog /home/eloo/logs/host.some_domain.com-error_log
CustomLog /home/eloo/logs/host.some_domain.com-access_log common
</VirtualHost>
实验:
1.建立/home/httpd/htmlapachetest目录,并对其进行权限限制,使用户aa可以访问
2.设置自己服务器上的个人主页空间
3.设置本机域名mydomain.com
主目录为/home/httpd/html
再添加一别名为username.mydomain.com
使其访问/home/username/html目录下的内容