Apache 无法以 2 个或更多 VirtualHosts 启动

Apache 无法以 2 个或更多 VirtualHosts 启动

我有一个运行 Ubuntu 10.04 的 OpenVZ VPS,以及标准安装的 Apache2、PHP 等。我试图设置多个基于主机名的 VHost,以允许我的所有用户访问一些网络空间,但是当我在 httpd.conf 中定义多个 VirtualHost 条目时,Apache 将无法启动。使用“service apache2 start”报告失败,“apache2ctl start”运行良好,但完成后 apache 并未运行。

目前,我只想让 2 个 VHost 工作,一个真实域名和一个类似的 No-IP 子域。这是我的 httpd.conf:

NameVirtualHost *:80
Listen 80

<VirtualHost *:80>
  ServerName domainname.com
  ServerAlias *.domainname.com
  DocumentRoot /home/user1/www-pub
  LogFormat "%h %l %u %t \"%r\" %>s %b" common
  CustomLog /home/user1/logs/access.log common
  ErrorLog /home/user1/logs/error.log
</VirtualHost>

<VirtualHost domain.servegame.com:80>
  ServerName domain.servegame.com
  DocumentRoot /home/user2/www-pub
  LogFormat "%h %l %u %t \"%r\" %>s %b" common
  CustomLog /home/user2/logs/access.log common
  ErrorLog /home/user2/logs/error.log
</VirtualHost>

我是不是漏掉了什么?我查看了文档,据我所知,一切都应该正常工作。

答案1

apache2ctl configtest 会告诉你为什么它不起作用。

我的猜测是你无法解析 domain.servegame.com,或者它解析为未与你的电脑网卡绑定的 IP,但这只是猜测,发布 configtest 的输出,我们应该能够更好地提供帮助...

如果你只做基于名称的虚拟托管,那么更改

<VirtualHost domain.servegame.com:80>

<VirtualHost *:80>

这将告诉 apache 监听所有 IP。

您还应该检查错误日志,默认情况下它位于 /var/log/apache2/。打开它并查找与您的虚拟主机相关的任何内容。

相关内容