Apache 虚拟主机无法运行

Apache 虚拟主机无法运行

我有一个 AWS 虚拟服务器,装有 ubuntu 14.04 和 apache 2.4.7。我有两个域名(假设 name1.com 和 name2.com),我希望它们都指向服务器的 IP,并且 apache 自动重定向到文件夹(假设为 /var/www/html/name1 和 /var/www/html/name2 )。

两个站点均可在http://ip-server/name1和下访问http://ip-server/name2

我按照通常的说明进行操作:在 中/etc/apache2/sites-available/ 复制000-default.conf001-name1.conf。这是文件的内容:

<VirtualHost *:80>
    ServerName name1.com
    ServerAlias www.name1.com
    DocumentRoot /var/www/html/name1
    LogLevel error
    ErrorLog ${APACHE_LOG_DIR}/name1.error.log
    CustomLog ${APACHE_LOG_DIR}/name1.access.log combined
</VirtualHost>

然后我用 激活它sudo a2ensite 001-name1.conf,并用 重新启动 apache sudo service apache2 restart

但是当我尝试(在新的私有模式浏览器中以避免缓存)时,它仍然将我重定向到apache 的http://name1.com缺陷。index.html

当我跑步时apache2ctl -S我得到:

VirtualHost configuration:
   *:80                   is a NameVirtualHost
     default server ip-x-x-x-x.eu-west-1.compute.internal (/etc/apache2/sites-enabled/000-default.conf:1)
     port 80 namevhost ip--x-x-x-x.eu-west-1.compute.internal (/etc/apache2/sites-enabled/000-default.conf:1)
     port 80 namevhost name1.com (/etc/apache2/sites-enabled/001-name1.conf:1)
             alias www.name1.com

日志是空的,所以我不知道还能做什么。有什么想法吗?

答案1

首先禁用默认网站 ( sudo a2dissite 000-default.conf)。如果您不在此提供内容,请将其删除。

站点的加载顺序很重要(这就是为什么默认站点以 000 为前缀)。默认站点将是第一个加载的 .conf(基于字母顺序)。如果您已ServerName在 default.conf 中设置,那么无论其后是哪个 vHost,它都会响应。

一旦您禁用默认站点,请退出 apache,如果它不起作用,请在下面发表评论。我们会尝试其他方法。

相关内容