如何在Apache 2.2上设置虚拟主机
问题描述:
任何人都可以指导我学习如何使用Apache 2.2设置虚拟主机吗?这是我的情况:如何在Apache 2.2上设置虚拟主机
我有我的笔记本电脑上运行的Apache,我想要两个网站 - 一个端口80和一个端口8089.我想从我的网络上的其他计算机访问每个网站通过输入计算机的IP地址,如http://192.168.1.102和http://192.168.1.102:8089。然而,当我输入第二个网址时,它会将我引导至运行在端口80上的网站。
在此先感谢您的任何帮助。
答
只要有这样的定义2台虚拟主机,但differeing DocumentRoots:
<VirtualHost *:80>
ServerAdmin [email protected]dummy-host.somecompany.com
DocumentRoot "/docs/dummy-host.somecompany.com"
ServerName dummy-host.somecompany.com
ServerAlias www.dummy-host.somecompany.com
ErrorLog "logs/dummy-host.somecompany.com-error.log"
CustomLog "logs/dummy-host.somecompany.com-access.log" common
</VirtualHost>
<VirtualHost *:8089>
ServerAdmin [email protected]
DocumentRoot "/docs/dummy-host.somecompany.com"
ServerName dummy-host.somecompany.com
ServerAlias www.dummy-host.somecompany.com
ErrorLog "logs/dummy-host.somecompany.com-error.log"
CustomLog "logs/dummy-host.somecompany.com-access.log" common
</VirtualHost>
答
首先,你需要指示Apache听你需要的端口:
Listen 80
Listen 8089
其次,你需要告诉它如何处理80和8089的流量:
<VirtualHost *:80>
DocumentRoot /website/site80
ServerName internet.dev
</VirtualHost>
<VirtualHost *:8089>
DocumentRoot /website/site8089
</VirtualHost>
第三你需要“allo w“Apache使用这些目录:
<Directory "C:/website/site80">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "C:/website/site8089">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
由于我没有任何主机名,我可以使用什么来获得以下属性 - 我的IP地址? ServerName dummy-host.somecompany.com ServerAlias www.dummy-host.somecompany.com – Cuga 2009-05-05 14:33:38
*真正重要的唯一事情就是DocumentRoot。我非常确定(虽然不确定),你可以省略所有其他声明,只需将浏览器指向http:// localhost:80或http:// localhost:8089,就可以从相应的文件中获取相应的文件DocumentRoot – PaulJWilliams 2009-05-05 14:57:41