我有一个运行 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/。打开它并查找与您的虚拟主机相关的任何内容。