Se planeia alojar o WordPress no Cloud Server, este guia vai ser-lhe útil. LAMP significa Linux, Apache, MariaDB e software PHP que, em conjunto, são conhecidos como LAMP stack.
Prós e contras de escolher o servidor web Apache em vez do NGINX
- Prós: Suporta ficheiro .htaccess que é normalmente utilizado por muitos Page Caching & Optimization. Esta é uma grande escolha para não-codificador.
- Cons: É ligeiramente menos performante do que NGINX mas que pode ser gerido usando APO. Para um local de alto tráfego, a pilha LEMP é a melhor escolha..
Siga estes 3 passos e veja o vídeo. Precisa de ajuda? Contacte-me. 😊
Agora antes de começar, aqui vai uma dica rápida. Use Search and Replace Extension para mudar em massa o
Dica de poupança de tempo para os utilizadores do Google Chrome.example.com
para o seu próprio domínio nesta página web.

Parte A: Manter os Nameservers activos
Vamos utilizar o Cloudflare DNS para obter o certificado Let’s Encrypt Wildcard SSL. Complete este passo primeiro para desfrutar de migração de tempo zero.
Verificar Nameservers actuais
- Encontre os seus Nameservers activos em https://www.whatsmydns.net/#NS/example.com
- Se vir que utiliza o seu anterior Hosting ou Domain registrar NS por defeito, então deve substituir por Cloudflare.
- Aprenda a utilizar o DNS Cloudflare
Parte B: Preparar um servidor Ubuntu 22.04 LTS Server

1. Inscreva-se na Vultr para obter $100 Créditos grátis (Válido por 14 dias)
Como alguém que experimentou tantas empresas de servidores Cloud, a minha experiência diz-me que não se pode errar com a Vultr. Estes tipos são genuínos e atenciosos quando se trata de apoio e serviços.

⚡ Desempenho
- 3ª Geração AMD EPYC™
- NVME / SSD
- CPU até 4 GHz
- Velocidade de rede até 5Gbps
- Datacenter na América, Europa, Ásia, Austraillia
- IPV6 pronto
💡 Características
- Painel de instrumentos para principiantes
- Um clique para Snapshot
- Cópias de segurança automáticas (pagas)
- Firewall Nuvem Livre
- Protecção DDoS (Paid)
- 100% KVM Virtualization
⚙ Apoio
- PayPal/Cartão
- Suporte de bilhetes 24/7
- Documentação
2. Deloy um novo servidor
Basta clicar no botão “mais” para começar

3. Escolha o tipo de servidor
Seleccione Cloud Compute para CPU partilhada em preços acessíveis.

Depois disto, pode seleccionar a opção AMD High Performance ou Intel High Frequency em Tecnologia de CPU & Armazenamento. Tem o CPU e o Disco NVMe mais rápido de sempre. Se o orçamento for menor, então vá com o plano Regular com CPU Intel, no qual obterá o disco SSD.

4. Escolha uma localização de servidor
A Vultr oferece servidor nos quatro continentes. Para a menor latência e melhor desempenho, deve sempre escolher uma região que seja a mais próxima para o seu público.

Por exemplo, se 99% do tráfego vier da Índia, escolha a região mais próxima – Mumbai.
Ásia
- Mumbai, Índia
- Delhi NCR, Índia
- Bengaluru, Índia
- Singapura, Singapura
- Tóquio, Japão
- Seul, Coreia do Sul
América
- Miami, Estados Unidos
- Atlanta, Estados Unidos
- Chicago, Estados Unidos
- Dallas, Estados Unidos
- Honolulu, Estados Unidos
- Los Angeles, Estados Unidos
- Cidade do México, México
- Nova Iorque (NJ), Estados Unidos
- Seattle, Estados Unidos
- Vale do Silício, Estados Unidos
- Toronto, Canadá, São Paulo
Europa
- Estocolmo, Suécia
- Londres, Reino Unido
- Amsterdão, Países Baixos
- Frankfurt, Alemanha
- Madrid, Espanha
- Paris, França
- Varsóvia, Polónia
Australlia
- Sydney, Austrálias
- Melbourne, Austrália
5. Seleccione a Imagem do Servidor > Sistema Operativo > Ubuntu 22.04 LTS x64

