Configurando um VPS para hospedagem de site – Parte 11: Multisite II

Na Parte 10 deste tutorial mostramos como instalar múltiplos sites direcionando domínios e subdomínios diferentes para o mesmo servidor VPS.

Vamos dar continuidade e alterar o WordPress para um modo avançado e usar uma Rede de Sites (o WordPress permite o gerenciamento de vários sites através do seu painel administrativo, facilitando atualizações e instalações de plugins).

* Esse tipo de instalação é opcional, eu mesmo prefiro não usar, pois muitos plugins gratuitos só aceitam configurar Multisite no WordPress após adquirirmos a versão paga.


 

Arquivos de configuração Nginx:

Antes de fazer a alteração para o Multisite no WordPress vamos preparar alguns arquivos modelo do Nginx para não precisarmos redigitar as configurações em cada server block. *O Nginx permite inserir outros arquivos de configuração dentro de um server block usando o comando “include“:

Criaremos 3 arquivos que serão reutilizados em todas as instalações WordPress dentro do sub-diretório “global”:

  • common.conf” (Configurações aplicáveis a todos os sites)
  • wordpress.conf” (Configurações para sites WordPress)
  • multisite.conf” (Configurações para Multisite com subdiretórios do WordPress)
  • Mas antes vamos criar o sub-diretório “global” dentro do diretório de configuração do Nginx, digite o comando: “sudo mkdir -p /etc/nginx/global

1.Conteúdo de common.conf, edite o arquivo com o comando “sudo nano /etc/nginx/global/common.conf” (para facilitar você pode criar o arquivo com este comando e salvar o arquivo, em seguida abrir com o Notepad++ via WinSCP e copiar/colar o conteúdo abaixo):

# Arquivo de configuracao comum a qualquer site
listen 80;
index index.php index.html index.htm;
# Nao guardar log de favicon
location = /favicon.ico {
    log_not_found off;
    access_log off;
}
# Localizacao de robots.txt
location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}
# Configuracao de paginas de erro
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
# Nega acesso aos arquivos escondidos
location ~ /\. {
    deny all;
}

2.Conteúdo de wordpress.conf, edite o arquivo com o comando “sudo nano /etc/nginx/global/wordpress.conf“:

# Arquivo de configuracao para sites WordPress
location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
}

# Nega acesso a arquivos PHP no diretorio uploads
location ~* /(?:uploads|files)/.*\.php$ {
    deny all;
}
# Habilita suporte ao PHP
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

3.Conteúdo de multisite.conf, edite o arquivo com o comando “sudo nano /etc/nginx/global/multisite.conf” (será usado somente para multisite com subdiretórios):

# Regras para o WordPress Multisite.
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}

 

Criando Server Blocks com os arquivos modelo:

Agora que temos arquivos padrão para nossas configurações Nginx torna-se fácil criar server blocks tanto para sites comuns quanto para sites WordPress. *Usando o comando “include” você pode criar todos os server blocks dentro do mesmo arquivo pois as linhas de configurações foram reduzidas.

Crie um arquivo novo para abrigar todos os seus server blocks, digite o comando “sudo nano /etc/nginx/sites-available/wordpress

1.Exemplo de server block para um site simples WordPress sem multisite (por exemplo poderíamos alterar a primeira instalação WordPress que fizemos para este modelo de server block abaixo). Escreva o seguinte conteúdo dentro do arquivo:

server {
    server_name www.fatorbinario.com;
    root /var/www/html;
    access_log /var/log/nginx/www.fatorbinario.com.access.log;
    error_log /var/log/nginx/www.fatorbinario.com.error.log;
    include global/common.conf;
    include global/wordpress.conf;
}

2.Exemplo para multisite com subdiretórios (note que a única diferença é que incluímos a linha include global/multisite.conf):

server {
    server_name www.fatorbinario.com;
    root /var/www/html;
    access_log /var/log/nginx/www.fatorbinario.com.access.log;
    error_log /var/log/nginx/www.fatorbinario.com.error.log;
    include global/common.conf;
    include global/wordpress.conf;
    include global/multisite.conf;
}

3.Exemplo para multisite com subdomínios (esse tipo de bloco serve para instalações WordPress usando um wildcard “*” substituindo o nome do subdomínio):

