Ubuntu 服务器上的多级子域名

Ubuntu 服务器上的多级子域名

这里有一个与我的开发服务器配置(安装了 LAMP 的 Ubuntu 服务器)相关的问题

我有一个指向我的服务器的子域名,例如http://sudomain.domain.com

现在我需要在我的服务器上创建一些子域,每个域都指向服务器上的单独文件夹 /var/www/proj1 应该通过访问来加载http://proj1.subdomain.domain.comhttp://proj2.subdomain.domain.com

有人能帮我解决这个问题吗?任何帮助我都会很感激。

答案1

您需要的是 Apache VirtualHost 指令。请参阅Apache 文档还有一些例子

基本上,您想要在 Ubuntu 中执行的操作是确保您要使用的端口(通常为:80)已在 /etc/apache2/ports.conf 中启用,如下所示:

NameVirtualHost *:80
Listen 80

接下来,您必须在 /etc/apache2/sites-available 中创建一个新的 conf 文件。我建议将其命名为 proj1.conf 或 proj1.mydomain.conf。

您可以在那里按如下方式配置 VirtualHost:

<VirtualHost *:80>
  ServerName proj1.subdomain.domain.com
  DocumentRoot /var/www/proj1
  ServerAdmin [email protected]

  # Write a seperate log per Virtualhost
  CustomLog /var/log/apache2/proj1.subdomain.access_log combined
  ErrorLog /var/log/apache2/proj1.subdomain.error_log

  # Maybe you want to put some restrictions on the directory
  <Directory /var/www/proj1>
    Options -Indexes +FollowSymLinks + Includes
    AllowOverride All
    # Restrict Access to certain IP's
    Order Deny,Allow
    Deny from All
    Allow from 127.0.0.1 IP IP IP
    Satisfy ALL
  </Directory>
</VirtualHost>

查阅 Apache 手册来了解可以使用该指令做什么。

要启用此站点,请将其链接到 /etc/apache2/sites-enabled

ln -s /etc/apache2/sites-available/proj1.conf /etc/apache2/sites-enabled/proj1

现在您要做的就是确保您的配置有效,然后重新启动 Apache:

apache2ctl configtest && /etc/init.d/apache2 restart

当然,您必须在 DNS 中设置子域名,以使其指向该服务器。

相关内容