Apache 虚拟主机还是别的什么?

Apache 虚拟主机还是别的什么?,apache,virtualhost,Apache,Virtualhost,我想建立以下结构: staging.mydomain.com/client/projectname production.mydomain.com/client/projectname 对于新项目,我在my/home/-文件夹中创建以下文件夹: “clientname”-文件夹 “项目名称”-文件夹 暂存文件夹 生产文件夹 我制作了一个文件,我启用了“a2ensite”,包括下面显示的内容 在“生产”和“登台”方面,它与clientA配合得很好,但是clientB当然不会工作,因为它

我想建立以下结构: staging.mydomain.com/client/projectname production.mydomain.com/client/projectname

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

  • “clientname”-文件夹
    • “项目名称”-文件夹
      • 暂存文件夹
      • 生产文件夹
我制作了一个文件,我启用了“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>

服务器名www.mydomain.com
ServerAlias mydomain.com
DirectoryIndex.html index.php
DocumentRoot/home/mysite
ServerName production.mydomain.com
ServerAlias production.mydomain.com
DirectoryIndex.html index.php
DocumentRoot/home/clientA/projectA/production
别名/clientA/projectA/home/clientA/projectA/production
ServerName staging.mydomain.com
ServerAlias staging.mydomain.com
DirectoryIndex.html index.php
DocumentRoot/home/clientA/projectA/staging
别名/clientA/projectA/home/clientA/projectA/staging
ServerName production.mydomain.com
ServerAlias production.mydomain.com
DirectoryIndex.html index.php
DocumentRoot/home/clientB/projectA/production
别名/clientB/projectA/home/clientB/projectA/production
ServerName staging.mydomain.com
ServerAlias staging.mydomain.com
DirectoryIndex.html index.php
DocumentRoot/home/clientB/projectA/staging
别名/clientB/projectA/home/clientB/projectA/staging
在“生产”和“登台”方面,它与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>
那么,您为同一服务器名定义了两个vhost:

<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> 

ServerName staging.mydomain.com
ServerAlias staging.mydomain.com
DirectoryIndex.html index.php
DocumentRoot/home/clientA/projectA/staging
别名/clientA/projectA/home/clientA/projectA/staging


ServerName staging.mydomain.com
ServerAlias staging.mydomain.com
DirectoryIndex.html index.php
DocumentRoot/home/clientB/projectA/staging
别名/clientB/projectA/home/clientB/projectA/staging
第二个将被忽略,因为您已经为服务器“staging.mydomain.com”和“production.mydomain.com”设置了vhost

当您定义这些vhost,并将它们定义为它承载的
ServerName
称为“staging.mydomain.com”


当您键入
http://staging.mydomain.com/
,您希望它转到哪个vhost?其中有两个主机声称拥有该主机名。您必须给这些vhost不同的名称。

是的,我看到了这个问题。但是,如果我们只放一个vhost用于暂存,一个用于生产,我如何使用它使其与我的结构一起工作:指向/clientA/projectA/staging,指向/clientB/projectA等等……?没有人对此有线索吗?@user1618992您这样做,文档根是
/home