【问题标题】:Virtual host or something else?虚拟主机还是别的?
【发布时间】:2012-08-23 07:37:34
【问题描述】:

我想设置以下结构: staging.mydomain.com/client/projectname production.mydomain.com/client/projectname

对于新项目,我在 /home/-文件夹中创建以下文件夹:

  • “客户名”-文件夹
    • “项目名称”-文件夹
      • 暂存文件夹
      • 生产文件夹

我制作了一个我使用“a2ensite”启用的文件,包括下面显示的内容。

在“生产”和“暂存”方面与 clientA 一起工作正常,但当然 clientB 不会工作,因为它类似于被 clientA 覆盖,对吧?

<VirtualHost *:80> 
    ServerName www.mydomain.com 
    ServerAlias mydomain.com 
    DirectoryIndex index.html index.php 
    DocumentRoot /home/mysite 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName production.mydomain.com 
    ServerAlias production.mydomain.com 
    DirectoryIndex index.html index.php 
    DocumentRoot /home/clientA/projectA/production 
    Alias /clientA/projectA /home/clientA/projectA/production 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName staging.mydomain.com 
    ServerAlias staging.mydomain.com 
    DirectoryIndex index.html index.php 
    DocumentRoot /home/clientA/projectA/staging 
    Alias /clientA/projectA /home/clientA/projectA/staging 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName production.mydomain.com 
    ServerAlias production.mydomain.com 
    DirectoryIndex index.html index.php 
    DocumentRoot /home/clientB/projectA/production 
    Alias /clientB/projectA /home/clientB/projectA/production 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName staging.mydomain.com 
    ServerAlias staging.mydomain.com 
    DirectoryIndex index.html index.php 
    DocumentRoot /home/clientB/projectA/staging 
    Alias /clientB/projectA /home/clientB/projectA/staging 
</VirtualHost>

【问题讨论】:

    标签: apache virtualhost


    【解决方案1】:

    在“生产”和“暂存”方面与 clientA 一起工作正常,但当然 clientB 不会工作,因为它类似于被 clientA 覆盖,对吧?

    好吧,您为同一个服务器名定义了 2 个虚拟主机:

    <VirtualHost *:80> 
        ServerName staging.mydomain.com 
        ServerAlias staging.mydomain.com 
        DirectoryIndex index.html index.php 
        DocumentRoot /home/clientA/projectA/staging 
        Alias /clientA/projectA /home/clientA/projectA/staging 
    </VirtualHost> 
    

    <VirtualHost *:80> 
        ServerName staging.mydomain.com 
        ServerAlias staging.mydomain.com 
        DirectoryIndex index.html index.php 
        DocumentRoot /home/clientB/projectA/staging 
        Alias /clientB/projectA /home/clientB/projectA/staging 
    </VirtualHost>
    

    第二个将被忽略,因为您已经为服务器“staging.mydomain.com”和“production.mydomain.com”提供了一个虚拟主机

    当您定义这些虚拟主机并定义它们时,它所托管的 ServerName 称为“staging.mydomain.com”

    当您键入http://staging.mydomain.com/ 时,您希望它转到哪个虚拟主机?其中有 2 个声称托管该主机名。你必须给这些虚拟主机不同的名字。

    【讨论】:

    • 是的,我看到了这个问题。但是,如果我们只是将一个 vhost 用于暂存和一个用于生产,我如何使用它以便它与我的结构一起使用:staging.mydomain.com/clientA/projectA 指向 /clientA/projectA/staging,staging.mydomain.com/clientB/projectA 指向 /clientB/projectA等等....?
    • 没有人知道这件事吗?
    • @user1618992 你做到了,所以文档根目录是/home
    猜你喜欢
    • 1970-01-01
    • 2018-02-25
    • 2011-01-26
    • 2011-11-04
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多