Esta é mais uma questão de configuração do apache do que uma do Ubuntu.
Sim, você pode executar vários servidores virtuais em um host, cada um oferecendo conteúdo separado, desde que todos mapeiem (por exemplo, via DNS) para o mesmo servidor.
A documentação oficial sobre como criar servidores virtuais (versão 2.2, mas esse recurso não mudou fundamentalmente entre as versões) pode ser encontrada aqui:
A resposta curta é que você precisa:
- defina seus hosts virtuais
- inclua algum mapeamento entre seus nomes de host e o conteúdo que eles veiculam
Isso é feito adicionando uma cláusula de host virtual a algum arquivo de configuração do apache, por exemplo. em / etc / apache2 / sites-available / 000-add-my-virtual-hosts (nome projetado especificamente para preceder o nome 000-default em ordem alfabética)
NameVirtualHost *:80
<VirtualHost *:80>
ServerName hostname1.mydomain.com
DocumentRoot /home/www/hostname1
</VirtualHost>
<VirtualHost *:80>
ServerName hostname2.mydomain.com
DocumentRoot /home/www/hostname2
</VirtualHost>
Note que você pode também precisa adicionar links de / etc / apache2 / sites-enabled / para / etc / apache2 / sites-available se o site que você precisa já está no último mas não no primeiro.
EDIT 1:
Depois de ler a página man do a2dissite , fica claro que tudo o que ele faz é remover o link simbólico de / etc / apache2 / sites-enabled / .
A chave é entender que a ordem na qual essas configurações são processadas pode afetar o resultado final. O site padrão é chamado 000-default para ser carregado primeiro. Se corresponder a todos os sites, ou seja, funcionar como um curinga "qualquer outra coisa", você não verá os outros. Tente renomear o link para ter um número maior, como 999-default , para que ele seja carregado por último (após os outros sites serem correspondidos).
EDIT 2: Para sua pergunta atualizada: sim, é necessário renomear ou excluir o site padrão porque seu nome de arquivo de configuração começa com '000', fazendo com que seja carregado primeiro e 'take-over' devido à correspondência com caracteres curinga. Eu suponho que a documentação pode ser melhorada neste ponto.
EDIT 3: A ordem em que os nomes dos servidores aparecem, sua importância e muito mais estão documentados em esta página do apache no seção vhost baseado em nome Uma das frases relevantes diz:
The first vhost on this list (the first vhost in the config file with the
specified IP address) has the highest priority and catches any request to
an unknown server name or a request without a Host: header field.
e mais tarde em Observações :
... the ordering of name-based vhosts for a specific address set is significant.
The one name-based vhosts that comes first in the configuration file has the
highest priority for its corresponding address set.