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?