Wildcard DNS no WHM/cPanel [Atualizado]

Wildcard DNS (DNS curinga, tradução livre) é uma forma de poder manipular subdomíos (ou domínios, por que não?) de forma dinâmica.  Ou melhor, segundo a wikipédia, é um registro em uma zona DNS que irá responder por nomes de domínios que não existem. Este é o método usado pelo wordpress-mu para criar novos blogs em subdomínios sem alterar a configuração do apache. Você pode ver isto em ação na página do wordpress.com, blogger ou o antigo site foipreso.com (lembrava deste?).

Se você tem acesso às configurações de um servidor DNS como o BIND, pode adicionar uma entrada wildcard em seu domínio — Como explicado no post do Matt Mullenweg.  Caso contrário, se você utiliza os seviços de uma empresa de hospedagem que disponibiliza o cPanel, acesse o cPanel de sua conta, clique na opção “subdomínios” em seu painel e adicione um novo subdomínio com valor “*”. Ou seja, o endereço completo será: *.seudominio.com.

cPanel-X_1245763031383

O caminho (valor em document root) que você configurar para seu subdomínio irá tratar suas requisições com o wildcard. Para testar, crie um arquivo index.php (se estiver usando PHP no seu servidor) no document root do subdomínio criado, com o seguinte conteúdo:

<?php
print_r($_SERVER);

Digite no seu browser algo como: umnomequalquer.seudominio.com. Dentre os resultados, você verá que a chave SERVER_NAME terá o valor completo do endereço que você digitou. Se tudo deu certo, seu subdomínio está pronto para usar. Com ele você pode apresentar a página do usuário de acordo com a URL, chamar conteúdo do banco de dados, fazer a chamadas a métodos do seu framework , fazer uma página 404 interna, etc. As possibilidades são infinitas.

04/11/2009 – Atualização: Como comentado pelo Victor Teixeira, não é necessário editar as zonas de DNS no WHM. Isto é feito automaticamente quando um novo subdomínio é adicionado. Removi a parte do post referente a isto. Obrigado Victor 🙂

Anúncios

Bugs que me deixaram ocupado este mês

Atualmente estou lendo 2 livros, desenvolvendo um “projeto de estimação”, e estudando algumas coisas menores em paralelo. Mas não é só isso que tem roubado meu tempo, e minhas noites de sono. Encontrei alguns bugs em tarefas que deveriam ser triviais. Estou compartilhando na esperança de ajudar outras pessoas a economizar o tempo que gastei.

1- Eclipse Ganymede + PDT 2 + Linux 64 bits
O eclipse não é o auge da produtividade, mas é minha ferramenta preferida para fazer código. A grande vantagem do eclipse é sua extensibilidade. É possível encontrar plugins para TUDO, embora eu ache que muitos plugins comprometem muito sua estabilidade (assim como acontece com o firefox).

Apesar de ser muito fácil de instalar os plugins, não consegui de jeito nenhum instalar o PDT 2 no meu eclipse ganymede que está instalado no meu notebook com kubuntu 9.04 x86_64. Muito google depois, encontrei a salvação neste post

2 – mod_rewrite no WordPress MU
Apesar da instalação no servidor de desenvolvimento (meu computador) estar funcionado perfeitamente, minha instalação do WPMU no servidor de produção não estava exibindo as imagens corretamente, encaminhando a requisição para um erro 404. Recorri ao google e descobri que isto aconteceu com um usuário do forum do WPMU. O problema é que este usuário decidiu simplesmente trocar de servidor!! Google de novo, leitura da seção do mod_rewrite no manual do apache, e finalmente encontrei uma solução que coloquei no forum (em resposta ao usuário que trocou de servidor).

Ainda estou monitorando esta resolução, não sei se pode causar outros bugs no futuro. Até o final desta edição (sempre quis dizer isto) não tive nenhum problema. Ainda assim, publico aqui, se ocorrer algo.

A parte boa de tudo isso é que estudei algumas coisas que, com certeza, serão usadas no futuro. Só espero não ter outra sessão de aprendizado forçado tão cedo, afinal, preciso produzir alguma coisa!

Atualização: A correção que eu coloquei no forum do WPMU funcionou apenas para o site principal, nos sub-domínios o erro persistiu. Uma nova correção, com explicação, está neste link.