一.Web服务器的基本概念
1. Web服务的定义
Web服务是基于B/S模型,服务器端可以为客户端提供动态的,交互的超文本服务;
运行http协议和Web服务器软件且能够为客户端提供Web服务的主机称为Web服务器
3. Web服务的工作流程
⑴ 客户端通过客户程序建立与服务器的连接;
⑵ 访问中服务器的相应资源;
⑶ 断开连接
4. 常见的服务器软件
Apache
IIS
5. APACHE特点
可移植性强
支持DSO功能
支持JSP、PHP、CGI
支持MYSQL、POSTGRESQL
支持基于IP地址/域名的虚拟主机
支持OPENSSL
二.Apache 的安装
方法一: rpm 的安装
# rpm –ivh httpd-2.0.1-10.i386.rpm (2# CD)
# rpm -ivh http-devel-2.0.1-10.i386.rpm
方法二: 编译安装
# tar –xzvf httpd.2.0.tar.gz
# cd http.2.0
# ./configure –-prefix=/usr/web(注:后面可加模块名称,如:--enable-
shared=max)
# make
# make install
安装完成后产生的文件:
/etc/httpd/conf/httpd.conf (Apache 的核心配置文件)
/etc/rc.d/init.d/httpd (Apache 的启动脚本)
/usr/sbin/apachectl (Apache 的管理工具)
/etc/httpd/modules目录 (Apache模块存放目录)
/etc/httpd/conf (存放httpd的配置子文件,httpd.conf会调用该目录中的文件)
/usr/bin/htpasswd (建立http用户和设置用户口令)
.htaccess (存放目录的访问控制选项)
三.Apache 的配置
# vi /etc/httpd/conf/httpd.conf
格式如下:
[全局设置] //设置Web服务器性能参数
全局选项 ………
… … …
[主服务器的设置] //设置默认站点的相关选项
主服务器的选项 … …
… … …
[虚拟主机] //设置虚拟主机相关选项
… … …
说明:
ServerRoot “/etc/httpd”
设置Apache工作主目录
PidFile /var/run/httpd.pid
设置记录httpd守护进程进程号的文件名
ScoreBoardFile /var/run/http.scoreboard
指定httpd内部参数的文件名称(在一台机器运行多个版本的apache时才使用)
Timeout 300
定义服务器与客户端的连接超时时间
KeepAlive On/Off
设置Apache是否支持http1.1
MaxKeepAliveRequests 100
定义http1.1的一次连接中允许的最大请求数
KeepAliveTimeout 15
定义一次连接中的两次请求之间的间隔时间
MinSpareServers 5
设置httpd产生的最少空闲子进程数
MaxSpareServers 20
设置httpd产生的最大空闲子进程数
StartServers 8
设置httpd启动时产生的子进程个数
MaxClients 150
定义服务器的最大并发连接数
MaxRequestsPerChild 1000
设置每一个子进程接受的最大请求数
Listen 端口号/IP 地址:端口号
设置服务器httpd守护进程的监听端口
LoadModule 模块名称 模块文件的位置
设置服务器加载指定的模块
案例:要求修改httpd.conf,使Apache服务器达到以下要求:
支持http1.1;
设置连接间隔时间为500秒;
设置每次连接最大请求数为80;
预生成的子进程数为14;
最大客户数为200;
设置服务器只监听192.168.0.1 的80端口;
配置过程:
# vi /etc/httpd/conf/httpd.conf 修改如下:
ServerRoot “/etc/http”
PidFile /var/run/http.pid
ScoreBoardFile /var/run/http.scoreboard
Timeout 500
KeepAlive on
StartServers 14
MaxClients 200
MaxKeepAliveRequests 80
Listen 192.168.0.1:80
# vi /etc/httpd/conf/httpd.conf
User apache
设置httpd进程的启动用户
Guoup apache
设置httpd进程启动用户所属组
ServerAdmin [email protected]
设置管理员的E-mail地址
ServerName 主机名:端口号/ip地址:端口号
设置服务器名称,默认情况该选项不起作用,通常在配置虚拟服务器时,才使用,主机名必须
是一个合法的且能够使用的DNS域名
UseCanonicalName On/Off
设置Apache是否使用ServerName定义的名称作为主服务器访问名称
DocumentRoot “目录名”
设置站点主目录
选项………
(该容器用于定义目录的相关属性)
说明:目录的操作选项有以下几种:
Options 特性名称
作用:定义目录特性
特性名称:
All 所有目录特性
None 消除所有的目录特性
Indexes 当目录中没有默认文档时,则列出文件列表
FollowSymLinks 允许符号连接
ExecCGI 允许执行cgi程序
AllowOverride None/FileInfo/All/AuthConfig
设置是否允许目录中的.htaccess来覆盖目录中的设置选项
None 不使用.htaccess文件
FileInfo 使用.htaccess文件中的选项覆盖容器中的文件设置选项
AuthConfig 使用.htaccess的认证选项来覆盖容器的用户认证选项
All 使用.htaccess文件中的选项来覆盖容器的所有选项
Order deny,allow/allow,deny
设置访问控制顺序
Deny from all/ip地址/网络号
拒绝主机访问
Allow from all/ip地址/网络号
允许主机访问
选项 …………
可以在该容器内判断Apache所支持的模块
UserDir disable
将URL映射到系统用户的工作目录中的一个子目录,即支持个人主页,若要启用该选项,则将
httpd.conf中的UserDir disable改为UserDir public_html;
TypesConfig /etc/mime.types
设置web服务器支持的文件类型
DefaultType text/plain
设置默认文件类型
MimeMagicFile /etc/magic
设置判断mime文件类型的程序
ErrorLog log/error_log
设置错误日志文件的完整路径
LogLevel worn
设置日志的级别
LogFormat “%h.%1……”
设置日志格式
CustomLog logs/access_log combined
设置自定义的日志的完整路径
ServerSignature On/Off/EMail
设置Apache在错误文档的末尾是否加上主机名和版本信息,默认为On
Alias 名称“目录名”
定义虚拟目录
ScriptAlias 名称 “cgi目录”
创建CGI脚本程序的别名
DirectoryIndex 文件名
用于定义默认文档
Redirect 旧地址 新地址
url重定向
AddType 打开方式 文件的后缀名称
设置向MIME添加新的文件类型
AddIcon 文件的路径名
添加文件图标
AddEncoding 压缩软件 压缩文件的扩展名
设置Apache使用MIME压缩类型
注: MIME是统一资源列表,实现资源映射,/etc/mime记录Apache支持多少种压缩
文件类型和完成不同类型文件的映射功能
ErrorDocument 500 “error……”
定义错误文件
BrowserMatch 浏览器名称
定义客户端程序类型
AddLanuage zh_ca .cn
添加语言
DefaultLanguage zh-cn (支持中文界面)
默认语言
AddDefaultCharset GB2312 (支持中文界面)
设置默认字符集
AddCharset GB2312
添加字符集
ProxyRequests On/Off
ProxyVia On/Off/Full/Block
是否支持代理功能
案例二:根据以下要求修改httpd.conf主服务器的任何设置:
站点主目录为 /webpage,所有的主机和用户都可以访问该目录
支持个人主页
支持中文,其默认文档为default.htm
通过apache能够访问 /www目录页面,且只允许192.168.0.1主机访问
修改的内容:
DocumentRoot “/webpage”
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
UserDir pub-html
DefaultlLangage zh-cn
AddDefaultCharset GB2312
DirectoryIndex default.htm
Alias /www “/www”
Option Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from 192.168.0.1
Deny from all
3.虚拟服务器
作用:将一台物理主机,作为多个WEB站点服务器
种类:基于IP地址的虚拟服务器,基于域名的虚拟服务器,动态虚拟服务器
⑴ 基于ip地址的虚拟服务器
# cp /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0:0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE =eth0:0
ONBOOT =yes
BOOTPROTO =none
IPADDR =x.x.x.x
NETMASK =x.x.x.x
# vi /etc/httpd/conf/httpd.conf
DocumentRoot “目录名”
案例三: 一个基于IP地址的虚拟主机,有一台linux主机eth0的IP为192.168.0.1,且
绑定一个ip为192.168.0.2,现利用httpd.2.0,将该台主机设置两个端点的Web服务器
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE =eth0:0
ONBOOT =yes
BOOTPROTO =none
IPADDR =192.168.0.2
NETMASK =255.255.255.02
# vi /etc/httpd/conf/httpd.conf
DocumentRoot /web2
DirectoryIndex index.htm
⑵ 基于域名虚拟主机
Ⅰ.设置DNS服务器
修改区域,建立多条主机记录指向同一个IP 地址
Ⅱ.# vi /etc/httpd/conf/httpd.conf
主服务器选项中,修改以下选项
ServerName w1.linux.net
虚拟主机的选项
NameVirtualHost IP地址/主机名
ServerName w2.linux.net
DocumentRoot “目录名”
DirectoryIndex 文件名
案例四:
现有一台linux主机,eth0 IP为192.168.3.1,同时DNS中有两个主机指向192.168.3.1,要求
利用httpd.2.0发布两个web站点
# vi /var/named/linux.cn
添加以下记录
w1 IN A 192.168.3.1
w2 IN A 192.168.3.1
# vi /etc/httpd/conf/httpd.conf
主服务器的设置:
ServerName w1.linux.cn
虚拟主机的设置
NameVirtualHost 192.168.3.1
ServerName w2.linux.cn
DocumentRoot “目录名”
DirectoryIndex 文件名
;
四、apache其它功能的设置
1. 用户认证
(1)定义
指客户机在访问Web服务器中的某个页面时必须提供一个通过服务器的身分验证
(2)认证的类型
基本类型
摘要类型
(3)认证方法
基于文本的认证
基于mysql认证
(4)具体配置
Ⅰ.首先在/etc/httpd/conf/httpd.conf中对要设置用户认证的资源进行配置,一般
在容器中,用户认证的选项有:
AuthType Basic/digset
设置将被用于该资源的认证类型
AuthName “字符串”
设置该资源属于哪一个域,所设置的字符串会在用户Web浏览器的认证对话框中出现;
AuthUserFile “文件路径”
指定用户文件存放路径
AuthGroupFile “文件路径”
指定组文件存放路径
Require User 用户名
指定有效用户,该用户必须在用户文件中;
Require Group 组名
指定有效组,该组必须在组文件中;
Require Valid-user
用户文件中所有用户都为有效用户,该选项最为常用;
Ⅱ.生成用户文件
# htpasswd –c /passwords wangkai
(5) 案例:
要求:实现对/var/www/html/pub 目录进行身份认证,且只允许u1访问;
配置过程:
方法一:
Ⅰ.vi /etc/httpd/conf/httpd.conf 添加如下内容:
DocumentRoot /var/www/html/pub
Options Indexes FollowSymLinks
AllowOverride None
AuthType Basic
AuthName “Please enter username:”
AuthUserFile “/passwords”
Require User u1
Order Allow,Deny
Allow from all
Ⅱ. # htpasswd -c /passwords u1
Ⅲ. # chown apache /passwords
方法二:
Ⅰ.# vi /etc/httpd/conf/httpd.conf
Option Indexes FollowSymLinks
AllowOverride Authconfig
Order Allow,deny
Allow from all
Ⅱ.# vi /var/www/html/pub/.htaccess
AuthType Basic
AuthName “Please enter username:”
AuthUserFile “/passwords”
Require User u1
Ⅲ. # htpasswd –c /passwords u1
注:.htaccess文件放在相应目录下
2. 个人主页
⑴ 定义
web服务器中每个用户的主目录中页面,可以通过apache自动发布出去。
⑵ 设置选项
UserDir public-html(系统默认个人主页存在用户主目录的子目录可修改)
# vi /etc/httpd/conf/httpd.conf
#UserDir public_html
#
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#
# Order allow,deny
# Allow from all
#
#
# Order deny,allow
# Deny from all
#
#
DirectoryIndex index.html index.html.var
在/etc/httpd/conf/httpd.conf中找到上述被屏蔽的选项,将#去除,使个人主页功能生
效,然后在系统中添加用户,在该用户的主目录下建立目录public_html(系统默认),
注:
(1) 实现个人主页的用户必须是系统用户,这就存在安全隐患;
(2) 用户访问Apache服务器时在浏览器中输入http://域名或IP地址/~用户名;即可打开放
在该用户主目录下public_html(系统默认,可修改)子目录中的主页文件;
案例:
配置要求: 在Apache服务器www.xh.edu上为用户user1,user2开辟个人空间, 允许
user1,user2设计个人主页,同时Apache对这两个用户进行认证;
配置思路:要达到上述要求,必须配置DNS服务器,(本例中我们修改客户机
的/etc/hosts文件)Apache服务器和FTP服务器
配置过程:
(1)建立用户
# useradd user1
# useradd user2
# passwd user1
# passwd user2
(2)修改客户机的/etc/hosts文件
# vi /etc/hosts 添加
192.168.0.1 www.xh.edu
(3)配置FTP服务器
# rpm -ivh vsftpd-1.1.3-8.i386.rpm (3# CD)
# cp /etc/vsftpd/vsftpd.conf /backup/
# vi /etc/vsftpd/vsftpd.conf
修改如下:
anonymous_enable =NO
local_enable =YES
guest_enable =NO
write_enable =YES
chroot_local_user =YES
userlist_enable =YES
userlist_deny =NO
listen =YES
# vi /etc/vsftpd.user_list( 将该文件中的用户名全部屏蔽,在文件尾部添加
)
user1
user2
(4)配置Apache
# rpm –ivh httpd-2.0.1-10.i386.rpm (2# CD)
# rpm -ivh http-devel-2.0.1-10.i386.rpm
# cp /etc/httpd/conf/httpd.conf /backup/
# vi /etc/httpd/conf/httpd.conf
修改如下:
UserDir public_html
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
DirectoryIndex index.html index.html.var
# mkdir /home/user1/public_html
# mkdir /home/user2/public_html
# vi /home/user1/public_html/.htaccess
AuthType Basic
AuthName “Enter username,please”
AuthUserFile /backup/password
Require user user1
# vi /home/user2/public_html/.htaccess
AuthType Basic
AuthName “Enter username,please”
AuthUserFile /backup/password
Require user user2
# vi /home/user1/public_html/index.html
# vi /home/user2/public_html/index.html
# htpasswd –c /backup/password user1
# htpasswd –c /backup/password user2
(5)解决权限的问题
# chmod 711 /home/user1
# chmod 711 /home/user2
# chown user1 /home/user1/public_html
# chown user2 /home/user2/public_html
# chmod 755 /backup/password
(6)启动服务
# service vsftpd start
# apachectl configtest
# service httpd start
(7)测试服务
在客户机的浏览器上输入 http://www.xh.edu/~user1 即可打开user1的个人主
页,当然了,要输入用户名和密码的;user1用户可以自行上传主页文件;
1. Web服务的定义
Web服务是基于B/S模型,服务器端可以为客户端提供动态的,交互的超文本服务;
运行http协议和Web服务器软件且能够为客户端提供Web服务的主机称为Web服务器
3. Web服务的工作流程
⑴ 客户端通过客户程序建立与服务器的连接;
⑵ 访问中服务器的相应资源;
⑶ 断开连接
4. 常见的服务器软件
Apache
IIS
5. APACHE特点
可移植性强
支持DSO功能
支持JSP、PHP、CGI
支持MYSQL、POSTGRESQL
支持基于IP地址/域名的虚拟主机
支持OPENSSL
二.Apache 的安装
方法一: rpm 的安装
# rpm –ivh httpd-2.0.1-10.i386.rpm (2# CD)
# rpm -ivh http-devel-2.0.1-10.i386.rpm
方法二: 编译安装
# tar –xzvf httpd.2.0.tar.gz
# cd http.2.0
# ./configure –-prefix=/usr/web(注:后面可加模块名称,如:--enable-
shared=max)
# make
# make install
安装完成后产生的文件:
/etc/httpd/conf/httpd.conf (Apache 的核心配置文件)
/etc/rc.d/init.d/httpd (Apache 的启动脚本)
/usr/sbin/apachectl (Apache 的管理工具)
/etc/httpd/modules目录 (Apache模块存放目录)
/etc/httpd/conf (存放httpd的配置子文件,httpd.conf会调用该目录中的文件)
/usr/bin/htpasswd (建立http用户和设置用户口令)
.htaccess (存放目录的访问控制选项)
三.Apache 的配置
# vi /etc/httpd/conf/httpd.conf
格式如下:
[全局设置] //设置Web服务器性能参数
全局选项 ………
… … …
[主服务器的设置] //设置默认站点的相关选项
主服务器的选项 … …
… … …
[虚拟主机] //设置虚拟主机相关选项
… … …
说明:
ServerRoot “/etc/httpd”
设置Apache工作主目录
PidFile /var/run/httpd.pid
设置记录httpd守护进程进程号的文件名
ScoreBoardFile /var/run/http.scoreboard
指定httpd内部参数的文件名称(在一台机器运行多个版本的apache时才使用)
Timeout 300
定义服务器与客户端的连接超时时间
KeepAlive On/Off
设置Apache是否支持http1.1
MaxKeepAliveRequests 100
定义http1.1的一次连接中允许的最大请求数
KeepAliveTimeout 15
定义一次连接中的两次请求之间的间隔时间
MinSpareServers 5
设置httpd产生的最少空闲子进程数
MaxSpareServers 20
设置httpd产生的最大空闲子进程数
StartServers 8
设置httpd启动时产生的子进程个数
MaxClients 150
定义服务器的最大并发连接数
MaxRequestsPerChild 1000
设置每一个子进程接受的最大请求数
Listen 端口号/IP 地址:端口号
设置服务器httpd守护进程的监听端口
LoadModule 模块名称 模块文件的位置
设置服务器加载指定的模块
案例:要求修改httpd.conf,使Apache服务器达到以下要求:
支持http1.1;
设置连接间隔时间为500秒;
设置每次连接最大请求数为80;
预生成的子进程数为14;
最大客户数为200;
设置服务器只监听192.168.0.1 的80端口;
配置过程:
# vi /etc/httpd/conf/httpd.conf 修改如下:
ServerRoot “/etc/http”
PidFile /var/run/http.pid
ScoreBoardFile /var/run/http.scoreboard
Timeout 500
KeepAlive on
StartServers 14
MaxClients 200
MaxKeepAliveRequests 80
Listen 192.168.0.1:80
# vi /etc/httpd/conf/httpd.conf
User apache
设置httpd进程的启动用户
Guoup apache
设置httpd进程启动用户所属组
ServerAdmin [email protected]
设置管理员的E-mail地址
ServerName 主机名:端口号/ip地址:端口号
设置服务器名称,默认情况该选项不起作用,通常在配置虚拟服务器时,才使用,主机名必须
是一个合法的且能够使用的DNS域名
UseCanonicalName On/Off
设置Apache是否使用ServerName定义的名称作为主服务器访问名称
DocumentRoot “目录名”
设置站点主目录
选项………
说明:目录的操作选项有以下几种:
Options 特性名称
作用:定义目录特性
特性名称:
All 所有目录特性
None 消除所有的目录特性
Indexes 当目录中没有默认文档时,则列出文件列表
FollowSymLinks 允许符号连接
ExecCGI 允许执行cgi程序
AllowOverride None/FileInfo/All/AuthConfig
设置是否允许目录中的.htaccess来覆盖目录中的设置选项
None 不使用.htaccess文件
FileInfo 使用.htaccess文件中的选项覆盖容器中的文件设置选项
AuthConfig 使用.htaccess的认证选项来覆盖容器的用户认证选项
All 使用.htaccess文件中的选项来覆盖容器的所有选项
Order deny,allow/allow,deny
设置访问控制顺序
Deny from all/ip地址/网络号
拒绝主机访问
Allow from all/ip地址/网络号
允许主机访问
选项 …………
可以在该容器内判断Apache所支持的模块
UserDir disable
将URL映射到系统用户的工作目录中的一个子目录,即支持个人主页,若要启用该选项,则将
httpd.conf中的UserDir disable改为UserDir public_html;
TypesConfig /etc/mime.types
设置web服务器支持的文件类型
DefaultType text/plain
设置默认文件类型
MimeMagicFile /etc/magic
设置判断mime文件类型的程序
ErrorLog log/error_log
设置错误日志文件的完整路径
LogLevel worn
设置日志的级别
LogFormat “%h.%1……”
设置日志格式
CustomLog logs/access_log combined
设置自定义的日志的完整路径
ServerSignature On/Off/EMail
设置Apache在错误文档的末尾是否加上主机名和版本信息,默认为On
Alias 名称“目录名”
定义虚拟目录
ScriptAlias 名称 “cgi目录”
创建CGI脚本程序的别名
DirectoryIndex 文件名
用于定义默认文档
Redirect 旧地址 新地址
url重定向
AddType 打开方式 文件的后缀名称
设置向MIME添加新的文件类型
AddIcon 文件的路径名
添加文件图标
AddEncoding 压缩软件 压缩文件的扩展名
设置Apache使用MIME压缩类型
注: MIME是统一资源列表,实现资源映射,/etc/mime记录Apache支持多少种压缩
文件类型和完成不同类型文件的映射功能
ErrorDocument 500 “error……”
定义错误文件
BrowserMatch 浏览器名称
定义客户端程序类型
AddLanuage zh_ca .cn
添加语言
DefaultLanguage zh-cn (支持中文界面)
默认语言
AddDefaultCharset GB2312 (支持中文界面)
设置默认字符集
AddCharset GB2312
添加字符集
ProxyRequests On/Off
ProxyVia On/Off/Full/Block
是否支持代理功能
案例二:根据以下要求修改httpd.conf主服务器的任何设置:
站点主目录为 /webpage,所有的主机和用户都可以访问该目录
支持个人主页
支持中文,其默认文档为default.htm
通过apache能够访问 /www目录页面,且只允许192.168.0.1主机访问
修改的内容:
DocumentRoot “/webpage”
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
UserDir pub-html
DefaultlLangage zh-cn
AddDefaultCharset GB2312
DirectoryIndex default.htm
Alias /www “/www”
Option Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from 192.168.0.1
Deny from all
3.虚拟服务器
作用:将一台物理主机,作为多个WEB站点服务器
种类:基于IP地址的虚拟服务器,基于域名的虚拟服务器,动态虚拟服务器
⑴ 基于ip地址的虚拟服务器
# cp /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0:0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE =eth0:0
ONBOOT =yes
BOOTPROTO =none
IPADDR =x.x.x.x
NETMASK =x.x.x.x
# vi /etc/httpd/conf/httpd.conf
DocumentRoot “目录名”
案例三: 一个基于IP地址的虚拟主机,有一台linux主机eth0的IP为192.168.0.1,且
绑定一个ip为192.168.0.2,现利用httpd.2.0,将该台主机设置两个端点的Web服务器
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE =eth0:0
ONBOOT =yes
BOOTPROTO =none
IPADDR =192.168.0.2
NETMASK =255.255.255.02
# vi /etc/httpd/conf/httpd.conf
DocumentRoot /web2
DirectoryIndex index.htm
⑵ 基于域名虚拟主机
Ⅰ.设置DNS服务器
修改区域,建立多条主机记录指向同一个IP 地址
Ⅱ.# vi /etc/httpd/conf/httpd.conf
主服务器选项中,修改以下选项
ServerName w1.linux.net
虚拟主机的选项
NameVirtualHost IP地址/主机名
ServerName w2.linux.net
DocumentRoot “目录名”
DirectoryIndex 文件名
案例四:
现有一台linux主机,eth0 IP为192.168.3.1,同时DNS中有两个主机指向192.168.3.1,要求
利用httpd.2.0发布两个web站点
# vi /var/named/linux.cn
添加以下记录
w1 IN A 192.168.3.1
w2 IN A 192.168.3.1
# vi /etc/httpd/conf/httpd.conf
主服务器的设置:
ServerName w1.linux.cn
虚拟主机的设置
NameVirtualHost 192.168.3.1
ServerName w2.linux.cn
DocumentRoot “目录名”
DirectoryIndex 文件名
;
四、apache其它功能的设置
1. 用户认证
(1)定义
指客户机在访问Web服务器中的某个页面时必须提供一个通过服务器的身分验证
(2)认证的类型
基本类型
摘要类型
(3)认证方法
基于文本的认证
基于mysql认证
(4)具体配置
Ⅰ.首先在/etc/httpd/conf/httpd.conf中对要设置用户认证的资源进行配置,一般
在
AuthType Basic/digset
设置将被用于该资源的认证类型
AuthName “字符串”
设置该资源属于哪一个域,所设置的字符串会在用户Web浏览器的认证对话框中出现;
AuthUserFile “文件路径”
指定用户文件存放路径
AuthGroupFile “文件路径”
指定组文件存放路径
Require User 用户名
指定有效用户,该用户必须在用户文件中;
Require Group 组名
指定有效组,该组必须在组文件中;
Require Valid-user
用户文件中所有用户都为有效用户,该选项最为常用;
Ⅱ.生成用户文件
# htpasswd –c /passwords wangkai
(5) 案例:
要求:实现对/var/www/html/pub 目录进行身份认证,且只允许u1访问;
配置过程:
方法一:
Ⅰ.vi /etc/httpd/conf/httpd.conf 添加如下内容:
DocumentRoot /var/www/html/pub
Options Indexes FollowSymLinks
AllowOverride None
AuthType Basic
AuthName “Please enter username:”
AuthUserFile “/passwords”
Require User u1
Order Allow,Deny
Allow from all
Ⅱ. # htpasswd -c /passwords u1
Ⅲ. # chown apache /passwords
方法二:
Ⅰ.# vi /etc/httpd/conf/httpd.conf
Option Indexes FollowSymLinks
AllowOverride Authconfig
Order Allow,deny
Allow from all
Ⅱ.# vi /var/www/html/pub/.htaccess
AuthType Basic
AuthName “Please enter username:”
AuthUserFile “/passwords”
Require User u1
Ⅲ. # htpasswd –c /passwords u1
注:.htaccess文件放在相应目录下
2. 个人主页
⑴ 定义
web服务器中每个用户的主目录中页面,可以通过apache自动发布出去。
⑵ 设置选项
UserDir public-html(系统默认个人主页存在用户主目录的子目录可修改)
# vi /etc/httpd/conf/httpd.conf
#UserDir public_html
#
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#
# Order allow,deny
# Allow from all
#
#
# Order deny,allow
# Deny from all
#
#
DirectoryIndex index.html index.html.var
在/etc/httpd/conf/httpd.conf中找到上述被屏蔽的选项,将#去除,使个人主页功能生
效,然后在系统中添加用户,在该用户的主目录下建立目录public_html(系统默认),
注:
(1) 实现个人主页的用户必须是系统用户,这就存在安全隐患;
(2) 用户访问Apache服务器时在浏览器中输入http://域名或IP地址/~用户名;即可打开放
在该用户主目录下public_html(系统默认,可修改)子目录中的主页文件;
案例:
配置要求: 在Apache服务器www.xh.edu上为用户user1,user2开辟个人空间, 允许
user1,user2设计个人主页,同时Apache对这两个用户进行认证;
配置思路:要达到上述要求,必须配置DNS服务器,(本例中我们修改客户机
的/etc/hosts文件)Apache服务器和FTP服务器
配置过程:
(1)建立用户
# useradd user1
# useradd user2
# passwd user1
# passwd user2
(2)修改客户机的/etc/hosts文件
# vi /etc/hosts 添加
192.168.0.1 www.xh.edu
(3)配置FTP服务器
# rpm -ivh vsftpd-1.1.3-8.i386.rpm (3# CD)
# cp /etc/vsftpd/vsftpd.conf /backup/
# vi /etc/vsftpd/vsftpd.conf
修改如下:
anonymous_enable =NO
local_enable =YES
guest_enable =NO
write_enable =YES
chroot_local_user =YES
userlist_enable =YES
userlist_deny =NO
listen =YES
# vi /etc/vsftpd.user_list( 将该文件中的用户名全部屏蔽,在文件尾部添加
)
user1
user2
(4)配置Apache
# rpm –ivh httpd-2.0.1-10.i386.rpm (2# CD)
# rpm -ivh http-devel-2.0.1-10.i386.rpm
# cp /etc/httpd/conf/httpd.conf /backup/
# vi /etc/httpd/conf/httpd.conf
修改如下:
UserDir public_html
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
DirectoryIndex index.html index.html.var
# mkdir /home/user1/public_html
# mkdir /home/user2/public_html
# vi /home/user1/public_html/.htaccess
AuthType Basic
AuthName “Enter username,please”
AuthUserFile /backup/password
Require user user1
# vi /home/user2/public_html/.htaccess
AuthType Basic
AuthName “Enter username,please”
AuthUserFile /backup/password
Require user user2
# vi /home/user1/public_html/index.html
# vi /home/user2/public_html/index.html
# htpasswd –c /backup/password user1
# htpasswd –c /backup/password user2
(5)解决权限的问题
# chmod 711 /home/user1
# chmod 711 /home/user2
# chown user1 /home/user1/public_html
# chown user2 /home/user2/public_html
# chmod 755 /backup/password
(6)启动服务
# service vsftpd start
# apachectl configtest
# service httpd start
(7)测试服务
在客户机的浏览器上输入 http://www.xh.edu/~user1 即可打开user1的个人主
页,当然了,要输入用户名和密码的;user1用户可以自行上传主页文件;