在专用 Linux 机器上设置子域名

在专用 Linux 机器上设置子域名

我在互联网上有一台专用的 Linux 机器,我希望能够直接访问子域,例如:

http://abcd.example.com

我已经设置 httpd.conf 如下:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.example.com
  DocumentRoot /var/www/html/
</VirtualHost>

<VirtualHost *:80>
  ServerName david.example.com
  DocumentRoot /home/david/public_html
</VirtualHost>

<VirtualHost *:80>
  ServerName matthew.example.com
  DocumentRoot /home/matthew/public_html
</VirtualHost>

但子域名无法访问。我需要在 /etc/hosts 中做哪些更改(如果有的话)?我尝试过:

127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
99.99.99.99 vps.example.com vps david.example.com matthew.example.com

127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
99.99.99.99 vps.example.com vps
99.99.99.99 david.example.com david
99.99.99.99 matthew.example.com matthew

但都没有奏效。


问题 1:我需要更改任何 DNS 设置吗?

Q2:我需要对 /home 或 /home/[user] 设置一些特殊权限吗?

答案1

我假设“但子域名无法访问”是指无法远程访问它们。如果是这样,那么将它们添加到/etc/hosts将无济于事,因为/etc/hosts只会覆盖本地主机名查找。如果您希望子域名可以从互联网访问,则需要将它们添加到您的域名的 DNS 中。您的托管服务提供商应该能够帮助您完成此操作。

答案2

请与您的托管服务提供商核实,或者如果您有权访问您的域名面板,请创建所需的子域名,并将您机器的 IP 地址映射到所有虚拟主机的 A 记录中,以便子域名指向您的服务器,并且 apache 将通过您的虚拟主机配置访问所需的页面。

祝你好运!!

:D

相关内容