代码之家  ›  专栏  ›  技术社区  ›  Cuga

如何在Apache2.2上设置虚拟主机

  •  4
  • Cuga  · 技术社区  · 15 年前

    有人能教我如何使用Apache2.2建立虚拟主机吗?我的情况是:

    我的笔记本电脑上运行着Apache,我想要两个网站——一个在80端口,一个在8089端口。我想通过输入计算机的IP地址从网络上的另一台计算机访问每个站点,例如 http://192.168.1.102 http://192.168.1.102:8089 . 然而,当我输入第二个URL时,它会将我指向运行在端口80上的网站。

    事先谢谢你的帮助。

    2 回复  |  直到 13 年前
        1
  •  1
  •   pauljwilliams    15 年前

    只有两个这样定义的虚拟主机,但具有不同的文档根:

    <VirtualHost *:80>
        ServerAdmin webmaster@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 webmaster@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>
    
        2
  •  4
  •   jeremyasnyder    15 年前

    首先,您需要指示Apache监听您需要的端口:

    Listen 80
    Listen 8089
    

    其次,您需要告诉它如何处理80和8089流量:

    <VirtualHost *:80>
        DocumentRoot /website/site80
        ServerName internet.dev
    </VirtualHost>
    
    <VirtualHost *:8089>
        DocumentRoot /website/site8089
    </VirtualHost>
    

    第三,您需要“允许”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>