XAMPP 默认虚拟主机

XAMPP Default Virtual Host

我有一个 VPS,我已经在其中安装了 XAMPP,并配置了所有安全性。我启用了虚拟主机。我有一个 db.example.com 可以直接在网络上打开 phpMyAdmin

httpd-vhosts.conf中的条目如下:

<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot "/opt/lampp/phpmyadmin"
    ServerName db.example.com
    ServerAlias www.db.example.com
    ErrorLog "logs/db.example.com-error_log"
    CustomLog "logs/db.example.com-access_log" common
        <Directory "/opt/lampp/phpmyadmin">
                Options Indexes FollowSymLinks ExecCGI Includes
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>

让我们假设 1.2.3.4 是我 example.com 的 IP。为了访问 db.example.com (1.2.3.4),我将在本地 /etc/hosts 文件中添加条目。

我的 httpd-vhsots.conf 中还有其他子域的条目,它们运行良好。需要注意的是,db.example.comvhosts 条目在文件 httpd-vhsost.conf

中是 first

问题来了:

当我直接在浏览器中打开 IP 1.2.3.4 时,phpMyAdmin 打开,这实际上不应该发生。如何避免这种情况?我不知道为什么会这样。

PS:我在 /etc/hosts

中删除了 db.example.com 的本地条目

更改 vhsots 条目的顺序将解决问题。如果您直接通过 IP 地址访问服务器,第一个将作为默认条目。

因此,将 vhost 放在您希望在浏览器中点击 IP 时显示的第一个位置。

您可以更改:

<VirtualHost *:80>

至:

<VirtualHost db.example.com:80>

当在此处指定服务器名称时插入“*”,此 vhost 配置将不会捕获 IP 地址或除此之外的任何其他名称。