添加子域所涉及的所有步骤

添加子域所涉及的所有步骤

我还没有找到一个用简单英语描述的、严格的答案来回答这个问题。

相关背景信息:我有一个 Drupal 6 网站。我们使用域模块为 11 个不同的域提供内容。一些域像 www.abc.com、www.def.com,一些像 sesl.mysite.com,似乎是 mysite.com 的子域。这些都有效。其他一些欧洲域在其服务器上指向我们的 mysite.com 域,因此一旦他们的 www.oursite.com 解析为 mysite.com,域访问模块就会解释并说:“在浏览器中保留 www.oursite.com,但从 www.mysite.com 的数据库中提供所有这些内容”。这些都只是信息。这些都没有问题。

我还没有发现的是,如果我添加一个新的子域名,例如 hr.mysite.com,我的 Apache2 服务器上是否有一个简单的文件,我需要在其中输入该新子域名才能使其正常工作....或者...是否还需要“DNS 管理”?我们在这里处理所有事情...这是一家托管我们自己网站的公司,如上所述,我们似乎有一些子域名,但我对我发现的所有信息感到沮丧,这些信息都是与“本地”玩弄的人打交道,而不是针对网络上“实时”服务器的说明。

我不确定我还需要在哪里或做什么才能让这个新的子域名正常工作。我继承了这个网站,是一名前端开发人员,而不是 IT 系统管理员/后端或服务器人员。

在我的 /etc/apache2/sites-available/default 文件中我有以下内容:

VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /data/drupal
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /data/drupal/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

这很令人困惑,因为我没有在任何地方看到我们的实际域名,也没有看到任何看起来像子域名的东西。

有人能给我指明正确的方向吗?

答案1

正如 Tom 所说,你需要两者兼而有之。但 Apache 配置取决于您希望新子域指向的位置。

如果你希望子域名指向你发布 apache 配置的站点,那么你需要添加

ServerAlias newsubdomain.example.com

这样 apache 就知道要使用哪个虚拟主机节。

如果您想将 newsubdomain.example.com 发送到新网站,那么您需要如下操作:

<VirtualHost *:80>
ServerName newsubdomain.example.com
DocumentRoot /some/location/for/your/site
ErrorLog /some/new/error/log/location/newsubdomain.example.com.error.log
</VirtualHost>

请注意,错误日志不是必需的,但我认为将日志分开保存是个好主意。如果您愿意,可以对访问日志进行类似操作。

然后,在您的 DNS 控制面板中,为 newsubdomain.example.com 创建一个指向您服务器的公共 IP 地址的新 A(或主机)记录。您可以从现有域中复制 IP 地址。

这被称为基于名称的虚拟主机 (NameBased VirtualHosts),您可以在此处阅读相关内容:http://httpd.apache.org/docs/current/vhosts/name-based.html

相关内容