Adicionando Virtualhost no Apache do Ubuntu



Virtualhost é o método usado pelos servidores para hospedar mais de um site no mesmo computador, sendo acessados pela sua própria URL.

Vou mostrar abaixo como adicionar um virtualhost para um projeto local em seu computador.

Primeiramente vamos entrar na pasta “sites-available”, que é onde fica as configurações dos hosts virtuais disponíveis.

cd /etc/apache2/sites-available

Vamos criar um arquivo .conf para configuração do virtualhost do nosso projeto.

sudo gedit meusite.dev.conf

Neste arquivo sete o nome que o projeto vai ser chamado e seu caminho como no exemplo abaixo.

<VirtualHost *>
    ServerName meusite.dev
    DocumentRoot /var/www/meusite.dev
</VirtualHost>

Abra o arquivo “hosts” na pasta /etc.

sudo gedit /etc/hosts

Adicionar na lista seu virtualhost como abaixo:

127.0.0.1 meusite.dev

Ativar seu novo virtualhost com o comando “a2ensite”, este comando criará um link para o site na pasta “/etc/apache2/sites-enabled”:

sudo a2ensite meusite.dev.conf

Para alterar as configurações é necessário reiniciar o apache:

sudo /etc/init.d/apache2 reload

Agora é só acessar seu novo virtualhost pelo navegador.

Ao acessar o “http://meusite.dev”, você visualizará o conteúdo da pasta “/var/www/meusite.dev”.

PS.: Você pode adicionar quantos sites quiser usando esses mesmos passos.

, , , , ,

  1. #1 por Bruno - 28 de agosto de 2009 em 13:53

    você sabe como fazer para o apache identificar automaticamente a pasta contido no DocumentRoot como um ambiente de desenvolvimento?
    Exemplo:
    tenho 2 projetos
    -> /var/www/projeto_A
    -> /var/www/projeto_B

    sem precisar ficar configurando sempre o vhost, ele ja identifica:
    http://projeto_A.dev (para /var/www/projeto_A)
    http://projeto_B.dev (para /var/www/projeto_B)
    ??

  2. #2 por Berg Ginú - 1 de setembro de 2009 em 09:20

    Cara ótimo post. Claro e direto, más sem perder conteúdo.
    Valeu mesmo ajudou um bocado.

  3. #3 por Giolvani - 12 de outubro de 2009 em 16:31

    opa!!!

    muito bom post, ajuda em muito nosso trabalho…

    aqui funcionou de boa, mas tive que colocar no lugar de

    adicionei a porta

    agora só queria saber como fazer pra uma máquina da rede enxergar esse virtual host!!??

    vlw

  4. #4 por Chris Benseler - 13 de outubro de 2009 em 22:43

    @Bruno acho que não rola

    @Giovani você teria que ter, na rede, um gerenciador de DNS que apontaria o endereço que você quer para o IP da máquina que está com o webserver. Se não tiver acesso ao gerenciador de DNS, pode ir no arquivos hosts (no linux fica onde o Danilo apontou, no Windows normalmente é c:/windows/system32/drivers/etc, e no Mac OS não tenho idéia) e fazer o mesmo que o Danilo disse que fez no passo 127.0.0.1 meusite.dev mas coloque no lugar do 127… o IP da máquina onde está o webserver

  5. #5 por Thiago Bellini - 6 de novembro de 2009 em 18:49

    Danilo,
    Eu segui os seus passos e percebi que mesmo tentando entrar em http://meusite.dev o mesmo insistia em ir para o default.
    ai eu fiz a seguinte alteração:

    <VirtualHost *>
        ServerName meusite.dev
        DocumentRoot /var/www/meusite.dev
    </ VirtualHost>

    eu alterei a sessão

    <VirtualHost *>

    por:

    <VirtualHost meusite.dev>

    assim entrando em http://localhost vai para o default e meusite.dev vai para o devido!
    inclusive, coloquei um link para o seu tutorial no meu site: http://www.linuxparatodos.com.br/artigos/lamp-server-no-ubuntu

  6. #6 por DANIEL MAFFIOLETTI - 30 de dezembro de 2009 em 17:56

    Post muito bem explicado, ajudou bastante. Parabéns

(não será publicado)