多个网站,一个 Apache 服务器(如何)

多个网站,一个 Apache 服务器(如何)

我注册了多个域名。我想使用私有虚拟服务器上的单个 Apache 服务器托管它们。我知道这是可行的,只需更改 httpd.conf 和(可能是 /etc/hosts)即可,但我找不到任何有关如何实际执行此操作的信息。

有人能解释一下执行此操作所需的步骤吗?例如,假设我有以下可用的名称:

  • 示例1.com
  • example2.com
  • example3.com

我该如何设置 Apache 服务器以便它能提供来自上述域的页面?

顺便说一句,我在 Ubuntu Linux(Lucid Lynx [10.04 LTS])上运行 Apache 2.2。

答案1

答案2

编辑 apache 配置 => httpd.conf

添加以下几行:

#if you are listening in the port 80, enable the virtual host
NameVirtualHost *:80

#DocumentRoot is the folder where the actual web site resides, where the html and php files are.
#Directory => this instruction is for setting the permissions, de directory index, etc.

 <VirtualHost *:80>
    ServerAdmin [email protected]

    DocumentRoot "C:/mywebsites/example1"
    ServerName example1.com
    ServerAlias www.example1.com

    <Directory "C:/mywebsites/example1">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost> 

 <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/mywebsites/example2"
    ServerName example2.com
    ServerAlias www.example2.com

    <Directory "C:/mywebsites/example2">
        DirectoryIndex index.html
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost> 

 <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/mywebsites/example3"
    ServerName example3.com
    ServerAlias www.example3.com

    <Directory "C:/mywebsites/example3">
        DirectoryIndex default.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost> 

您可能已经意识到,我运行的是 Windows,但 Unix 也一样。有关更多信息,请阅读 Apache 配置中的 DocumentRoot、VirtualHost 和 Directory 指令。

所有这些的作用是,如果有人向 apache 服务器请求 example2.com,Apache 将使用 index.html 作为索引来处理来自 C:/mywebsites/example2 的请求。但需要询问 apache(要有礼貌……)我的意思是,您必须更改您的 dns 以将此网站指向 apache 正在监听的 NIC IP 地址。

在我的计算机 Windows 中,我使用主机文件,如下所示:

example1.com     127.0.0.1
www.example1.com     127.0.0.1
example2.com     127.0.0.1
www.example2.com     127.0.0.1

因为我已经在 httpd.conf 中设置了这个指令

Listen  80

问候

亚历克斯

相关内容