A utilização desse recurso atende perfeitamente os ambientes com a necessidade de se ter vários sites em uma mesma instalação ou instância Drupal. A estrutura Multisites garante várias facilidades de administração, como a atualização do “core” do Drupal uma única vez, resultando a atualização de todos os sites hospedados dentro da estrutura, pois todos os sites utilizam o mesmo “core”. Ou até mesmo pela separação de módulos ou temas, que podem ser acessados ou não, somente por um ou por todos os domínios. Por exemplo: um administrador de um site pode ter desenvolvido um tema de uso próprio, querendo que apenas ele consiga enxergá-lo e usá-lo, e você (Administrador do servidor) desenvolveu um módulo com utilidade para todos os sites existentes no seu servidor. Com muita facilidade é possível atender as duas situações utilizando a estrutura Multisites. O site do próprio Drupal é uma ótima fonte de pesquisa sobre o assunto tratado e vários outros também. Confira na seção Links ao final do artigo.

Diferença entre Subdomínio e Subdiretório

SUBDOMÍNIO

SUBDIRETÓRIO

siteum.siteraiz.com

siteraiz.com/siteum

sitedois.siteraiz.com

siteraiz.com/sitedois

sitetres.siteraiz.com

siteraiz.com/sitetres

Tabela 1. Diferenças entre domínio e subdiretório

Na Tabela 1 vemos algumas diferenças entre subdomínio e subdiretório. A primeira é a visual, pois a posição do nome escolhido na URL para o site encontra-se um no início e outro no final, porém a organização de subdiretório é mais eficiente quando utilizada com um certificado digital (https), pois permite que vários sites de desenvolvimento independentes, possam utilizar o mesmo certificado digital, que geralmente é de custo elevado. O certificado funciona com a referência principal do nome do domínio “siteraiz.com”, o que vier após isso será considerado subdiretório, ou seja, um conteúdo existente dentro do site raiz, possibilitando assim a utilização do mesmo certificado digital. Já na estrutura de subdomínio, que é mais usada, a situação mais comum é a utilização para distribuição de serviços ou aplicações referentes ao mesmo site raiz. Ex: “mail.siteraiz.com”; “app.siteraiz.com”. A estrutura Multisites permite trabalhar com as duas formas citadas sem dificuldades.

