A combinação de WordPress e Nginx pode trazer eficiência, consumindo menos memória RAM e processamento. Você vai precisar de uma conta na Cloudflare, para incluir certificado de segurança instalado no servdidor, para o domínio utilizado. Caso seja necessário você pode usar o Nginx para redirecionar subdomínios e domínos, ser for o caso.
O ambiente de nuvem pública utilizado foi o do Magalu Cloud, no datacenter de Fortaleza, Ceará. Servidor com 8 GB de RAM, 4 processadores e 100 GB de espaço em SSD. O custo mensal do servidor estava em abril de 2024 em R$ 226,72. O servidor MySQL 8 estava a R$ 66,77 – com 1 processador e 1 GB de RAM. O processo de instalação do WordPress foi feito em um servidor Ubuntu 22.04 usando NGINX, MySQL 8 e PHP 8.3. Com isso você terá uma plataforma poderosa e eficiente para executar o seu site WordPress de um jeito prático.
Implantar WordPress na pilha LEMP
Para um melhor desempenho usamos a versão 8.3 do PHP com ajustes na configuração em dinamic, que deu a capacidade de antender um tráfego maior. Nossa aplicação recebe mais de 20 mil visitas por mês.
O Nginx traz alto desempenho para o ambiente, por sua capacidade de lidar com grande volume de tráfeco de maneira eficiente e escalável. O cache usado foi o Redis.
Para uma maior praticidade, sugiro que você execute o comando sudo -s, para evitar a repetição do comando sudo no processo de implantação e de eventais ajustes.
Você pode rodar o MariaDB no Ubuntu. Mas caso seu ambiente precise de maior desempenho, seria o caso de usar o servidor MySQL 8 da Luiza Labs.
Responda às perguntas abaixo
- Enter current password for root (enter for none): Pressione Enter
- Switch to unix_socket authentication [Y/n]: Digite n e pressione Enter.
- Set root password? [Y/n]: Pressione Enter.
- New password: Copie uma senha forte do Dashlane Password Generator. Para colar a senha no terminal SSH, clique com o botão direito do mouse e pressione Enter. A senha não é visível na tela.
- Re-enter new password: Clique com o botão direito do mouse e pressione Enter novamente.
Depois disso você vai ver:
Password updated successfully!
Reloading privilege tables..
... Success!
Então, você vai responder às seguintes perguntas.
- Remove anonymous users? [Y/n]: Pressione Enter
- Disallow root login remotely? [Y/n]: Pressione Enter
- Remove test database and access to it? [Y/n]: Pressione Enter
- Reload privilege tables now? [Y/n]: Pressione Enter
Faça login no MariaDB, pressione a tecla Enter quando solicitar a senha.
Aqui, se banco de dados é wordpress, com seu usuriocadastrado na nuvem com respectiva senha Ml0zmYeeDHzyLqAr
No momento, o PHP 8.3 é a versão mais estável e recente. Se precisar de uma versão diferente do PHP, mantenha a mesma versão em todos os comandos.
Ajuste a configuração do PHP
Com servidor PHP operando na opção dynamic Avalie a performance do serviço web e faça ajustes em pm.start_servers, pm.min_spare_servers e pm.max_spare_servers. Segue um exemplo utilizado em meu ambiente.
; Note: This value is mandatory.
pm = dynamic
; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
; This value sets the limit on the number of simultaneous requests that will be
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
; CGI. The below defaults are based on a server without much resources. Don't
; forget to tweak pm.* to fit your needs.
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
; Note: This value is mandatory.
pm.max_children = 60
; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: (min_spare_servers + max_spare_servers) / 2
pm.start_servers = 16
; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 8
; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 20
; The number of rate to spawn child processes at once.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
; Default Value: 32
pm.max_spawn_rate = 32
5. Instale o certificado Wildcard Let’s Encrypt SSL
Encontre seu e-mail da Cloudflare e sua chave de API global em “Meu perfil” > Tokens de API > Chave de API global
Instale Certbot e DNS Authenticator de acordo com o sistema operacional e servidor web HTTP
Obtenha certificado SSL curinga
Definir renovação automática usando Cron Job
Renovação de teste
6. Configurar bloco de servidor Nginx
Isso é importante quando você for configurar o seu domínio, como o NGINX deve lidar com suas solicitações HTTP. É onde você também pode incluir redirecionamentos, uso de CACHE etc.
Exclua blocos de servidor padrão.
Crie um novo bloco de servidor
Substitua dominio.com.br
pelo seu próprio domínio.
Para salvar, pressione a tecla CTRL+ O e Enter. Em seguida, saia do editor nano usando o comando CTRL + X. Evite o uso do AMP – opção da Google para dispositivos móveis.
Outra alternativa é usar o plugin WP Rocket, mas ele é pago.
7. Crie links simbólicos entre dois diretórios
Se você deixar de fazer essa etapa – seu site não será exibido. Na verdade, vai aparecer a mensagem ERR_CONNECTION_REFUSED
.
Para ativar o bloco do servidor, crie um link simbólico do arquivo do bloco do servidor NGINX do diretório /etc/nginx/sites-available/
para /etc/nginx/sites-enabled
8. Instale o WordPress
9. Atualizando DNS
Se você estiver hospedando o WordPress localmente, quiser ignorar o proxy ou realizar uma migração com tempo de inatividade zero, esta etapa será útil.
Para Windows
Abra o prompt do MS DOS e digite o comando ipconfig /flushdns
Agora, faça todos os ajustes dos plugins de sua preferência para envio de e-mail, Cache, loja de comércio eletrônico, venda de conteúdo por assinatura etc.
Recomende esse guia para um colega que administre sites WordPress. Aproveita para recomendar MagaluCloud.