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