Ubuntu服务器Apache虚拟主机配置失效问题求助
解决Apache2虚拟主机多域名指向同一站点的问题
我之前也碰到过一模一样的情况,明明配置了两个虚拟主机文件,结果访问两个域名都跳去同一个站点,大概率是几个细节没处理到位,咱们一步步排查解决:
确认虚拟主机的域名标识是否正确
每个.conf配置文件里必须明确指定ServerName,这是Apache区分不同站点的核心。比如:- 在
levsite.nl.conf里要写:ServerName levsite.nl ServerAlias www.levsite.nl # 如果需要支持www前缀的话加上 DocumentRoot /var/www/levsite.nl - 在
informaticaproject.nl.conf里对应写:ServerName informaticaproject.nl ServerAlias www.informaticaproject.nl DocumentRoot /var/www/informaticaproject.nl
要是
ServerName写错或者没设置,Apache会把请求默认导向第一个加载的站点,这就是你碰到的情况。- 在
检查配置文件是否被正确启用
Apache不会自动加载sites-available目录下的配置,得手动启用:sudo a2ensite levsite.nl.conf sudo a2ensite informaticaproject.nl.conf另外别忘了禁用默认的
000-default.conf,它可能会抢占所有未匹配的请求:sudo a2dissite 000-default.conf验证配置语法是否合法
哪怕一个小拼写错误,都会导致Apache忽略整个配置文件,用这个命令检查:sudo apache2ctl configtest只有输出
Syntax OK才说明配置没问题,要是报错就跟着提示修改对应的行。确保站点目录权限正确
Apache的运行用户(通常是www-data)需要能读取站点文件,给两个目录设置正确权限:sudo chown -R www-data:www-data /var/www/levsite.nl sudo chmod -R 755 /var/www/levsite.nl sudo chown -R www-data:www-data /var/www/informaticaproject.nl sudo chmod -R 755 /var/www/informaticaproject.nl重启Apache让配置生效
所有修改完成后,必须重启服务才能生效:sudo systemctl restart apache2清除浏览器缓存测试
有时候浏览器会缓存旧的跳转记录,导致测试结果不准,建议用匿名窗口访问两个域名,或者清除浏览器缓存后再试。
内容的提问来源于stack exchange,提问作者lmiv
相关产品推荐
相关产品推荐

