Configurar domínio com e sem www no EasyEngine

O Easy Engine é uma mão na roda, que utiliza sabe bem disso, mas com a atualização de versões, alguns comandos e localização de arquivos ficou um pouco confuso.

Principalmente porque no site do Easy Engine, que tem uma vasta documentação e fórum (em inglês), não se sabe ao certo de qual versão que está se resolvendo um problema.

Eu utilizo há um bom tempo, e tem muito mais prós do que contras, porém estava com um problema em meus sites que fui buscar uma solução.

Acontecia que em alguns domínios, que normalmente crio com o www na frente, pois acho que fica melhor visualmente, o site redirecionava para outro site.

Este redirecionamento normalmente ia para o primeiro site criado na VPS que estava utilizando.

Também na hora da criação do site, ficava em dúvida de criar com ou sem o www no nome do domínio.

Então colocarei um passo a passo do que descobri para facilitar seu trabalho.

Ambiente

Pra começar, vou citar primeiramente o ambiente que fiz isto.

Servidor Ubuntu 18.04 64 bits com 1 GB de memória, hospedado na vultr.

Instalado Easy Engine versão 4.0.14

$ ee cli info

+-------------------+-------------------------------------------+
| OS                | Linux 4.15.0-66-generic #75-Ubuntu SMP Tue|
|                   | 9 UTC 2019 x86_64                         |
| Shell             | /bin/bash                                 |
| PHP binary        | /usr/bin/php7.2                           |
| PHP version       | 7.2.25-1+ubuntu18.04.1+deb.sury.org+1     |
| php.ini used      | /etc/php/7.2/cli/php.ini                  |
| EE root dir       | phar://ee.phar                            |
| EE vendor dir     | phar://ee.phar/vendor                     |
| EE phar path      | /root                                     |
| EE packages dir   |                                           |
| EE global config  | /opt/easyengine/config/config.yml         |
| EE project config |                                           |
| EE version        | 4.0.14                                    |
+-------------------+-------------------------------------------+

Backup do site antigo

Caso você já tenha um site, quer fazer um backup antes de mexer em tudo, com o Easy Engine é muito simples.

Fazendo backup do BD

A primeira coisa a ser feita é tirar um backup do Banco de Dados.

Usaremos o terminal para isto. Você terá que ter um acesso ssh para conseguir chegar aqui.

Acessamos o site para usar o WP-Cli

No terminal, gosto de criar uma pasta na /home

ee shell www.dominio.com.br

Este comando acima acessa o site, de acordo com o nome que você criou. Isto tem que respeitar o com ou sem www que foi criado.

Depois o comando para fazer o backup do BD

wp db export
Success: Exported to 'www_dominio_com_br-2019-12-18-18b6ce4.sql'

Agora, saímos do docker do site

exit

Backup dos arquivos + BD

Eu gosto de criar uma pasta para guardar tudo no Home

mkdir /home/backup_dominio.com.br

Agora copiamos os arquivos e o backup do banco de dados.

cp -par /var/lib/docker/volumes/wwwdominiocombr_htdocs/_data/htdocs/* /home/backup_dominio.com.br/

Este comando acima guardará todas as informações do htdocs do seu site.

Apagando o site antigo

Confirme todos seus arquivos se foram copiados corretamente antes de excluir o site.

Se estiver tudo ok, além do arquivo .sql do backup do banco de dados, prossiga para a exclusão do site.

ee site delete www.dominio.com.br

Criando o site

Utilizando o Easy Engine para criar o novo site

Agora vamos criar o site do zero, depois restaurar o backup (para quem já tinha o site funcionando antes e tirou o backup no passo anterior.

Escolhi criar ele sem o www. Na linha de comando digite:

ee site create dominio.com.br --wp --le

O site será criado, e as informações de login serão mostradas para você na tela, como nome de usuário, banco de dados, senha do wordpress, etc…

Guarde estas informações se não for restaurar um backup anterior

Se você fez o backup e vai restaurar, as informações de usuários e senhas do WordPress serão restauradas de acordo com seu backup.

Configurando o www e sem www

Para deixar redondinho, aceitando tanto conexões via http ou https como com ou sem www, vamos mexer no nginx do domínio

vi /opt/easyengine/services/nginx-proxy/conf.d/dominio.com.br-redirect.conf

Neste arquivo, você verá algo mais ou menos assim:

server {
listen 80;
server_name www.dominio.com.br;
return 301 https://dominio.com.br$request_uri;
}
server {
listen 443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-...-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_certificate /etc/nginx/certs/dominio.com.br.crt;
ssl_certificate_key /etc/nginx/certs/dominio.com.br.key;
server_name www.dominio.com.br;
return 301 https://dominio.com.br$request_uri;
}

Nota: A linha ssl_ciphers foi reduzida para ficar mais fácil de visualizar

Editaremos para esta forma abaixo (lembre-se de substituir o dominio.com.br para seu nome do domínio)

server {
listen 80;
server_name dominio.com.br;
return 301 https://www.dominio.com.br$request_uri;
}
server {
listen 80;
server_name www.dominio.com.br;
return 301 https://www.dominio.com.br$request_uri;
}
server {
listen 443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-...-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_certificate /etc/nginx/certs/dominio.com.br.crt;
ssl_certificate_key /etc/nginx/certs/dominio.com.br.key;
server_name dominio.com.br;
return 301 https://www.dominio.com.br$request_uri;
}

Note que no exemplo acima, temos dois “server” para a porta 80. Como a maioria já sabe, a porta 80 trata-se do http:// e a porta 443 do https://

Então nestes dois primeiros “servers”, ele redireciona todo o tráfego vindo de http://dominio.com.br e http://www.dominio.com.br para o domínio real, que neste caso usarei o https://www.dominio.com.br

Restaurando o backup

Caso você tenha feito o backup anteriormente, vamos restaurá-lo agora.

Copie os arquivos do backup para o novo local

cp -par /home/backup_dominio.com.br/* /var/lib/docker/volumes/dominiocombr_htdocs/_data/htdocs/

E acessamos o docker do site para restaurar o banco de dados

ee shell dominio.com.br

Com o acesso ao docker, executamos o comando para restauração do bd

wp db import 'www_dominio_com_br-2019-12-18-18b6ce4.sql'
Success: Exported to 'www_dominio_com_br-2019-12-18-18b6ce4.sql'

Saia do docker

exit

E reinicie o servidor.

Aqui você tem duas opções: Reiniciar somente o docker

ee site restart dominio.com.br

Ou reiniciar o servidor por completo

init 6

E agora faça os testes com seu site, acesse todos os endereços para ver se eles redirecionam para o correto, que é https://www.dominio.com.br

A lista para fazer o teste é:

  • http://dominio.com.br
  • http://www.dominio.com.br
  • https://dominio.com.br
  • http://dominio.com.br/pagina

Espero que gostem. Um abraço

Deixe uma resposta