O módulo “Domain Access” (https://drupal.org/project/domain), possui um conjunto de outros módulos que permitem o funcionamento de um site com subdomínio. O módulo funciona basicamente verificando o acesso aos nós do Drupal para todos os domínios em um mesmo database, compartilhando algumas tabelas. Veremos mais a frente nosso site funcionando com subdomínio, porém sem o auxílio desse módulo.

Instalando o Drupal

Usaremos em nosso exemplo o Banco de Dados PostgreSQL 8.4, o Sistema Operacional Debian 6.0.5 e o Drupal 7.23. Após download no site www.drupal.org, descompacte em seu diretório web o arquivo baixado que deverá ter a estrutura básica Drupal (Figura 1). Edite o arquivo “hostname” ou simplesmente “hosts”, para resolver o nome da nossa URL localmente, inserindo uma linha ao final do arquivo da seguinte forma:

IP DA SUA MÁQUINA LOCAL

NOME ESCOLHIDO PARA NOSSO SITE

192.168.0.10

www.siteprincipal.com

Nota: As duas informações estarão na mesma linha separadas por espaço.

Figura 1. Estrutura básica do diretório Drupal

Após criar um database e um usuário de banco com o SGBD escolhido, dentro das opções no site do Drupal, vamos começar a instalação pelo browser acessando a URL inserido em nosso arquivo “host”. Observe a Figura 2.

Figura 2. Instalação do host

Siga as orientações de correção de erros que são mostradas durante o processo, como na Figura 3 e prossiga com a instalação.

Figura 3. Correção de erros

Preencha os campos relacionados ao Banco de Dados, comentado anteriormente, e prossiga com a instalação até a conclusão, conforme a Figura 4.

Figura 4.Terminando a instalação

Após a instalação do Drupal ter sido realizada com sucesso, através do browser, deveremos confirmar na tela mostrada na Figura 5.

Figura 5. Confirmação da instalação

Configuração Multisites

Existem módulos que facilitam muito a configuração Multisites como, por exemplo, o “Multisite wizard” (https://drupal.org/project/multisite_wizard). Esse módulo tem a dependência do módulo “Backup and migrate” (https://drupal.org/project/backup_migrate), onde ambos funcionam exclusivamente no SGBD MySQL, compartilhando o mesmo database para todos os sites lá hospedados, diferenciando suas tabelas com seus domínios correspondentes pelo prefixo(*1) das mesmas. Porém, faremos toda configuração sem utilizarmos nenhum desses módulos.

Vamos iniciar nossa configuração primeiramente indo até o diretório “sites” e copiando o arquivo “example.sites.php” renomeando-o para “sites.php” (Figura 6) .

Figura 6. Modificando o arquivo example.sites.php

O Drupal será responsável por apontar as URLs para os conteúdos corretos através da seguinte estrutura:

URL

NOME DO DIRETÓRIO WEB

$sites[‘www.siteprincipal.com’]=

‘default’;

Observe a Figura 7.

Figura 7. Apontando as URLs

NOTA: *1- Prefixo: Campo não obrigatório das configurações do database no momento da instalação wizard do Drupal. Ex: prefixo = “principal” → “principal_nomedetodastabelas”.

Após inclusão da linha (Figura 7) no final do arquivo “sites.php”, iniciamos o processo de funcionamento do Multisites. Representaremos um Multisites em subdomínio, após inclusão de mais duas linhas, como mostrada na Tabela 2.

URL

NOME DO DIRETÓRIO WEB

$sites[‘www.siteprincipal.com’]=

‘default’;

$sites[‘www.mail.siteprincipal.com’]=

‘mail’;

$sites[‘www.app.siteprincipal.com’]=

‘app’;

Tabela 2. Configurações do Multisite

Devemos criar os diretórios “mail” e “app” dentro do diretório “sites”, copiando o arquivo “default.settings.php” existente no diretório “default” para dentro dos dois diretórios criados, renomeando-os para “settings.php”. E por fim, criaremos um diretório chamado “files” dentro de ambos (Figuras 8 e 9). Após inclusão das duas linhas no arquivo ”hosts”, conforme Tabela 3, acessaremos nossos novos endereços pelo browser, devendo encontrar novamente a tela de instalação do Drupal (Figura 2).

IP DA SUA MÁQUINA LOCAL

NOME ESCOLHIDO PARA NOSSO SITE

192.168.0.10

www.siteprincipal.com

192.168.0.10

www.app.siteprincipal.com

192.168.0.10

www.mail.siteprincipal.com

Tabela 3. Informações para o arquivo hosts

NOTA: As duas informações estarão na mesma linha separadas por espaço.

Figura 8. Criação do diretório files

Figura 9. Confirmação da criação do diretório

Após a conclusão de todos os passos para nosso “app” e “mail”, testaremos no browser as URL escolhidas, como mostrado na coluna “nome escolhido para o site” da Tabela 3. Obtendo como resposta de sucesso as respectivas telas mostradas na Figura 10.

Figura 10. Telas de confirmação

Uma facilidade para a administração do Multisites também é a possibilidade de organizarmos os “temas” e/ou “módulos” criando subdiretórios chamados de “contrib” e “custom” em “/sites/all/modules” ou “/sites/all/themes”. Esses subdiretórios possibilitam organizar temas ou módulos que foram baixados diretamente do www.drupal.org (contrib), ou de temas ou módulos que foram personalizados (custom). Uma situação muito comum que torna essa organização muito útil é a de um módulo da comunidade estar com algum “bug” que você foi capaz de resolver para sua necessidade e, por estar em uma estrutura Multsites, sofre atualização e sua correção é perdida. Isso seria facilmente evitado se o seu módulo, após a correção, estivesse no subdiretório “custom”, conforme a Figura 11.

Figura 11. Alinhamento correto dos diretórios

Espero que tenham gostado do artigo e até a próxima.

Links

https://drupal.org/node/1114158

https://groups.drupal.org/node/121989

https://drupal.org/documentation/install/modules-themes/modules-7