2009-05-05 52 views
4

任何人都可以指导我学习如何使用Apache 2.2设置虚拟主机吗?这是我的情况:如何在Apache 2.2上设置虚拟主机

我有我的笔记本电脑上运行的Apache,我想要两个网站 - 一个端口80和一个端口8089.我想从我的网络上的其他计算机访问每个网站通过输入计算机的IP地址,如http://192.168.1.102http://192.168.1.102:8089。然而,当我输入第二个网址时,它会将我引导至运行在端口80上的网站。

在此先感谢您的任何帮助。

回答

1

只要有这样的定义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> 
+0

由于我没有任何主机名,我可以使用什么来获得以下属性 - 我的IP地址? ServerName dummy-host.somecompany.com ServerAlias www.dummy-host.somecompany.com – Cuga 2009-05-05 14:33:38

+0

*真正重要的唯一事情就是DocumentRoot。我非常确定(虽然不确定),你可以省略所有其他声明,只需将浏览器指向http:// localhost:80或http:// localhost:8089,就可以从相应的文件中获取相应的文件DocumentRoot – PaulJWilliams 2009-05-05 14:57:41

4

首先,你需要指示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>