我在Linode VPS上使用Ubuntu 10.04和Apache2.2 – 我试图创buildmysite.com的子域sub.mysite.com。 我已经添加了这个条目到/ etc / apache2 / sites-enabled:
<VirtualHost *:80> ServerAdmin [email protected] ServerName mysite.com ServerAlias sub.mysite.com DocumentRoot /srv/www/sub.mysite.com/public_html/ ErrorLog /srv/www/sub.mysite.com/logs/error.log CustomLog /srv/www/sub.mysite.com/logs/access.log combined </VirtualHost>
和这行到/ etc / hosts:
127.0.0.1 sub.mysite.com
并创build一个DNS区域文件指向sub.mysite.com …
我可以成功地ping sub.mysite.com,但不能得到index.html加载在我的浏览器…
有任何想法吗?
由于您使用的是虚拟主机,请务必在您的主要虚拟主机容器之前放置此子域容器。 先来的东西胜过后来的任何东西,所以如果你的文件看起来像这样,它将不起作用:
<virtualHost *:80> {snip} ServerAlias *.mysite.com DocumentRoot /srv/www/mysite.com/public_html/ {snip} </virtualHost> <VirtualHost *:80> {snip} ServerAlias sub.mysite.com DocumentRoot /srv/www/sub.mysite.com/public_html/ {snip} </VirtualHost>
合理? 你必须翻转它们,这样我的例子中的第二个VirtualHost容器是第一个。 如果这不是问题,而且已经完成了,那么请检查Apache错误日志(实际上,这应该是您的第一步,无论如何)。
另外,确保文件权限是正确的。
确保你的configuration文件中有NameVirtualHost *:80 。 Debian在默认configuration文件/etc/apache2/ports.conf添加了它(我想Ubuntu也是这样做的)。 然后用apache2ctl -S作为根用户debugging你的vhostconfiguration,它会给你一个正确configuration的虚拟主机列表。 输出应该与此类似
VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server usually-default-hostname (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost sub.mysite.com (/etc/apache2/sites-enabled/your-config:1)
如果你的虚拟主机没有在这里列出,那就是为什么你不能浏览它(确保在浏览之前你已经用/etc/init.d/apache2 reload加载了apacheconfiguration)。
在这里看到完整的说明,以在Debian / Ubuntu下安装Apache的虚拟主机