MultiViews 准许内容协商的Multiviews;
Indexes 若该目录下无index文件,则准许显示该目录下的文件以供选择;
IncludesNOEXEC 准许SSI(Server-side Includes),但不可使用#exec和#include功能;
Includes 准许SSI;
FollowSymLinks 准许符号链接到其他目录;
ExecCGI
准许该目录下可以使用CGI。
2.而AllowOverride命令则是用来决定是否准许在"access.conf"文件中设定的权限是否可以被在文件".htaccess"中设定的权限覆盖。它有两个参数:
All 准许覆盖;
None 不准许覆盖。
3.Order命令:用来设定谁能从这个服务器取得控制。它也有两个参数:
allow 可以取得控制;
deny 禁止取得控制。
现在我们一起来看看关于目录"/home/httpd/html"的设置的含义:它使得这个目录,如果不存在index.htm文件时,列出目录信息以供选择,准许SSI,允许执行CGI程序,开启了动态连接。它不允许再使用在文件".htaccess"中设定来覆盖这里所设置的权限。使所有的人都可以取得控制。
该文件的第二段非注释部分如下:
<Directory /home/httpd/cgi-bin>
Option ExecCGI
AllowOverride None
</Directory>
这个表示目录"/home/httpd/cgi"的设置为,当前目录下可以执行CGI程序。不允许再使用在文件".htaccess"中设定来覆盖这里所设置的权限。
需要说明的是,不同的LINUX系统中,可以在这个文件中看到的信息不完全相同,但是根据这里给出的信息,大家可以参照命令的解释自行理解文件中的设置,以及根据自己的需要进行相应的修改。
使新的配置生效
在上面,我们可能已经根据新的需求更改了相应的配置选项,如果我们要使得这个新的配置立即生效。我们就必须重新启动WEB服务进程。在LINUX中,我们可以十分方便地使用命令行来使得WEB服务进程重启。
/etc/rc.d/init.d/httpd restart
五、为用户开辟个人主页空间
如果我们利用了LINUX系统架设了一台WEB服务器,我们不仅可以存放公司的主页,而且还可以为公司的每一个员工提供一块个人主页的空间。
首先,为需要个人主页空间的员工在LINUX上开设一个帐号。这样,它就拥有了一个用户主目录"/home/用户帐号名"。
addusr
用户帐号名
passwd 用户帐号名
在用户主目录下建立一个目录"public_html",然后为其设置相应的权限。
cd ~用户帐号名
mkdir public_html
chmod 755 public_html
确认在srm.conf文件中的UserDir命令设置的是public_html目录。让员工将自己的个人主页上传到自己用户主目录下的public_html目录中。
现在就可以使用"http://www.company.com/~用户帐号名"来访问员工的个人主页了。
用Apache实现虚拟主机服务
什么是虚拟主机服务
所谓的虚拟主机服务就是指将一台机器虚拟成多台WEB服务器。举个例子来说,一家公司想从事提供主机代管服务,它为其它企业提供WEB服务。那么它肯定不是为每一家企业都各准备一台物理上的服务器,而是用一台功能较强大的大型服务器,然后用虚拟主机的形式,提供多个企业的WEB服务,虽然所有的WEB服务就是这台服务器提供的,但是让访问者看起来却是在不同的服务器上获得WEB服务一样。
具体地说,就是,我们可以利用虚拟主机服务将两个不同公司www.company1.com与www.company2.com的主页内容都存放在同一台主机上。而访问者只需输入公司的域名就可以访问到它想得到的主页内容。
用Apache设置虚拟主机服务通常可以采用两种方案:基于IP地址的虚拟主机和基于名字的虚拟主机,下面我们分别介绍一下它们的实现方法。以便大家在具体的应用中能够选择最合适的实现方法。
设置实现基于IP地址的虚拟主机服务实现前提这种方式需要在机器上设置IP别名,也就是在一台机器的网卡上绑定多个IP地址去为多个虚拟主机服务。而且要使用这项功能还要确定在你的LINUX内核中必须支持IP别名的设置,否则你还必须重新编译内核。
下面举一个拥有两个虚拟主机的服务设置,以供参考。
2.配置步骤
假设,我们用来实现虚拟主机服务的机器,首先已经为自己提供了WEB服务,现在将为新的一家公司www.new1.com提供虚拟主机服务。
1)规划IP地址:为虚拟主机申请新的IP地址。(假设本机IP地址为192.166.1.101)
www.new1.com
192.16861.101
2) 让ISP作好相应的域名解析工作。
3) 为网卡设置IP别名:
/sbin/ifconfig eth0:0 192.166.1.101netmask 255.255.255.0
4)
重新设置"/etc/httpd/conf/httpd.conf",在文件中加入:
<VirtualHost 192.166.1.101>
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/www.new1.com
ServerName www.new1.com
ErrorLog /var/log/httpd/www.new1.com/error.log
</VirtualHost>
5)建立相应的目录。
mkdir /home/httpd/www.new1.com
mkdir /var/log/httpd/www.new1.com/error.log
6)将相应的主页内容存放在相应的目录中即可。
3.不利因素
这种虚拟主机的实现方法有一个严重的不足,那就是,每增加一个虚拟主机,就必须增加一个IP地址。而由于IP地址空间已经十分紧张,所以通常情况下是无法取得这么多的IP地址的。而且从某种意义上说,这也是一种IP地址浪费。设置实现基于名字的虚拟主机服务而基于名字的虚拟主机服务,是比较适合使用的一种方案。因为它不需要更多的IP地址,而且配置简单,无须什么特殊的软硬件支持。现代的浏览器大都支持这种虚拟主机的实现方法。当然,这也就是指一些早期的客户端浏览器也许不支持这种虚拟主机的实现方法。
正是以上原因,我们没有理由不使用基于名字的虚拟主机服务而使用基于IP地址的虚拟主机服务。配置基于名字的虚拟主机服务需要修改配置文件?quot;/etc/httpd/conf/httpd.conf",在这个配置文件中增加以下内容。
NameVirtualHost 192.166.1.101
<VirtualHost 192.166.1.101>
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/www.new1.com
ServerName www.new1.com
ErrorLog /var/log/httpd/www.company1.com/error.log
</VirtualHost>
<VirtualHost 192.166.1.101>
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/www.new2.com
ServerName www.new2.com
ErrorLog /var/log/httpd/www.new2.com/error.log
</VirtualHost>
也就是在基于IP地址的配置基础上增加一句:NameVirtualHost 192.166.1.101而已。在本例中,为了体现只需要增加一次,所以特别地设置了两个虚拟主机服务。
最后也是建立相应的目录,将主页内容放到相应的目录中去就可以了
配置CGI