服务器 11.10 上的子域名的子域名

服务器 11.10 上的子域名的子域名

我有一台服务器托管 mydomain.com。然后我还有一台服务器托管 subdomain1.mydomain.com。

在 subdomain1.mydomain.com 服务器上,如何创建子域名?例如,我想创建 subdomain2.subdomain1.mydomain.com

我的 subdomain1.mydomain.com 网站位于 /home/USER/public_html,运行正常。但是当我尝试创建 subdomain2.subdomain1.mydomain.com 时,它显示浏览器中未找到服务器。我在 /etc/hosts 和 /etc/apache2/sites-available/subdomain2.subdomain1.mydomain.com 中尝试了很多配置,但都失败了

我能得到一些详细的说明吗?我到处都找过了,每个地方的说明都不一样,但还是没找到。

Ubuntu Server 11.10 带有 Lamp Stack 选项

答案1

Apache 的配置

您需要的是 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

如果您正在运行虚拟机,DNS 可能是由您的托管商提供的,因此您可以与他讨论如何设置 DNS。

当然,您必须在 DNS 中设置子域名,使其指向此服务器。为此,您可以为每个子域名创建一个 A 记录或 CNAME 记录,并将其指向您的服务器。

你的绑定区域文件可能如下所示:

$TTL 2h

@       IN      SOA     dns1.example.com.      emailaddress.domain.com. (
                        2011120701  ; serial number YYMMDDNN
                        1h          ; Refresh
                        20m         ; Retry
                        2w          ; Expire
                        2h          ; Min TTL
            )

@               IN  NS      dns1.example.com. 
@               IN  NS      dns2.example.com. 

@               IN  MX      10 mx1.domain.com.
@               IN  MX      20 mx2.domain.com.
@               IN  A       999.999.999.999
subdomain       IN  A       666.666.666.666
proj1.subdomain IN  CNAME   subdomain
*.subdomain     IN  CNAME   subdomain

显然,您必须用您的域名替换 domain.com,用正确的 IP 替换 999.999... 和 666.666,更改 NS 和 MX 记录等。

查看绑定手册了解更多详情。

为了测试目的,您还可以在本地计算机上编辑 hosts 文件。这样,只有您的计算机才能将子域解析到此服务器,因此您可以检查一切是否正常,并且仅在一切正常时更改 DNS。


编辑: 如果您想要创建指向与子域名相同目录的“子子域名”,您可以在 Apache2 配置中的 ServerName 旁边添加一个 ServerAlias:

  ServerName subdomain.mydomain.ain
  ServerAlias proj.subdomain.mydomain.ain
  ServerAlias *.subdoamaind.mydomain.ain

DNS 配置与上图相同。

答案2

Lukas 是对的,但是以这种方式处理 Vhost 真的很麻烦。

你试过免费的网站管理软件吗?虽然我们是一个开发团队,但我们使用 Webmin (http://www.webmin.com/) 用于我们的 VHosts、Cron 作业和配置管理。

您还可以获取 CPanel &cie 的副本,但这些都是付费的,并且通常不会比免费的基于 Web 的面板给您带来更多的东西。

相关内容