Apache2子域?

Apache2子域?,apache,Apache,我一直在寻找有关如何做到这一点的文章,但我发现任何详细和直接的指示。我知道有很多与此相关的信息,但也许我只是没有寻找正确的东西 在我的域名控制面板中,我添加了blog.domain.com以转到我的Web服务器的IP地址。但是,在Apache的配置中,我希望能够将blog.domain.com定向到某个文件夹 我需要修改什么文件,需要向其中添加什么?您正在查找NameVirtualHost。我一直在使用它&它工作得很好 目前还不清楚您使用的是什么操作系统,但一般来说,您需要首先激活所需端口的Na

我一直在寻找有关如何做到这一点的文章,但我发现任何详细和直接的指示。我知道有很多与此相关的信息,但也许我只是没有寻找正确的东西

在我的域名控制面板中,我添加了
blog.domain.com
以转到我的Web服务器的IP地址。但是,在Apache的配置中,我希望能够将
blog.domain.com
定向到某个文件夹


我需要修改什么文件,需要向其中添加什么?

您正在查找
NameVirtualHost
。我一直在使用它&它工作得很好

目前还不清楚您使用的是什么操作系统,但一般来说,您需要首先激活所需端口的
NameVirtualHost
。我假设您将使用端口80,因此请在Apache配置和设置中找到这一行:

NameVirtualHost *:80
确保您的Apache配置设置为list到端口80。应为这种情况,但在此添加以供参考:

Listen 80
那么对于你的子域,这里就是魔法发生的地方。同样,我只是在做一些基本的工作,因此请根据您的服务器设置进行调整:

<VirtualHost *:80>
  ServerName blog.domain.com
  ServerAlias blog.domain.com

  DocumentRoot /var/www/blog.domain.com

</VirtualHost>
并将上面的
VirtualHost
内容添加到新的
blog.domain.com.conf
文件中。当然,要确保您的
VirtualHost
指令符合您的要求;我的只是一个简单的例子

现在,如果这样做了,您需要创建一个从
可用站点
启用站点
的符号链接,如下所示:

sudo ln -s /etc/apache2/sites-available/blog.domain.com.conf /etc/apache2/sites-enabled/blog.domain.com.conf
好了,一切都结束了?由于您的Apache2配置布局与我使用过的Ubuntu 12.04服务器相似,请查看此文件中是否设置了
NameVirtualHost

sudo nano /etc/apache2/ports.conf
您应该看到这样的两行:

NameVirtualHost *:80
Listen 80
好了,准备好了吗?现在,重新启动Apache&应该设置好了

如果要测试,请在文档根目录中为包含此行的子域创建一个测试文件;我假设您可以使用PHP:

<?php
echo $_SERVER['SERVER_NAME'];
?>


如果一切正常,它应该回显为其设置目录的主机的子域:
blog.domain.com
您正在查找的
NameVirtualHost
。我一直在使用它&它工作得很好

目前还不清楚您使用的是什么操作系统,但一般来说,您需要首先激活所需端口的
NameVirtualHost
。我假设您将使用端口80,因此请在Apache配置和设置中找到这一行:

NameVirtualHost *:80
确保您的Apache配置设置为list到端口80。应为这种情况,但在此添加以供参考:

Listen 80
那么对于你的子域,这里就是魔法发生的地方。同样,我只是在做一些基本的工作,因此请根据您的服务器设置进行调整:

<VirtualHost *:80>
  ServerName blog.domain.com
  ServerAlias blog.domain.com

  DocumentRoot /var/www/blog.domain.com

</VirtualHost>
并将上面的
VirtualHost
内容添加到新的
blog.domain.com.conf
文件中。当然,要确保您的
VirtualHost
指令符合您的要求;我的只是一个简单的例子

现在,如果这样做了,您需要创建一个从
可用站点
启用站点
的符号链接,如下所示:

sudo ln -s /etc/apache2/sites-available/blog.domain.com.conf /etc/apache2/sites-enabled/blog.domain.com.conf
好了,一切都结束了?由于您的Apache2配置布局与我使用过的Ubuntu 12.04服务器相似,请查看此文件中是否设置了
NameVirtualHost

sudo nano /etc/apache2/ports.conf
您应该看到这样的两行:

NameVirtualHost *:80
Listen 80
好了,准备好了吗?现在,重新启动Apache&应该设置好了

如果要测试,请在文档根目录中为包含此行的子域创建一个测试文件;我假设您可以使用PHP:

<?php
echo $_SERVER['SERVER_NAME'];
?>


如果一切正常,它应该回显为其设置目录的主机的子域:
blog.domain.com

非常感谢Jake!为了确保我在正确的文件中,我们讨论的是/etc/apache2/sites available/default吗?另外,既然已经有了一个部分,我是否需要添加一个包含该信息的额外部分?扩展了我的答案。基本上,
default
文件应该单独保存。这是一个示例文件。如果您想添加更多虚拟主机,最好添加具有每个虚拟主机特定指令的新文件。使管理更容易。我的意思是,您可以将其全部转储到
default
中,但过一段时间后,您将有成堆的指令&可能会感到困惑。总是最好隔离配置。非常感谢你。还有一个简短的问题。至于我的域名设置,我需要添加/修改什么?比如,目前,我只是将它配置为blog.domainname.com将进入我的VPS的IP地址,我想也许apache上的配置将处理其余的问题。我对这一点的看法很可能是错误的。@Lewlsause你没有错。你是100%正确的。就域名设置而言,您不必做任何事情。Apache在使用
NameVirtualHost
时执行所有路由。所以你可以拥有5个任意类型的域名。不仅仅是子域。只需将它们指向相同的IP地址。剩下的部分现在由Apache负责通过
NameVirtualHost
进行路由,就这样。嗯,明白了。我想我可能还是遗漏了一些东西。因此,我的域名设置被配置为将blog.domain.com路由到我的VPS的IP地址,我在上面做了这些更改,但当我转到blog.mydomain.com时,它仍然会转到根web服务器的目录。还确保我重新启动了Apache。谢谢你,杰克!为了确保我在正确的文件中,我们讨论的是/etc/apache2/sites available/default吗?另外,既然已经有了一个部分,我是否需要添加一个包含该信息的额外部分?扩展了我的答案。基本上,
default
文件应该单独保存。这是一个示例文件。如果您想添加更多虚拟主机,最好添加具有每个虚拟主机特定指令的新文件。使管理更容易。我的意思是,你可以将它全部转储到
default
中,但过一段时间你就会有成堆的数据