如何在Apache 2.2上设置虚拟主机

时间:2021-01-30 16:53:36

Can anyone direct me to a good tutorial on how to set up virtual hosts using Apache 2.2? Here's my situation:

谁能指导我一个关于如何使用Apache 2.2设置虚拟主机的好教程?这是我的情况:

I have Apache running on my laptop and I want two websites-- one on port 80 and one on port 8089. I want to access each site from the other computer on my network by entering the computer's IP address, such as http://192.168.1.102 and http://192.168.1.102:8089. Yet when I enter the second url, it directs me to the website running on port 80.

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

Thanks in advance for any help.

在此先感谢您的帮助。

2 个解决方案

#1


Just have 2 virtual hosts defined like this, but with differeing DocumentRoots:

只需要像这样定义2个虚拟主机,但使用不同的DocumentRoots:

<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


First you need to instruct Apache to listen on the ports you need:

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

Listen 80
Listen 8089

Second you need to tell it what to do with 80 and 8089 traffic:

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

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

<VirtualHost *:8089>
    DocumentRoot /website/site8089
</VirtualHost>

Third you need to "allow" Apache to use those directories:

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

#1


Just have 2 virtual hosts defined like this, but with differeing DocumentRoots:

只需要像这样定义2个虚拟主机,但使用不同的DocumentRoots:

<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


First you need to instruct Apache to listen on the ports you need:

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

Listen 80
Listen 8089

Second you need to tell it what to do with 80 and 8089 traffic:

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

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

<VirtualHost *:8089>
    DocumentRoot /website/site8089
</VirtualHost>

Third you need to "allow" Apache to use those directories:

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