我目前正在使用CentOS 7(https://aws.amazon.com/marketplace/pp/B00O7WM7QW)并将其设置为MariaDB 5.5.44,PHP 5.6.18和Apache 2.4.6的LAMP服务器 . 我在/ var / www中为两个不同的站点创建了两个目录 . 第一个(domain.com)是/ var / www / domain / public_html,第二个(example.com)是/ var / www / example / public_html . 在为每个数据库设置数据库,设置DNS以及上传站点文件之后,我对它们进行了测试 .

导航到domain.com按预期工作 . 页面已加载,我可以转到页面上的其他链接就好了 . 但是,当我访问example.com时,它从domain.com加载了站点文件 .

我关闭SELinux,重新启动,然后确保运行chown -R apache:apache / var / www和chmod -r 755 / var / www(我后来将所有目录更改为755,文件更改为644) . 我重新启动了apache并再次访问每个域,结果相同 . 一个工作正常,另一个重定向 .

我将conf.h /中的.conf文件中的VirtualHost块移出,并将它们粘贴到httpd.conf的底部 . 重启apache,再次测试 . 仍然没有运气 .

然后,有人建议我尝试更改VirtualHost块的顺序 . 好吧,我没有想法,我会尝试一下 . 现在,在httpd.conf的底部,我有example.com,然后是domain.com . 重启apache,再次测试 . 这次它适用于两个站点 .

真实域名按字母顺序排列,因此将它们按反向字母顺序排列 . 我确实找到了一些关于Apache如何按字母顺序读取vhosts的.conf文件的内容,但没有关于VirtualHost块ServerName的内容 . 这里发生了什么?

This Works

# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
#IncludeOptional sites-enabled/*.conf
<VirtualHost *:80>
    ServerName zzzdomain.com
    DocumentRoot /var/www/zzzdomain/public_html
    <Directory  "/var/www/zzzdomain/public_html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerName aaadomain.com
    DocumentRoot /var/www/aaadomain/public_html
    <Directory  "/var/www/aaadomain/public_html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

This Does Not Work

# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
#IncludeOptional sites-enabled/*.conf
<VirtualHost *:80>
    ServerName aaadomain.com
    DocumentRoot /var/www/aaadomain/public_html
    <Directory  "/var/www/aaadomain/public_html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerName zzzdomain.com
    DocumentRoot /var/www/zzzdomain/public_html
    <Directory  "/var/www/zzzdomain/public_html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>