Ativando módulos e criando virtual hosts do Apache no Ubuntu


Boa tarde!

Sempre criei hosts virtuais no Linux e no Windows inserindo diretamente no arquivo de configuração do apache. Funciona, mas a pouco tempo encontrei em um blog americano (que infelizmente me esquecí de guardar a URL para citar a fonte) uma forma mais bacana de criar hosts virtuais no Apache do Ubuntu. Execute todos os comandos como root para simplificar o processo, ok? Vamos lá!

O Apache para Linux possui dois diretórios de sistema chamado sites-available e sites-enabled, localizados no /etc/apache2. Eles funcionam de forma semelhante ao mods-available e mods-enabled, onde para ativar um módulo do Apache basta usar o comando a2enmod. Para exemplificar, o comando abaixo iria ativar o módulo rewrite.load:

root@ThiagoPC:/etc/apache2/mods-enabled$ a2enmod rewrite
root@ThiagoPC:/etc/apache2/mods-enabled$ /etc/init.d/apache2 reload

Para um virtual host o procedimento é parecido. Vamos criar uma estrutura PHP básica para testar o nosso virtual host:

root@ThiagoPC:/var/www$ mkdir teste
root@ThiagoPC:/var/www$ cd teste
root@ThiagoPC:/var/www/teste$ echo “<?php phpinfo(); ?>” > index.php

Este bloco de comandos cria um projeto chamado teste, com um arquivo index.php. Para testar este passo, digite http://localhost/teste no seu navegador. A tela do phpinfo deverá ser exibida.

Agora acesse o diretório /etc/apache2/sites-available para criarmos o virtual host:

root@ThiagoPC:/etc/apache2/sites-available$ gedit teste

Quando o arquivo teste for aberto no gedit, cole o código a seguir e salve o arquivo.

<VirtualHost *:80>
DocumentRoot “/var/www/teste/”
ServerName teste
ServerAlias teste
ErrorLog “/var/log/apache2/teste-error.log”
CustomLog “/var/log/apache2/teste-custom.log” common

<Directory “/var/www/teste/”>
Options Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

Quando finalizar este passo, digite o seguinte comando para habilitar o “site” que você acabou de criar no seu Apache:

root@ThiagoPC:/etc/apache2/sites-enabled$ a2ensite teste
root@ThiagoPC:/etc/apache2/sites-enabled$ /etc/init.d/apache2 reload

Ao digitar este comando, o seu virtual host já foi criado e habilitado. Falta apenas adicionar um direcionamento para o seu host no arquivo /etc/hosts. Adicione a seguinte linha:

127.0.1.1 teste

Pronto! Ja está funcionando… Digite http://teste no seu navegador e você irá visualizar a mesma página com o phpinfo.

Para desabilitar módulos ou sites, os comandos são a2dismod e a2dissite, respectivamente.

Um abraço!

, , , ,

  1. #1 by Renato on março 30, 2011 - 4:54 pm

    Fiz o tutorial passo-a-passo!!! Funcionou perfeitamente no meu notebook! Não tem nem o que reclamar…massa!!

    Valeu ai Thiago!!!

  2. #2 by Vlademiro on abril 7, 2011 - 2:13 pm

    Me ajudou bastante

    Valeu !

  3. #3 by Lopes on janeiro 22, 2012 - 9:41 pm

    Olá. Muito bom o tutorial. Segui tudo com diz ai, consegui abrir uma página em html, porém quando tento abrir uma em PHP, aparece a opção de download. Se eu coloco a pagina PHP em var/www, ela abre normal, mas se eu coloco no host virtual, aparece a opção de download. Obs: Meus hosts virtuais estão apontando para a pasta pessoal “/home/meusite/public_html”.
    O que eu posso fazer pra habilitar o php no host virtual? Obrigado.

  4. #4 by BuenoInfo on fevereiro 6, 2012 - 9:36 am

    Show de bola… valeu

  5. #5 by Anonymous on fevereiro 23, 2012 - 3:19 pm

    100% funcionando!!!!

  6. #6 by jhowmello on fevereiro 24, 2012 - 7:02 pm

    tenho uma dificuldade, nao consigo salvar o arquivo teste, da erro q nao tenho autorizaçao, pois to usando uma conta de usuario, oq eu faço??

  7. #7 by Thiago Colares on fevereiro 27, 2012 - 7:54 am

    Use o “sudo” antes do comando cara, ou então esteja logado como root 😉 Abraço!

  8. #8 by marcelo wanderley on fevereiro 28, 2012 - 9:19 pm

    Olá Thiago, ótimo tutorial.

    Tenho uma pequena duvida com relação ao mesmo. Espero que com sua ajuda, possa solucionar alguns problemas.

    Preciso que a pagina padrão e a porta padrão permaneça.

    – OK
    …..

    O que preciso é criar um outro endereço que acesse a uma porta especifica em uma pasta especifica.

    – OK
    ServerName localhost
    DocumentRoot /opt/pasta/01/pasta02

    quando acessar o IP:porta : Ele exibir o que tem neste endereço.

    Saber informar se tem como?

    Muito obrigado pela iniciativa do tutorial.
    Abraços
    Marcelo Wanderley

  9. #9 by marcelo wanderley on fevereiro 28, 2012 - 9:26 pm

    ServerAdmin webmaster@localhost
    DocumentRoot /opt/pasta01
    ServerName localhost

    Order deny,allow
    Allow from all

  10. #10 by marcelo wanderley on fevereiro 28, 2012 - 9:26 pm

    Nao aparece as tags =(

  11. #11 by Cerebro Vassconcelos on julho 24, 2012 - 10:06 pm

    Mano fiz não deu erro so que esta indo para var/www ao invés de para var/www/teste como deveia, auguma dica?

  12. #12 by Vitor Luis on agosto 25, 2012 - 3:55 am

    Infelizmente no meu servidor estou com alguns problemas para executar esta tarefa! Quando tento fazer o processo do Virtual Host ele dá erro na inicalização do Apache pois não consegue escrever o arquivo de erro do website adicionado, o que será que pode ser?

  13. #13 by Thiago Colares on outubro 15, 2012 - 9:03 am

    Já tentou olhar o log do Apache Vitor? Pode ser um milhão de coisas, rs… Abraço

  14. #14 by Clóvis on março 17, 2013 - 5:56 am

    Hum, foi a melhor explicação q encontrei até agora. Obrigado Thiago!

  15. #15 by Matheus on março 31, 2013 - 4:17 pm

    Excelente!!!!!
    Poste mais sobre truques para desenvolvimento WEB!!!
    VLWWWWW

  16. #16 by Felipe on abril 11, 2013 - 11:02 pm

    Nao deu certo, fiz todo o processo, mas qndo acesso mostra o conteudo do /var/www/index.html e nao do diretorio q configurei

  17. #17 by Jota on abril 24, 2013 - 7:16 pm

    Muito bom meu velho. Modo mais prático que já vi.
    Parabéns

(não será publicado)



Parse error: syntax error, unexpected ';' in /home/storage/1/6c/6b/thiagocolares/public_html/wp-content/themes/fusion/footer.php on line 20