apache|服务器|高级
三、 虚拟主机(Virtual Host)的设置
作为系统管理员,若你只有一个IP地址,却有好几个域名,又要求访问每个域名都要看到不同的内容,那怎么办?总不至于为每个域名都配上一台服务器吧。这就要采用虚拟主机(Virtual Host)技术,幸好Apache就支持这种功能。虚拟主机有两种方式:IP-Based(基于IP式)、Name-based(基于域名式)。IP-Based指的是一个域名对应一个IP地址,而Name-based指的是多个域名对应一个IP地址。
虚拟主机的设置并不复杂,只要在httpd.conf文件中加入相应的命令就行。
下面是一个Name-based(基于域名式)虚拟主机的httpd.conf例子(编者注:因篇幅原因,我们这只给出了相关部分,全文见www.swm.com.cn)。IP为:192.168.188.20,两个域名分别是long.com.cn、short.com.cn。
httpd.conf:
NameVirtualHost 192.168.188.20
ServerAdmin webmaster@long.com
ServerName www.long.com
DocumentRoot /home/httpd/long/html
ErrorLog logs/error_log
TransferLog logs/access_log
ServerAdmin webmaster@short.com
ServerName www.short.com
DocumentRoot /home/httpd/short/html
ErrorLog logs/short.com-error_log
TransferLog logs/short.com-access_log
NameVirtualHost命令指定在哪个IP上设置虚拟主机
在VirtualHost命令中进行各个主机的具体设置。
ServerAdmin命令是设定当WWW Server执行有问题时,会将ServerAdmin所设置的E-mail传送到浏览器,让使用者用该E-mail与系统管理员联系。
ServerName命令是设置WWW Server的域名。
四、 提供个人主页空间、用户homepage的设定
经常见到某些网站提供个人主页,显得很神气,其实你也可以开放你机器上的空间给别人,这很简单就能实现。只要你按照下面的提示对你的WWW服务器配置文件进行修改。
给用户开放个人主页空间,一是要确定用户主页的存放目录,二是开放用户主页目录的读取权限。
方法一
你以root的身份给用户chen开个帐号,系统自动会给chen分配一空间/home/user,而后在/home/chen的目录下建一public_html的子目录,子目录的属性要设成other可读和可执行的。
接着修改access.conf。在文件的最后加上以下一段:
AllowOverride None
order allow,deny
allow from all
而后,重新运行httpd,用户就可以通过http://www.swm.com.cn/~chen/访问chen的个人主页。
这种方法的优点是方便,缺点是安全性太差。
方法二
另一种办法是在/home/httpd目录下为用户chen建个目录chen。修改srm.conf中的UserDir为/home/httpd/*/html,接着重新运行httpd便可以了。