我正在尝试在我的 ec2 账户上设置一个子域,但不知道发生了什么。我找了几个小时,还是没能找到答案 :-/
我正在尝试使用虚拟主机设置子域名,但无论我如何尝试,浏览器都找不到子域名 :-(
我已经设置了以下 vhosts 文件:
apache2/站点可用/mysite(此网站目前有效)
<VirtualHost *:80>
ServerName mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /home/sites/mysite
<Directory /home/sites/mysite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/mysite-access.log combined
</VirtualHost>
apache2/站点可用/红色(这是我尝试设置的子域名)
<VirtualHost *:80>
ServerName red.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/red
<Directory /var/www/red>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/red-error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/red-access.log combined
</VirtualHost>
Apache mod_rewrite 已启用。
我已经使用 a2ensite 启用了两个站点,并确保每次进行更改时都重新启动 apache。
/etc/hosts
127.0.0.1 localhost
127.0.0.1 mysite.com
127.0.0.1 red.mysite.com
任何帮助,将不胜感激。
谢谢!
答案1
如何调试所有类似的错误:
1)确保域名 red.whatever.com 指向正确的 IP
怎么做?使用 Linux/OSX 上的 DIG 等工具,或求助于在线工具。
在这种情况下浏览器报告的常见错误是 COULD NOT FIND DOMAIN...
2)如果 IP 正确,请检查两个 Apache 日志(error.log 和 access.log)
如果这些日志中没有信息,请检查您的防火墙,查看端口 80 是否打开。
在这种情况下,浏览器报告的常见错误是无法连接……
3)IP 正确,端口开放,但 Apache 未提供您期望的内容
日志文件将提供问题的解决方案
浏览器将显示服务器发送的 404 或类似的 http 错误...
编辑: 从您的评论来看,您的问题出在第一个。
答案2
NameVirtualHost
指令(例如)是否NameVirtualHost *:80
出现在配置文件中的虚拟主机部分之前?如果没有,所有请求都将转到第一个虚拟主机。