|
来源:http://trac.seagullproject.org/wiki/Installation/SettingUpApacheVirtualHosts 如何在Apache上建立一个虚拟主机如果你之前没有操作过,不用怕,比你想像中的要容易,实际上只需要三个步骤. 定位http.conf文件通常可以在以下目录中找到 /etc/httpd/conf/httpd.conf 用您首选编辑器打开它,然后搜索'Virtual Hosts',通常会在接近文件末尾的一个section中找到,如下: ### Section 3: Virtual Hosts 启用name-based 虚拟主机这个简单的就像添加或注释一行 NameVirtualHost <your-IP>:80 如下这个实例, 本地配置: NameVirtualHost 127.0.0.1:80 远程配置: NameVirtualHost 123.123.123.123:80 设置第一个 catch-all 主机当请求你的服务器时,如果它们不匹配任何配置信息,那么默认将使用这些配置,你请求foo.your-domain.com 而它却还末安装。 接着我们的本地设置的例子,第一个虚拟主机看起来应该像这样: <VirtualHost localhost:80> ServerName localhost DocumentRoot /var/www/html </VirtualHost> 如果你的主机名称是'foobar',那就用'foobar'替代localhost。 设置你的虚拟主机和上面没有太大区别,只有一个地方不一样: <VirtualHost my_host:80> ServerName my_host DocumentRoot /var/www/html/my_site DirectoryIndex index.php </VirtualHost> 不同在于你给你的虚拟主机起的名称必须在你的hosts文件中体现。打开它来看一下: $ vi /etc/hosts 对于我们上面的例子,在本地主机上,你的文件应该是这样的: 127.0.0.1 localhost.localdomain localhost 127.0.0.1 my_host 注意DocumentRoot指令要指向你的网站的根目录。在seagull中应该是: /var/www/html/seagull/www 当然你也可以在虚拟主机容器里添加别的指令,请查看可用指令列表或实例以获得更多信息。 Gotchas初学者不要忘了重新启动web服务器来读入httpd.conf中新的配置信息。当然也要保证web服务器能够访问所有的文件,如果你碰到了Apache无法找到或不能读取指定的文件,它会自动重起。 |