O apoio a longo prazo (LTS) é uma política de gestão do ciclo de vida do produto em que uma versão estável do software informático é mantida durante um período de tempo mais longo do que a edição padrão.

6. Escolha um tamanho de servidor

O plano de $6/mo seria um óptimo ponto de partida para um novo blogue. Pode actualizar a qualquer altura de acordo com os requisitos.
Dica: Se estiver a migrar, verifique o tamanho total da instalação em Informação sobre saúde do Sítio..

7. Habilitar IPV6, Backup

8. Acrescentar uma chave SSH
Este é um passo recomendado e opcional para o reforço da segurança.

- Clique em Adicionar novo botão para adicionar uma nova chave SSH para submeter a sua chave 🔒Public.
- Gerar Chaves usando o método abaixo conforme o seu SO.

- Descarregar a aplicação PuTTy.
- Procura de PuTTygen no menu Iniciar
- Clique em Gerar botão e passe o ponteiro do rato
- Copiar chave pública e fornecer à Vultr
- Introduza a frase-chave
- Guardar 🔑Private Chave no local mais seguro.
- Isto pode ser usado para login no SSH ou SFTP.

- Corre:
ssh-keygen -t rsa
. Para uma chave mais segura de 4096 bits, execute:ssh-keygen -t rsa -b 4096
- Prima enter quando lhe for perguntado onde pretende guardar a chave (isto irá utilizar a localização predefinida).
- Introduza uma frase-chave para a sua chave.
- Corre
cat ~/.ssh/id_rsa.pub
– isto dar-lhe-á a chave no formato adequado para colar no painel de controlo. - Assegure-se de que faz cópias de segurança dos
~/.ssh/id_rsa
ficheiro. Isto não pode ser recuperado se for perdido.
Seleccione a sua chave SSH
Seguindo estas etapas, anexará a sua chave pública à sua nova Instância. Depois, poderá iniciar sessão no SSH utilizando a palavra-passe de texto simples e a chave SSH ambas.

9. Ligar a regra da Firewall Web à Instância do Servidor

- Clique em Gerir e criar um novo Grupo Firewall.
- Permitir a porta TCP 22 para SSH. 80 para HTTP e 443 HTTPS para IPV4 e IPV6, ambas as regras.
- Uma vez feito, ligue o grupo Firewall à sua Instância.


10. Digite Hostname e clique em Deploy Now

Agora, verá a instalação no progresso

11. Ir para a página de Nova Instância
Copiar endereço IP, nome de utilizador e palavra-passe. A sua porta padrão é 22.

12. Desactivar Password Login
Por razões de segurança, recomenda-se desactivar a autenticação por senha e permitir apenas a autenticação baseada em chaves.
- Editar o ficheiro de configuração
nano /etc/ssh/sshd_config
- Encontrar (CTRL + W) e pesquisar
PasswordAuthentication
- Mudança de valor de sim para não
- Para salvar o tipo, CTRL + O
- Reiniciar o serviço SSH usando o comando
sudo service ssh restart

