Introdução
Este é o jeito mais rápido, mais seguro e que mais economiza recursos para hospedar o WordPress por conta própria em 2025. Vamos usar uma stack LEMP de verdade (Linux + Nginx + MySQL/MariaDB + PHP-FPM) com isolamento de PHP por site, cache de objetos com Redis, SSL automático e WP-CLI — tudo ajustado para velocidade e segurança.
Vamos lá.
Passo 0: Proteja e atualize sua VPS
(Se ainda não fez isso, siga primeiro um guia de proteção de VPS — só chaves SSH, firewall, fail2ban etc.)
apt update && apt upgrade -y
apt autoremove --purge
reboot
Passo 1: Instale a stack principal
# Nginx
apt install nginx -y
systemctl enable nginx
# MariaDB (better than MySQL on Debian)
apt install mariadb-server -y
systemctl enable mariadb
# PHP 8.3 + all needed extensions (using ondrej/sury repo)
apt install ca-certificates apt-transport-https lsb-release -y
wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /usr/share/keyrings/sury-php.gpg
echo "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list
apt update
apt install php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl php8.3-imagick php8.3-redis -y
systemctl enable php8.3-fpm
# Redis
curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" > /etc/apt/sources.list.d/redis.list
apt update && apt install redis-server -y
systemctl enable redis-server
# Certbot + WP-CLI
apt install python3-certbot-nginx -y
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp
Passo 2: Proteja o MariaDB e crie o banco de dados
mysql_secure_installation
mysql -u root -p
CREATE DATABASE wp_yoursite;
CREATE USER 'wp_yoursite'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL ON wp_yoursite.* TO 'wp_yoursite'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Passo 3: Isole o PHP-FPM por site (segurança + estabilidade)
cd /etc/php/8.3/fpm/pool.d/
cp www.conf yoursite.conf
nano yoursite.conf
Substitua:
- [www] → [yoursite]
- user = www-data → user = yoursiteuser (vamos criar esse usuário daqui a pouco)
- group = www-data → group = yoursiteuser
- listen = /run/php/php8.3-fpm.sock → listen = /run/php/php8.3-fpm-yoursite.sock
- Mude o gerenciador de processos de dynamic → ondemand (economiza RAM)
systemctl restart php8.3-fpm
(Vai falhar até o usuário existir — tudo bem.)
Passo 4: Otimize o PHP e ative o OPcache
sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/8.3/fpm/php.ini
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 10240M/" /etc/php/8.3/fpm/php.ini
sed -i "s/post_max_size = .*/post_max_size = 10240M/" /etc/php/8.3/fpm/php.ini
sed -i "s/max_execution_time = .*/max_execution_time = 600/" /etc/php/8.3/fpm/php.ini
sed -i "s/;opcache.enable=1/opcache.enable=1/" /etc/php/8.3/fpm/php.ini
sed -i "s/;opcache.memory_consumption=.*/opcache.memory_consumption=512/" /etc/php/8.3/fpm/php.ini
sed -i "s/;opcache.max_accelerated_files=.*/opcache.max_accelerated_files=20000/" /etc/php/8.3/fpm/php.ini
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/8.3/fpm/php.ini
Passo 5: Crie o usuário do sistema e o diretório do site
adduser yoursiteuser --shell /bin/bash
su yoursiteuser
mkdir ~/public_html && cd ~/public_html
echo "cd ~/public_html" >> ~/.bashrc
exit
Passo 6: Configuração do Nginx (rápida e segura)
nano /etc/nginx/sites-available/yoursite.conf
upstream php-yoursite {
server unix:/run/php/php8.3-fpm-yoursite.sock;
}
server {
listen 80;
listen [::]:80;
server_name yourdomain.com www.yourdomain.com;
root /home/yoursiteuser/public_html;
index index.php index.html;
client_max_body_size 10G;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php-yoursite;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?|ttf|eot)$ {
expires max;
log_not_found off;
}
}
ln -s /etc/nginx/sites-available/yoursite.conf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Passo 7: Instale o WordPress via WP-CLI (como o usuário do site)
su yoursiteuser
cd ~/public_html
wp core download
wp config create --dbname=wp_yoursite --dbuser=wp_yoursite --dbpass='strongpassword' --locale=en_US
wp core install --url=https://yourdomain.com --title="Your Site" --admin_user=admin --admin_password='strongpass' --admin_email=you@domain.com
Passo 8: SSL com Let’s Encrypt (renovação automática)
certbot --nginx -d yourdomain.com -d www.yourdomain.com
# Choose redirect to HTTPS when asked
Adicione o cron de renovação automática:
crontab -e
# Add:
0 0 * * 0 certbot renew --quiet
Passo 9: Ative o cache de objetos com Redis
# As root
usermod -aG redis yoursiteuser
chmod 770 /var/run/redis/redis-server.sock
# Optimize Redis config
sed -i 's/port 6379/port 0/' /etc/redis/redis.conf
sed -i 's|# unixsocket /run/redis/redis-server.sock|unixsocket /var/run/redis/redis-server.sock|' /etc/redis/redis.conf
sed -i 's/# unixsocketperm 700/unixsocketperm 770/' /etc/redis/redis.conf
sed -i 's/# maxmemory .*/maxmemory 1024mb/' /etc/redis/redis.conf
systemctl restart redis-server
# As yoursiteuser
cd ~/public_html
wp plugin install redis-cache --activate
wp config set WP_REDIS_SCHEME unix
wp config set WP_REDIS_PATH '/var/run/redis/redis-server.sock'
wp redis enable
Pronto!
Agora você tem:
- Pool do PHP-FPM totalmente isolado (1 usuário = 1 site = nenhum estrago entre sites)
- Cache de objetos com Redis via socket Unix
- OPcache + limites de upload enormes
- Renovação automática do SSL
- O roteamento mais rápido possível no Nginx
- WP-CLI pronto para usar
O seu wp-admin vai parecer instantâneo, e o site vai aguentar o tráfego como um campeão — mesmo numa VPS de US$ 5/mês.
Próximos passos:
- Instale um plugin de cache de página (qualquer um gratuito serve)
- Configure o Cloudflare (opcional, mas recomendado)
- Backups regulares
Aproveite o seu WordPress privado e ultrarrápido!
Obrigado pela leitura! 😊