Back-End

24 set, 2012

Guia para configurar o WordPress Multisite – Parte 01

Publicidade

Configurar o WordPress Multisite, também conhecido como WordPress MU ou simplesmente WordPress Multiblog, pode, em alguns casos, ser uma dor de cabeça, devido principalmente às configurações dos servidores web que servem os pedidos ao WordPress.

Nesta primeira parte da série iremos abordar como facilmente ligar e instalar a opção Multisite do WordPress, tentando abordar todo o tipo de configurações que o seu servidor possa ter, incluindo diferentes ambientes e servidores. Nesta parte não vamos ainda olhar as soluções para montar ou escalar uma rede com muitos sites ou blogs – estamos ainda nos passos iniciais!

Durante esta série de artigos iremos:

  • Ensinar como ligar facilmente a opção de Multisite no WordPress e o que fazer após a instalação do Multisite concluída;
  • Abordar soluções de plugins testados que podem ajudá-lo no desenvolvimento do seu projeto para criar facilmente a sua rede de sites;
  • Desenvolver snippets de códigos e mostrar o “canivete suíço” de funções exclusivas do WordPress Multisite;
  • Abordar várias soluções de configuração e ambientes de trabalho: desde o servidor web Apache ao servidor Nginx, passando por outras soluções de routeamento estático tais como o servidor lighttpd;
  • Abordar as soluções de cache em memória, usando memcached ou APC, assim como soluções de cache persistente estáticas em disco, para acelerar a sua rede e evitar ligações perdidas;
  • Aumentar o poder da sua instalação WordPress Multisite de modo a poder aceitar mais ligações simultâneas sem perda de performance dos seus sites;
  • Escalar a sua rede para usar multiplas bases de dados e aumentar o poder da sua rede;
  • Como estruturar e manter uma rede com mais de 1 milhão de sites;
  • Mostrar soluções encontradas para problemas com o Multisite;
  • Desenvolver teoricamente configurações de rede Multisite para várias soluções de mercado;

Introdução

O WordPress Multisite é uma funcionalidade que apareceu com a vinda da versão 3 do CMS . Esta funcionalidade permite administrar vários sites com nomes, conteúdo, temas e domínios diferentes numa única instalação WordPress.

Esta configuração, que chamamos de rede, tem sido usada por várias hospedagens de sites nos últimos dois anos, e permite a qualquer um criar o seu próprio site em poucos minutos, fácil e diretamente, sem necessidade de deter um servidor próprio ou ter que mexer em linhas de código. Normalmente o processo é muito simples: realizar uma inscrição onde escolhe o nome do subdomínio e depois é só começar a escrever.

Hospedagens de sites como o WordPress.com ou o Blogs.com usam o WordPress Multisite como motor da sua rede, rodando vários milhões de sites em vários servidores Web e MySQL, localizados em todo o mundo, que regularmente trocam informações entre si, isto tudo com apenas uma única instalação WordPress.

Anteriormente ao WordPress 3.0, existia um projecto chamado WordPress «Miu» que era um fork do WordPress normal, com a diferença de se poder gerir vários sites em simultâneo na mesma instalação. Na versão 2.9 os dois projetos começaram a fundir-se dando origem ao WordPress 3.0 com a opção Multisite.

Como instalar uma rede de WordPress Multisite

Existem diversos artigos e tutoriais na internet, muitos deles dizem que basta mudar uma linha de código, instalar um plugin ou simplesmente copiar um arquivo e colocá-lo noutro lugar.Não se engane ! Você pode ser dos 20% dos casos em que nada disso irá funcionar, pelo contrário poderá até por em risco a segurança do seu servidor.

Na verdade, neste caso como em quase todos, o melhor será ir “à fonte” e ler o guia oficial do WordPress de como criar uma rede de blogs multisite. Este guia é suficiente para maior parte dos casos. Nós aqui da Escola WordPress decidimos fazer desta primeira parte uma espécie de tradução do que se encontra nesse guia, acrescentando também exemplos de várias configurações possíveis.

