Introdução: Por que o VPS é a melhor escolha para um projeto PHP?
Desenvolver uma aplicação web em PHP é apenas metade do trabalho. A segunda parte, igualmente importante, é a implantação adequada. Se você superou a hospedagem compartilhada com suas limitações e deseja controle total sobre o ambiente, o servidor virtual privado (VPS) é a solução ideal. Neste artigo, percorreremos o caminho desde a compra do servidor até a execução da sua aplicação PHP em modo de produção. Você aprenderá como configurar a combinação Nginx + PHP-FPM + MySQL, configurar o domínio, o certificado SSL e automatizar as atualizações de código.
Passo 1: Configuração inicial do VPS e conexão
1.1 Escolha do SO e primeiro acesso
Recomendamos usar Ubuntu 22.04 LTS — estável e com suporte de longo prazo. Após comprar o VPS, você receberá um endereço IP e a senha de root.
Conecte-se via SSH:
ssh root@seu_IP_do_servidor1.2 Criação de usuário e configuração de segurança
Trabalhar como root é uma má prática. Vamos criar um usuário separado com privilégios sudo:
adduser deployerusermod -aG sudo deployerAgora, configure as chaves SSH para um acesso conveniente e seguro. Na máquina local, gere uma chave (se não tiver uma):
ssh-keygen -t rsa -b 4096Copie a chave pública para o servidor:
ssh-copy-id deployer@seu_IP_do_servidorApós verificar o acesso por chave, desabilite o acesso por senha e o acesso root:
sudo nano /etc/ssh/sshd_config# Altere:PermitRootLogin noPasswordAuthentication no# Reinicie o SSH:sudo systemctl restart sshdPasso 2: Instalação e configuração da pilha LEMP (Nginx, PHP, MySQL)
2.1 Instalação do Nginx
Atualize os pacotes e instale o servidor web:
sudo apt update && sudo apt upgrade -ysudo apt install nginx -yVerifique o status:
sudo systemctl status nginx2.2 Instalação do PHP 8.x e extensões necessárias
Adicione o repositório com a versão atual do PHP:
sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/phpsudo apt updatesudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip -y2.3 Instalação do MySQL (MariaDB)
sudo apt install mariadb-server mariadb-client -ysudo mysql_secure_installationCrie o banco de dados e o usuário para sua aplicação:
sudo mysql -u rootCREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong_password';GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';FLUSH PRIVILEGES;EXIT;Passo 3: Configuração do host virtual (Server Block) no Nginx
Crie um arquivo de configuração para o seu domínio (por exemplo, myapp.ru):
sudo nano /etc/nginx/sites-available/myappInsira o seguinte modelo para PHP-FPM:
server { listen 80; server_name myapp.ru www.myapp.ru; root /var/www/myapp/public; index index.php index.html;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ \\.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; }
location ~ /\\.ht { deny all; }}Ative o site e recarregue o Nginx:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/sudo nginx -t # Verificar configuraçãosudo systemctl reload nginxPasso 4: Implantação do código da aplicação (Git + Composer)
4.1 Clonagem do repositório
Crie o diretório para o projeto e clone o código (por exemplo, do GitHub):
sudo mkdir -p /var/www/myappsudo chown -R deployer:depl