我想使用虚拟主机设置子域。我已按如下方式更改了 httpd.conf 文件,但尝试访问 URL 时出现“找不到服务器”错误。我运行的是 Centos 5.5。
NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
<VirtualHost *:80>
ServerName www.mydomain.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/vhosts/test_mydomain_com/"
ServerName test.mydomain.com
ErrorLog logs/test_mydomain_com-error_log
CustomLog logs/test_mydomain_com-access_log common
</VirtualHost>
我有:
- 通过“service httpd configtest”检查语法是否有效
- 重新启动Apache
- 检查上面描述的 DocumentRoot 确实到达了子域中含有 index.php 文件的文件夹。
令我惊讶的是,尽管它找不到子域名,但它并没有被路由到 www.mydomain.com 区域,因为我认为我已经使用第一个虚拟主机语句对它进行了设置。
我正在尝试通过以下方式访问子域:
http://test.mydomain.com
我是否需要对 DNS 设置进行任何操作(并因此了解相关内容)才能实现我在此想要的效果?这可能是哪里出了问题吗?
答案1
您需要在 DNS 服务器中添加 A 记录或 CNAME 记录才能使其正常工作。听起来您没有。您可以通过发帖来确认host test.mydomain.com
。
如果你回来的话:
Host test.mydomain.com not found: 3(NXDOMAIN)
那么这就是你的问题。
为 test.mydomain.com 添加 A 记录(主机名 -> IP)或 CNAME(主机名 -> 主机名),然后您就可以开始工作了。
答案2
如果您收到“未找到服务器”错误,那么这很可能是 DNS 问题,而不是 apache 问题。
您是否为新的子域名创建了 DNS 记录?