De um tempo pra cá eu tenho sido requisitado a criar subdomínios para diversos projetos que tem surgido lá na instituição que trabalho, como eu nunca tinha feito isso precisei fazer umas pesquisas e descobri que a parte principal é bem simples.
Configurando o Apache
Como estou usando o Apache 2 o procedimento torna-se até mais simples devido a estrutura modular do arquivo de configuração que ao invés de ser um monstrengo foi dividida em vários arquivinhos menores.
A primeira coisa a fazer é entrar no diretório /etc/apache2/sites-avaliable e criar um arquivo com o nome do seu subdomínio – não é obrigatório esse nome mas facilita quando você tiver vários subdomínios.
Por exemplo para um subdomínio chamado “projetos” você poderia simplesmente fazer:
# vi /etc/apache2/sites-avaliable/projetos
O conteúdo deste arquivo pode ser o que segue abaixo (mude as informações conforme necessário):
<VirtualHost *>
ServerAdmin webmaster@meudominio.gov.br
DocumentRoot /var/www/projetos
ServerName projetos.meudominio.gov.br
ServerAlias *.projetos.meudominio.gov.br
ErrorLog /var/log/apache2/projetos-error.log
CustomLog /var/log/apache2/projetos-access.log combined
</VirtualHost>
Uma vez que tenha digitado e salvo o arquivo, crie um link para este arquivo em /etc/apache2/sites-enabled com um número maior do que os que já estiverem lá.
Por exemplo:
# ln -s /etc/apache2/sites-avaliable/projetos /etc/apache2/sites-enabled/054projetos
Agora você pode reiniciar o Apache para aplicar as alterações:
# invoke-rc-d apache2 restart
Configurando o seu DNS
Configure o seu DNS para que este subdominio seja redirecionado para o IP desta máquina. No caso de usar o Bind como DNS, basta duas linha como essas:
www.projetos.meudominio.gov.br IN A 201.201.201.201
projetos.meudominio.gov.br IN A 201.201.201.201
Claro que dependendo da sua configuração isso poderá ser diferente, por exemplo eu poderia ter um servidor especifico para subdomínios chamado www11 e ali criar CNAMES para cada subdomínio, assim:
www.meudominio.gov.br IN A 201.201.201.201
projetos CNAME www.meudominio.gov.br
www.projetos CNAME www.meudominio.gov.br
estatisticas CNAME www.meudominio.gov.br
www.estatisticas CNAME www.meudominio.gov.br
Dessa forma o bind mandará a requisição para o servidor 201.201.201.201 e o Apache se encarregará de mandar o usuáio para a página certa.
Referências
- http://httpd.apache.org/docs/2.0/vhosts/name-based.html
- http://www.techmongrel.com/05/setting-up-a-virtual-host-using-apache-2-on-ubuntu-710/
- Linux Magazine 23, “Forte Apache” por Jorge Pereira, pág. 32-35 – http://www.linuxmagazine.com.br
Muito bom seu post, me ajudou muito!!! Obrigado
@Marcos Junior ,
Disponha. E obrigado pela visita.
Olá,
Muito legal você ter utilizado como base uma de minhas matérias publicadas na revista LinuxMagazine, grato por ter referenciado! 😉
Abraços,
e sucesso com o seu blog!
@Jorge Pereira ,
A Caesar o que é de Caesar, já dizia Jesus há mais de 2000 anos atrás. O seu artigo estava muito legal para eu deixar de citá-lo e deixar de dar os devidos créditos. 😉
Valeu a visita Jorge.
Olá, estou encontrando dificuldades com subdominios e gostaria de uma ajuda.
Trabalho na Prefeitura de minha cidade e fiquei encarregado de colocar o site dela no ar, até aí tudo bem. Pedi à ETICE detentora do dominio CE.GOV.BR para liberar e passei os DNS 1 e 2 do provedor aqui da cidade. O site já esta com o endereço exemplo:
prefeitura.ce.gov.br funcionando perfeitamente.
Tambem existe a Caixa de Previdencia da Prefeitura que quer colocar o site no ar. Pedi a ETICE para liberar um subdominio caixa.prefeitura.ce.gov.br, e ela disse que isso só pode ser feito pelo provedor onde esta o site da Prefeitura.
Essa Caixa de Previdencia quer hospedar no UOLHOST com o endereço:
caixa.prefeitura.ce.gov.br, pois ela tem que mostrar as contas aos funcionários publicos (assim como uma empresa governamental).
O provedor local disse que não consegue colocar mais de um redirecionamento para o UOL para o endereço caixa.prefeitura.ce.gov.br.
Como se faz esse redirecionamento de um subdominio (caixa) de um subdominio (prefeitura) no provedor local para o UOLHOST?
Onde tem que ser feita essa configuração para os ns1.dominios.uol.com.br, ns2.dominios.uol.com.br e ns3.dominios.uol.com.br. para o site caixa.prefeitura.ce.gov.br?
Não sei se fui claro, mas agradeço se me ajudar, Carlos.
@Carlos ,
Vamos por parte para que você possa entender a ideia e assim, se os meus exemplo não servirem de nada, pelo menos as explicações teóricas poderão ser úteis 😉
Em uma definição simplória, o DNS é uma base de dados hierárquica, onde cada servidor DNS é responsável por um ramo desta árvore. Quando uma requisição DNS é solicitada ela é resolvida “nó” por “nó”, descendo o ramo solicitado, até chegar no servidor desejado.
De forma simplificada, neste seu caso “.br” é resolvido nos servidores raiz, “.gov” pelos servidores do NIC-br, “.ce” pelos servidores da ETICE e “.prefeitura” é resolvida por você, ou melhor, pelos servidores da UOLHOST – empresa que você contratou.
Como você é o administrador do domínio “prefeitura.ce.gov.br”, é perfeitamente possível criar subdomínios, desde que o sistema de gerenciamento do DNS do seu provedor permita isso (a maioria permite, mas não conheço como funciona da UOLHOST). Uma vez que “prefeitura.ce.gov.br” é “jogada” para os servidores da UOLHOST resolverem, basta ter acesso ao sistema de gerenciamento do DNS que você cria todos os subdomínios que desejar.
Em resumo é isso, você precisa configurar “prefeitura” e “caixa.prefeitura” no seu DNS (na uolhost) para resolver estes endereços para o seu servidor Web. Após isso é preciso ter acesso a configuração do seu servidor web para indicar qual pasta deve ser acessada de acordo com o endereço digitado (tal como mostrei neste artigo), caso isso não seja feito, ao digitar “caixa.prefeitura” o visitante vai para a raiz do seu site que neste caso é o conteúdo de “prefeitura”.
Acho que é isso, não sei se consegui ser claro o o suficiente. Qualquer dúvida avise.
Abraço.
Caro Welington, compreendi perfeitamente a sua dica. E irei passar ao provedor da cidade que já hospeda o site da prefeitura que é http://www.prefeitura.ce.gov.br, pois eu não consigo fazer isso pelo cPanel, e esse provedor da cidade na realidade não tem experiência com hospedagem,só com internet a rádio, daí a dificuldade deles configurarem um subdominio, agora para o Uolhost, que seria o http://www.caixa.prefeitura.ce.gov.br, para os servidores DNS 1, 2 e 3 do Uolhost.
Valeu pela dica e um Bom Natal e Feliz e Próspero 2010.
Carlos.
Perfeito amigo, me ajudou bastante seu artigo parabéns!