Passo 1: preparar para a instação

Atenção: em todos os exemplos que mostraremos, tenha em mente que o domínio a-minha-rede.com é fictício e você deve substituir pelo seu domínio em todos os exemplos.

Subdomínio vs Diretoria

Esta configuração permite que você use os vários sites na mesma instalação de duas maneiras diferentes: você pode usá-los como diretório, ou seja, subpasta, do site principal, por exemplo http://a-minha-rede.com/blog1, http://a-minha-rede.com/blog2, etc… ou então você poderá usar o poderá configurá-los em subdomínio http://blog1.a-minha-rede.com/, http://blog2.a-minha-rede.com/, etc….

A opção de subdomínio é a que vamos abordar aqui, pois é a que requer mais preocupações na configuração e também a que possibilita ter domínios completamente separados para qualquer um dos sites configurados na rede.

Requisitos

Antes de instalar, você deverá primeiro se perguntar qual vai ser o seu tipo de configuração para a rede: subdomínios ou subdiretórios. A opção de subdiretórios não requer preocupações extra ao nível do servidor, no entanto, se você quiser optar pela configuração subdomínios terá que ver se consegue fazer uma das seguintes instruções no servidor da sua instalação:

  • Editar as entradas DNS do seu domínio;
  • Usando CPanel, Plesk ou Webmin, criar subdomínios do mesmo domínio que apontem para o mesmo caminho do domínio principal;
  • Criar hosts virtuais na configuração do seu Apache de modo que todas apontem para a mesma diretoria de webroot;

Você deve ter que poder realizar pelo menos uma destas ações para poder usufruir da instalação Multisite. Caso nenhuma destas opções esteja disponível ou não as consiga encontrar, contate o seu fornecedor de hosting e peça que o guie neste processo. Se nenhuma destas opções estiver disponível, você não poderá proceder com esta configuração, sendo que, o melhor será arranjar um serviço de hosting que lhe dê esta possibilidade.

Se você puder fazer qualquer uma destas opções, é preferível usar a primeira, pois não terá que criar hosts virtuais ou indicar no CPanel os subdomínios manualmente.

Editar as entradas DNS

Para esta opção precisamos apenas de acrescentar uma entrada Wildcard ao domínio, ou seja, uma entrada *.a-minha-rede.com para que a se possa criar vários subdomínios.

Usando o CPanel:

  • Terá que ter acesso à opção Edit DNS Zone (Editar zona DNS), que se encontra listada no conjunto DNS Functions (Ferramentas DNS).
  • Clique em Edit DNS Zone. Aparecerá uma lista dos seus domínios configurados. Selecione o domínio que deseja.
  • Faça scroll até encontrar Add New Entries Below this Line e escreva o que se encontra na figura, mudando apenas 65.66.67.68 para o IP da sua máquina.
  • Guarde as suas definições.

Usando o Plesk

  • Vá até DNS Management e selecione o domínio que pretende configurar.
  • Configure como está na figura em cima e descrito no procedimento acima.
  • Clique em Renew DNS para atualizar as configurações.

Configurar o Apache para subdomínios e permalinks

Pode acontecer que o seu servidor Apache não reúna todas as condições necessárias para procedermos, o que vai fazr com que a instalação falhe e o site deixe de funcionar.

Neste caso vamos ter que nos preocupar com duas condições:

  • Se o mod_rewrite do Apache se encontra ativo, que possibilita a existência de ligações permanentes sem existir “símbolos esquisitos”
  • Se o virtual host aceita alias do domínio;

Para resolver o primeiro caso, o melhor será:

A) criar um arquivo php no root do seu servidor, onde se encontram os arquivos iniciais do WordPress conjuntamente com as diretorias wp-admin, wp-content e wp-includes. Crie um arquivo com o nome info.php e inclua o seguinte código:

<?php phpinfo(); ?>

