【发布时间】:2013-08-06 01:05:15
【问题描述】:
所以,我在我的 apache 上设置了两个虚拟主机,现在我不能再通过 localhost 访问服务器了。 这是我的 vhosts.conf:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@serv.net.local
DocumentRoot "W:/www"
<Directory "W:/www/">
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
ServerName serv.net.local
ErrorLog "logs/serv.net.local-error.log"
CustomLog "logs/serv.net.local-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@symfony.net.local
DocumentRoot "W:/www/symfony/web"
<Directory "W:/www/symfony/web/">
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
ServerName symdev.net.local
ServerAlias symfony.net.local
ErrorLog "logs/symdev.net.local-error.log"
CustomLog "logs/symdev.net.local-access.log" common
</VirtualHost>
所有域都在我的主机文件中并且已正确解析。但我只能访问第二个 vHost 并在尝试访问 localhost 或 serv.net.local 时出现连接重置错误。与使用 127.0.0.1 相同...
任何想法这个配置有什么问题?
【问题讨论】:
-
检查日志,可能打开调试级别,检查 Listen 和 Port 指令的内容,或者是否在配置中的其他地方没有 NameVirtualHost。还有像 apache2ctl -t -D DUMP_VHOSTS 这样的命令来获取现有虚拟主机和默认虚拟主机的列表。一定是小事。还要检查对指定 DocumentRoot(s) 的访问。其他一些启用的虚拟主机模块可能但不太可能导致虚拟主机出现故障。问题也许应该移到 superuser.com 。您粘贴的部分配置看起来不错。
-
DUMP_VHOSTS 在它的列表中列出了 serv.net.local 和 symdev.net.local 并且也只有一个文件。一切似乎都很好。
-
如果您有“连接重置”,那么日志中肯定有一些内容,假设您检查的是纯虚拟主机,例如vhost DocumetRoot 下的 html 或文本文件,没有 CGI/FCGI 等。也许你禁用了 DirectoryIndex 并且没有放置 index.html 文件?
-
谢谢,DirectoryIndex 成功了。没想到。
-
为了避免进一步的警告,将“你好,这是here.i.am.domain.com”>> index.html放在空目录中很有用,所以你总是100%确定在哪里你是。
标签: apache apache2 virtualhost