Eu preciso carregar três hosts virtuais em uma ordem exata para fazer meu esquema de configuração funcionar como esperado.
-
default
(virtualhost padrão do Apache)
-
phpmyadmin
(um virtualhost que serve o phpMyAdmin para todos os subdomínios pma. *)
-
mysite.com
(o virtualhost do meu site)
Quando o Apache carrega o default
virtualhost de /etc/apache2/sites-available
, ele se torna 000-default
in /etc/apache2/sites-enabled
, portanto, é o primeiro host virtual (padrão) que o Apache tenta quando uma solicitação é recebida.
Assim, renomeiei meu virtualhost de phpmyadmin
para 00-phpmyadmin
, para que o Apache tentasse, na ordem:
000-default
00-phpmyadmin
mysite.com
Para minha surpresa, 00-phpmyadmin
vem ANTES 000-default
!
Veja a saída de 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
Eu tive que renomear 00-phpmyadmin
para 0phpmyadmin
para que funcionasse como esperado:
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
Você sabe por que o Apache se comporta dessa maneira?