A partir da próxima vez, só poderá usar SSH através da chave, conforme mostrado no vídeo.
Para Linux ou Mac, utilizar Terminal com comando como este
ssh root@192.168.1.1 -p 22 -i id_rsa
Passo 13. Desactivar o UFW
Quando se implementa uma nova instância na VULTR, esta vem com a UFW (Uncomplicated Firewall) activada que mantém todas as portas bloqueadas excepto a porta SSH 22. Isto pode retornar ERR_CONNECTION_REFUSED Error no navegador. Para corrigir isto, eu sugeriria manter o UFW desactivado.
ufw disable
Agora, vou acelerar o processo original para a instalação do WordPress na pilha de LAMP.
Parte C. Implantar WordPress no LAMP Stack
1. Actualização de repositórios
Digite abaixo o comando e prima a tecla enter
sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot
ou
wget -qO update https://dl.gulshankumar.net/update && chmod +x update
Da próxima vez, usar sempre abaixo o comando de atalho para actualizar.
./update
2. Instalar o MariaDB com segurança
Faça novamente login e entre com o seguinte comando
sudo apt install mariadb-server -y && sudo mysql_secure_installation
Responder às perguntas abaixo
- Enter current password for root (enter for none): Prima a tecla Enter
- Switch to unix_socket authentication [Y/n]: Prima N e entre
- Set root password? [Y/n]: Prima a tecla Enter.
- New password: Digite a sua palavra-passe, pode usar Dashlane para gerar. Direito de clicar em colar.
- Re-enter new password: Digite novamente a sua palavra-passe.
Após a definição bem sucedida da senha, verá
Senha actualizada com sucesso! Recarregar tabelas de privilégios... ... Sucesso!
Além disso, é necessário responder às seguintes perguntas.
- Remove anonymous users? [Y/n]: Prima Y e entre
- Disallow root login remotely? [Y/n]: Prima Y e entre
- Remove test database and access to it? [Y/n]: Prima Y e entre
- Reload privilege tables now? [Y/n]: Prima Y e entre
3. Criar uma nova base de dados para WordPress
Inicie sessão no MySQL, prima a tecla enter quando pedir a palavra-passe.
mysql -u root -p
Criar uma nova base de dados, e conceder privilégios para utilizar o seu utilizador com palavra-passe. É aqui que o WordPress armazena toda a informação de correio, páginas, temas, plugin, etc.
create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;
Onde o seu …
base de dados é wordpress
nome de utilizador é gulshan
a senha é 5pY8CKJxDRJEGQNkX7
Dica: Considere usar uma credencial de login única
4. Instalar PHP 8.2, Apache2 e definir Permission
sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/
Ajustar a configuração PHP
A maioria dos temas e plugins extravagantes requer uma configuração PHP de alta qualidade para funcionar. Por conseguinte, devemos fazer estas alterações.
sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart
5. Instalar Wildcard Let’s Encrypt SSL Certificate
Criar um ficheiro cloudflare.ini
dentro de /root/.secrets/
directório.
mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini
Adicionar código abaixo e guardar usando CTRL+O e sair usando CTRL+X
dns_cloudflare_email = "your-cloudflare-email@example.com"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"
Encontre o seu e-mail Cloudflare e chave API Global em “O Meu Perfil” > Tokens API > Chave API Global
chmod 0400 /root/.secrets/cloudflare.ini
Instalar Certbot e DNS Authenticator de acordo com OS e servidor web HTTP
apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare
Obter Certificado SSL Wildcard
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01
Definir Renovação Automática usando Cron Job
- Tipo
crontab -e
- Tipo 1 para nano editor
- Entre abaixo do comando e salve
0 0 * * * /etc/init.d/apache2 reload >/dev/null 2>&1
Renovação de testes
certbot renew --dry-run
Activar estes módulos úteis
a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2
6. Criar Directório App para cada sítio WordPress que pretende instalar
mkdir -p /var/www/example.com/public
Este será o seu caminho Raiz do Documento no seu ficheiro de Configuração Apache. A razão de criar o site example.com dentro de www é manter cada site organizado de forma organizada. Segundo, também criei directório público com o objectivo de manter todos os ficheiros centrais do WordPress lá, mas wp-config.php
um nível acima (/var/www/example.com/)
.
7. Criar configuração do Apache2
Isto é importante onde precisa de configurar o seu domínio, como o Apache2 deve tratar os seus pedidos HTTP.
Eliminar ficheiros de configuração de blocos de servidor padrão do Apache2
rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars
Agora, Criar um novo bloco de servidores ficheiros de configuração. Tem de fazer este passo sempre que quiser adicionar um novo WordPress no mesmo servidor.
Por favor, substitua example.com por domínio próprio e não se esqueça de terminar o nome do ficheiro de configuração com a extensão .conf. Caso contrário, não funcionará.
cd /etc/apache2/sites-available/
nano example.com.conf
- Substituir
example.com
com domínio próprio - Introduza o código abaixo e prima ctrl+o para guardar e ctrl+x para sair.
##############################################################
#
# NOTAS: Por favor, faça uma pesquisa e substitua o site example.com para possuir o domínio.
#
##############################################################
# Vamos forçar HTTPS non-www
# Se quiser HTTPS www, por favor mantenha https://www.example.com/ na última linha.
# Ou poderá enfrentar um problema de loop redireccionado.
<VirtualHost *:80>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Protocols h2 h2c http/1.1
DirectoryIndex index.php index.html
# Recommended for Cloudflare users
# RemoteIPHeader X-Forwarded-For
# Document Root Path (Pay attention to this path to avoid 404)
DocumentRoot /var/www/example.com/public
# Logs Path is /var/log/apache2/example.com-access.log
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
# Let's Encrypt SSL
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# Permitir o uso de ficheiro .htaccess para anular a configuração
<Directory /var/www/example.com/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Bloquear a execução PHP dentro do Directório de Uploads
<Directory /var/www/example.com/public/wp-content/uploads>
<Files *.php>
deny from all
</Files>
</Directory>
# Proteger wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# HTTP Auth para segurança adicional
# Se quiser a página de login HTTP Auth para WordPress,
# então considere descomentar este bloco de código.
# Se o fizer, deve também gerar um ficheiro .htpasswd.
# <Files wp-login.php>
# AuthName "Admins Only"
# AuthUserFile /var/www/.htpasswd
# AuthType basic
# require user gulshan
# <RequireAny>
# Require ip 127.0.0.1
# Require valid-user
# </RequireAny>
# </Files>
# Bloquear XML-RPC para evitar o ataque DDoS.
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# Manusear a execução PHP
<FilesMatch ".php$">
SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
Para guardar, prima a tecla CTRL+O e Enter. Em seguida, sair do nano editor usando o comando CTRL+X.
Para activar o bloco do servidor, introduza o comando
Antes de correr abaixo do comando, substitua por favor example.com para possuir o domínio.
a2ensite example.com.conf
Configuração de teste (opcional)
apache2 -t
Reiniciar e actualizar
service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y
8. Instalar ficheiros WordPress
Descarregar ficheiros WordPress em /var/www/example.com/public/
directório e definir permissão.
cd /var/www/example.com/public/ && wget https://pt.wordpress.org/latest-pt_PT.tar.gz && tar -xvzf latest-pt_PT.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf latest-pt_PT.tar.gz wordpress && chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
Para actualizar a permissão no futuro, utilize o comando abaixo. Isto irá definir www-data
para tudo dentro do directório /var/www/
chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
9. Actualização do DNS
Se estiver a alojar o WordPress localmente, quiser contornar o proxy ou quiser realizar uma migração sem tempo de paragem, este passo é útil. Geralmente prefiro no caso da área Static WordPress Dev😉
- Há duas maneiras de apontar o DNS. Se estiver a migrar para Vultr e quiser testar primeiro localmente, então edite o seu ficheiro de anfitrião e aponte para lá.
Para Windows
- Ir para propriedades de
C:\Windows\System32\drivers\etc\hosts
- Alterar a permissão “Segurança” para controlo total do seu nome de utilizador actual
- Ncomo pode editar livremente o ficheiro anfitrião sob o seu utilizador do Sistema e guardá-lo.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com
Um exemplo, é este o aspecto que deve ter
Para Mac ou Linux
Pode editar ficheiros de anfitriões usando este comando sob sudo user.
sudo nano /etc/hosts
Actualização do DNS com Cloudflare
- Se tudo parecer perfeito e quiser fazer o seu site ao vivo, inicie a sessão no Cloudflare DNS e actualize o novo IP.
Record Type | Name | Value |
---|---|---|
A | @ | IPV4 |
AAAA | @ | IPV6 |
CNAME | www | example.com |
onde @ denota exemplo de domínio example.com
9. Visite o seu nome de domínio para configurar o WordPress
Se quiser manter o domínio da versão não-www para o seu WordPress, então visite a versão não-www.
https://example.com
- Fornecer credencial de login na base de dados para iniciar a configuração do WordPress
- Instalação em execução
- Preencha os detalhes básicos do seu novo site e instale o WordPress.
- Iniciar sessão no WordPress
Outras coisas necessárias
- Aumentar a memória de troca para lidar com a carga repentina
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- Certifique-se de utilizar um plugin de Page Caching para manter a carga do servidor sob controlo. Como se trata de uma pilha LAMP, recomendo-lhe o WP Fastest Cache.
- Manter sempre os backups.
- Utilize os Serviços SMTP plugin para o envio de e-mail do WordPress, caso contrário não poderá receber a ligação de redefinição de palavra-passe, formulário de contacto 7 mensagens.
Finalmente, a instalação do WordPress foi concluída.
Aprecio muito o vosso precioso tempo na leitura deste artigo. Vejo-o no próximo tutorial!