在http-vhosts.conf中设置虚拟主机的信息,我的http-vhosts.conf文件如下:
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www
ServerName al.var
ServerAlias al.var 192.168.11.150 alvar
ErrorLog logs/alvar-error_log
CustomLog logs/alvar-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@al.www.com
DocumentRoot /mnt/win/www
ServerName al.www
ErrorLog logs/al.www-error_log
CustomLog logs/al.www-access_log common
<Directory /mnt/win/www/>
Options -Indexes FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
修改httpd.conf文件,将#Include etc/extra/httpd-vhosts.conf前面的#去掉。
重启apache.
如果你用的是linux则需要修改/etc/hosts,若为windows则需要修改windows/system32/drivers/etc/hosts文件,加入下面的行:
192.168.11.150 al.www
192.168.11.150 al.var
192.168.11.150 alvar
就可以在浏览器中输入,alwww,al.var,或alvar,访问到相应的虚拟主机,
后记:在我配置过程中,发现,httpd-vhost.conf中的DocumentRoot路径必须在httpd.conf中DocumentRoot路径的下面,否则在访问httpd-vhost.conf中设置的虚拟主机时就会现问题,不知道是什么原因,有知道的,希望不吝赐教!
用下面的虚拟主机设置不存在上面的问题。
73 <VirtualHost *:80>
74 ServerAdmin webmaster@dummy-host.example.com
75 DocumentRoot "/var/test"
76 ServerName test-vhost.com
77 serverAlias test-vhost.com
78 ErrorLog "logs/test-vhost.com-error_log"
79 CustomLog "logs/test-vhost.com-access_log" common
80 <Directory /var/test >
81 Options -Indexes FollowSymLinks
82 AllowOverride None
83 Order allow,deny
84 Allow from all
85 </Directory>
86 <IfModule dir_module>
87 DirectoryIndex index.html index.php index.htm
88 </IfModule>
89 </VirtualHost>