Salve-o e abra-o no browser: http://a-minha-rede.com/info.php. Irá aparecer uma série de informações. Procure por mod_rewrite e se encontrar e a coluna da direita disser active, então poderemos prosseguir. Caso isso não aconteça, siga sugiro que instale um servidor XAMPP à parte.

É importante que, assim que terminar a sua pesquisa, você apague esse arquivo info.php. Ele contém informações muito importantes do seu servidor que, se for cair nas mãos erradas, poderá ser alvo de ataques por crackers.

B) Abra o arquivo httpd.conf ou equivalente, ou então através do painel de controlo CPanel ou Plesk procure pelas configurações do Servidor Web Apache e dentro do arquivo httpd.conf edite-o acrescentando o ServerAlias seguinte:

<VirtualHost a-minha-rede.com:80>
  ...
  ServerAlias *.a-minha-rede.com
  ...

PASSO 2: a instalação do Multisite

Agora que estamos prontos para proceder com a instalação, vamos prosseguir para criar a nossa rede de sites:

A) Abra o arquivo wp-config.php da sua instalação e coloque o seguinte código por baixo da variável $table_prefix:

define('WP_ALLOW_MULTISITE', true);

Salve o arquivo.

B) Vá à administração do seu WordPress e clique no submenu Rede/Network, que se encontra no menu Ferramentas/Tools. Aparecerá uma tela que irá pedir várias informações.

Ao ser perguntado se pretende instalação em subdominio ou em subdiretoria, escolha subdomínio, pois assim terá mais poder e funcionalidades sobre a rede. Caso a instalação seja feita num localhost, você só poderá usar a funcionalidade de subdiretorias.

Existem também algumas opções que você poderá alterar, como o nome que pretende dar à rede e endereço de e-mail do administrador da rede.

Após este passo, clique no botão para avançar. Este processo pode demorar algum tempo, pois o WordPress irá refazer a estrutura da base de dados e editar e escrever novo conteúdo. Em seguida, irá aparecer uma mensagem dizendo que está tudo pronto. Caso isso não aconteça, então vários blocos de código gerados pelo WordPress vão aparecer. Ele irá pedir para que você crie os arquivos com os códigos necessários. Neste caso procedemos assim:

  • O código do primeiro bloco você deve colar no wp-config.php logo abaixo do código que colocámos anteriormente.
  • O segundo bloco é o arquivo htaccess que é usado para rotear as chamadas ao servidor para os locais específicos. Crie um arquivo chamado .htaccess no root da instalação, e cole esse código. Caso o arquivo já exista, remova todo o seu conteúdo anteriormente gerado e cole este novo.
  • Crie a diretoria blogs.dir dentro do wp-content e dê-lhe permissões de escrita e leitura a todos os utilizadores. Você poderá fazer isso por linha de comandos ou por FTP usando chmod 777 wp-content/blogs.dir

Após isto concluído, faça login novamente na administração. A sua instalação multisite deverá já estar pronta!

Bônus: como remover o multisite de uma instalação WordPress

Este é um capítulo bônus para a série e deve ser considerado sempre de alto risco, uma vez que o WordPress com a opção do Multisite ativada não tem nenhum mecanismo para reverter esse processo, no entanto, é possível revertê-lo manualmente seguindo estes passos:

  • No menu do administrador da rede, apague todos os sites que se encontram.
  • Apague os códigos do wp-config.php que foram incluídos com a instalação do multisite.
  • Remova o arquivo .htaccess.
  • Remova o diretório blogs.dir do wp-content, mas cuidado para não apagar conteúdo importante.
  • No banco de dados, remova todas as tabelas dedicadas aos sites. Estas tabelas estão indicadas com um número após o prefixo, que corresponde ao ID do respetivo site.
  • Apague as tabelas que foram inseridas com a instalação do multisite. São elas: <prefixo>_blogs, <prefixo>_blog_versions, <prefixo>_registration_log, <prefixo>_signups, <prefixo>_site e <prefixo>_sitemeta

Após este processo, poderá acessar o site novamente e, se tudo correu bem, você terá novamente o seu site normal sem a opção do multisite.

Até a próxima!