我有各种虚拟主机用于我的网络开发工作,包括
cnm。这
sites-available/cnm
我的文件说得很简单:
<VirtualHost *:80>
ServerName cnm
DocumentRoot /var/www/cnm/public_html
</VirtualHost>
我升级到 Ubuntu 13.10,当我将浏览器指向 cnm/ 时,我看到
/var/www/index.html 文件似乎在默认文件中指示
sites-available/000-default.conf
其中说(除其他外):
<VirtualHost *:80>
DocumentRoot /var/www
当我浏览到 cnm/ 时,我需要做什么才能让 Apache 读取我的 cnm 文档根目录?
NOTES:
我已经尝试将站点可用/cnm 文件重命名为站点可用/cnm.conf 并启用它a2ensite cnm
and service apache2 reload
。这是一件好事,但它不会改变任何事情。
我已经尝试过改变<VirtualHost *:80>
to <VirtualHost cnm.localhost>
or to <VirtualHost cnm>
。那什么也没做。
Ubuntu 13.10使用apache2.4,您应该检查所有 apache 配置。但对于目前的情况,您应该注意的是a2ensite
and a2dissite
如果命令不以以下结尾,则将无法在 /etc/apache2/sites-available 中看到您的文件.conf
,所以将其重命名为sites-available/cnm.conf
并运行a2ensite cnm
.
那么你的虚拟主机定义肯定更好*:80
,这意味着该虚拟主机已为所有 IP 接口激活(*
)在端口 80 上。cnm.localhost
or cnm
这里不是有效值,只有 IP 数字(您的 apache 服务器的 Ip)或*
对于所有人,以及端口号。
然后检查 apache 如何读取配置,运行这些命令:
# load apache env
# be careful, there is a dot and a space
. /etc/apache2/envvars
# Check apache Virtualhosts config
apache2 -S
你应该得到类似的东西:
VirtualHost configuration:
*:80 is a NameVirtualHost
default server something (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost something (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost cnm (/etc/apache2/sites-enabled/cnm.conf:4)
如果没问题,并且您的主机文件中有正确的 Ipcnm
,你可以用 ping 来测试,然后使用http://cnm/
应该使用具有cnm的虚拟主机服务器名称.
如果您从默认虚拟主机得到答案,则意味着 apache 在可用于该 IP/端口的 ServerName 和 ServerAlias 列表中找不到主机标头中使用的名称,并回退到默认虚拟主机。如果您确实遇到困难(并且您没有忘记重新启动),您可以随时删除默认虚拟主机并仅保留您正在使用的虚拟主机。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)