* NÃO é necessário incluir o arquivo multisite.conf nesta configuração pois aqueles comandos são somente para instalação com subdiretórios.

server {
    server_name *.fatorbinario.com;
    root /var/www/html;
    access_log /var/log/nginx/www.fatorbinario.com.access.log;
    error_log /var/log/nginx/www.fatorbinario.com.error.log;
    include global/common.conf;
    include global/wordpress.conf;
}

* Cuidado ao copiar os exemplos acima, sempre altere a linha “root” apontando para o diretório da sua instalação em cada bloco. Você provavelmente não utilizará os 3 exemplos no seu site, então defina qual o tipo de instalação irá fazer e copie o bloco correto (na continuação do tutorial abaixo usarei o Exemplo 3). Substitua sempre fatorbinario.com pelo seu domínio.


 Alguns passos adicionais:

  • Habilite o novo arquivo de configuração em sites-enabled: “sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
  • Remova o arquivo-bloco padrão do Nginx: “sudo rm /etc/nginx/sites-enabled/default
  • Reinicie o Nginx: “sudo service nginx restart

 

Alterando o WordPress para Multisite:

1.Uma restrição que existe na configuração do Multisite é o formato dos links permanentes, a opção padrão não é aceita. Acesse o painel do WordPress e clique em “Configurações/Links Permanentes“, em seguida altere de “Padrão” para “Nome do Post“. Salve a alteração.

2.Clique em “Configurações/Geral” e altere a URL do WordPress e do site para o domínio absoluto (sem o “www”). Isso evitará a criação de subdomínios com nomes antes de www, como por exemplo: blog.www.fatorbinario.com. Após alterar deverá ficar assim: https://fatorbinario.com (altere para o seu domínio) nas duas URLs. Após salvar talvez seja necessário fazer login novamente.

3.Edite o arquivo wp-config.php via Notepad++ ou digitando o comando “sudo nano /var/www/html/wp-config.php e adicione a seguinte linha ao final:

  • define( 'WP_ALLOW_MULTISITE', true );

4.Atualize a página do seu WordPress e note que no menu “Ferramentas” do painel aparecerá a opção “Instalação da Rede“.

  • Em nosso exemplo optamos por Subdomínios, então marque esta opção. *Verifique se no exemplo ao lado da caixa de opção aparece como “site1.seudominio.com”, senão altere conforme o passo 2.
  • Digite um nome para a rede e confirme o seu email. Clique em “Instalar“.

5.Após a instalação, o WordPress exibirá 2 configurações adicionais para acionar a rede, nós só usaremos a primeira pois a segunda (referente ao .htaccess) é somente para o Apache e nós estamos usando o Nginx.

  • Edite o wp-config.php novamente e insira as 6 linhas exibidas na tela antes da linha /* Isto é tudo, pode parar de editar! */
  • Após salvar o arquivo clique no link fornecido ao final da página para fazer login novamente no WordPress.

* Note que logo abaixo de “Painel” no menu do WordPress aparecerá as opções “Início” e “Meus Sites“.

6.Para adicionar um site novo em sua rede mova o cursor do mouse sobre o símbolo com uma “chave” na barra administrativa ao topo da tela. Irá aparecer um sub-menu “Painel da Rede“, clique em “Sites“. A lista com o nosso site principal aparecerá e sobre ela tem a opção “Adicionar Novo“.

7.Agora é só preencher com as informações do seu subdomínio (Exemplo: forum – para um subdomínio forum.fatorbinario.com), clique em “Adicionar Site“. Um novo site será criado na rede sem necessidade de reinstalar o WordPress ou criar banco de dados adicionais.


É isso. Se você fez todos os passos corretamente é só acessar o seu novo site criado pela rede. Não precisa alterar nada na Zona DNS e nem adicionar server blocks ao Nginx. Cada subdomínio será criado na rede automaticamente pois configuramos nosso servidor para usar wildcards 😉


 Configurando um VPS para hospedagem de site – Parte 11: Multisite II
Tutorial VPS Básico Ubuntu 〉〉 ÍNDICE ANT PROX

©2014-2018 Fator Binário - Todos os direitos reservados

Fazer login com suas credenciais

ou    

Esqueceu sua senha?

Create Account