Hospedar Múltiplos sites com Apache no Debian

É muito simples hospedar mais de um site em um mesmo servidor, vou mostrar como configurar o vhost (Virtual Host) para hospedar diversos sites em um único servidor, isso é muito conveniente pois iremos utilizar um único IP para quantos domínios desejarmos. 


Neste exemplo estou utilizando debian em sua versão estável atual (squeeze), Caso não saiba como instalar o apache no debian verifique esse post .




Neste exemplo irei configurar dois domínios meusite.com.br e meusite.net onde cada um terá seu conteúdo independente com um DocumentRoot próprio ou seja cada domínio irá apontar para uma pasta específica no sistema com seu respectivo conteúdo.


Com o apache já instalado, vamos iniciar a configuração primeiramente crie o diretório raíz de cada domínio (DocumentRoot). Normalmente os arquivos do domínio ficam em /var/www  dentro de suas respectivas pastas, irei utilizar esse diretório neste exemplo com as pastas /var/www/meusite.com.br  e /var/www/meusite.net , porém nada impede a utilização de outro diretório como /home/user/www por exemplo. 


Crie os diretórios para os domínios que deseja utilizar


# mkdir /var/www/meusite.com.br




# mkdir /var/www/meusite.net


Crie também um diretório para armazenar os logs de cada domínio, normalmente o diretório de logs é criado dentro do próprio diretório raíz do domínio, porém nada impede que crie o diretório de log em outro local.



# mkdir /var/www/meusite.com.br/logs




# mkdir /var/www/meusite.net/logs


Caso deseje executar scripts python, perl crie também a pasta cgi-bin



# mkdir /var/www/meusite.com.br/cgi-bin




# mkdir /var/www/meusite.net/cgi-bin


Após a criação dos diretórios iremos configurar o Virtual Host. 


O Apache 2 no debian possui dois diretórios de configuração, o /etc/apache2/sites-available que possuí os domínios disponíveis no servidor e o /etc/apache2/sites-enabled que possuí os domínios habilitados


Em outras palavras em /etc/apache2/sites-available está a configuração do domínio onde configuramos o VirtualHost em si porém mesmo que vhost exista dentro desta pasta não significa que o domínio está habilitado e disponível para ser acessado, primeiramente devemos criar um link simbólico da configuração deste domínio em /etc/apache2/sites-enabled.


Para efetuar o procedimento da criação do link simbólico o apache no debian possuí dois comandos para esse propósito, o a2ensite (apache2 enable site) e o a2dissite (apache2 disable site) para habilitar e desabilitar o site respectivamente. 


Agora vamos criar os Virtual Hosts, utilizarei como exemplo o nome dos próprios domínios mas isso não é uma regra.


# vi /etc/apache2/sites-available/meusite.com.br

Adicione o seguinte conteúdo: 




<VirtualHost *:80>   #Caso deseje utilizar um ip fixo adicione no lugar do *
    ServerAdmin admin@meusite.com.br  # ou outro e-mail que desejar
    ServerName www.meusite.com.br
    ServerAlias meusite.com.br
    DocumentRoot /var/www/meusite.com.br   #ou outro local que desejar


    #Caso tenha criado a pasta cgi-bin descomente as linhas abaixo
    #ScriptAlias /cgi-bin/ /var/www/meusite.com.br/cgi-bin/
    #<Location /cgi-bin/>
        #Options +ExecCGI
    #</Location>


    ErrorLog /var/www/logs/error.log
    CustomLog /var/www/logs/access.log combined
</VirtualHost>


Agora a configuração do meusite.net


# vi /etc/apache2/sites-available/meusite.net




<VirtualHost *:80>
    ServerAdmin admin@meusite.net  
    ServerName www.meusite.net
    ServerAlias meusite.net
    DocumentRoot /var/www/meusite.net


    #Caso tenha criado a pasta cgi-bin descomente as linhas abaixo
 
    #ScriptAlias /cgi-bin/ /var/www/meusite.net/cgi-bin/         
        #<Location /cgi-bin/>
        #Options +ExecCGI
    #</Location>



    ErrorLog /var/www/logs/error.log

    CustomLog /var/www/logs/access.log combined

</VirtualHost>



Agora que os vhosts estão criados vamos habilitar os domínios com o comando a2ensite para cirar o link simbólico do vhost em /etc/apache2/sites-enabled a sintaxe para utilização é simples: a2ensite mais o nome do arquivo criado em /etc/apache2/sites-available.




# a2ensite meusite.com.br


# a2ensite meusite.net

Agora basta efetuar o reload no apache com o comando abaixo: 



# /etc/init.d/apache2 reload

Caso tenha feito tudo corretamente os domínios já estarão funcionando, você pode efetuar um teste criando um arquivo index.html dentro de cada diretório raíz dos domínios com conteúdos distintos para verificar se estão funcionando corretamente. 


Para maiores informações sobre a configuração do Virtual Host aconselho a leitura da documentação oficial aqui.

Deixe um comentário