我需要按照确切的顺序加载三个虚拟主机,以使我的configurationscheme按预期工作。
default (Apache默认虚拟主机) phpmyadmin (为所有pma。*子域名提供phpMyAdmin的虚拟主机) mysite.com (我的网站的虚拟主机) 当Apache从/etc/apache2/sites-available加载default虚拟主机时,它会在/etc/apache2/sites-enabled变成000-default ,这是Apache在收到请求时尝试的第一个(默认)虚拟主机。
因此,我将我的虚拟主机从phpmyadmin更名为00-phpmyadmin所以Apache会按照以下顺序尝试:
000-default 00-phpmyadmin mysite.com
令我惊讶的是, 00-phpmyadmin出现在BEFORE 000-default 之前 ! 看到apache2ctl -S的输出:
VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server MY_SERVER_HOSTNAME (/etc/apache2/sites-enabled/00-phpmyadmin:1) port 80 namevhost MY_SERVER_HOSTNAME (/etc/apache2/sites-enabled/00-phpmyadmin:1) port 80 namevhost MY_SERVER_HOSTNAME (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost mysite.com (/etc/apache2/sites-enabled/mysite.com:1) Syntax OK
我不得不将00-phpmyadmin重命名为0phpmyadmin ,以使其正常工作:
VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server MY_SERVER_HOSTNAME (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost MY_SERVER_HOSTNAME (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost MY_SERVER_HOSTNAME (/etc/apache2/sites-enabled/0phpmyadmin:1) port 80 namevhost mysite.com (/etc/apache2/sites-enabled/mysite.com:1) Syntax OK
你知道Apache为什么这样做吗?
连字符的ASCII码是0x2d。 数字零的ASCII代码是0x30。 连字符第一。
如果你看到一个文件列表似乎是sorting的,但在00-之前有000-你的语言环境可能会在string比较例程中跳过标点符号来“帮助”你。