我在互联网上有一台专用的 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