Implantação Avançada de Aplicação PHP em VPS: Guia Passo a Passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: do desenvolvimento local ao servidor de produção

Desenvolver uma aplicação PHP na máquina local é apenas metade do trabalho. A verdadeira maestria começa quando o código vai para o servidor e começa a atender usuários reais. A implantação avançada de PHP em VPS não é apenas copiar arquivos via FTP. É um processo complexo que envolve configuração de ambiente, segurança, automação e monitoramento.

Neste artigo, vamos abordar como configurar uma VPS para hospedagem profissional de aplicações PHP, usando ferramentas modernas e práticas de DevOps. Você aprenderá como implantar uma aplicação na stack Nginx + PHP-FPM, configurar um pipeline de CI/CD, otimizar o desempenho e implementar monitoramento.

Pressupõe-se que você tenha conhecimentos básicos de Linux, PHP e servidores web. Estamos avançando para o nível avançado.



1. Preparação da VPS e configuração do ambiente

Escolha e configuração inicial do servidor

Para implantação avançada, escolha uma VPS com pelo menos 2 GB de RAM e disco SSD. Os SOs recomendados são Ubuntu 22.04 LTS ou Debian 12. Após obter acesso via SSH, execute a configuração básica:

  • Atualização de pacotes: sudo apt update && sudo apt upgrade -y
  • Criação de usuário com privilégios sudo: sudo adduser deployer && sudo usermod -aG sudo deployer
  • Configuração de chaves SSH (desative o login por senha)
  • Instalação do fail2ban para proteção contra força bruta
  • Configuração do UFW (liberar portas 22, 80, 443)


Instalação da stack LEMP (Nginx + PHP-FPM + MySQL)

Usamos o Nginx como servidor frontend e o PHP-FPM para processar PHP. Instale todos os componentes com um único comando:

sudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip composer git -y

Verifique as versões:

php -vnginx -vmysql --version


Configuração do PHP-FPM para alta performance

Para implantação avançada, altere a configuração do PHP-FPM. Edite o arquivo /etc/php/8.3/fpm/pool.d/www.conf (a versão pode variar):

pm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 500

Configurações importantes do php.ini para produção:

memory_limit = 256Mupload_max_filesize = 64Mpost_max_size = 64Mmax_execution_time = 300date.timezone = America/Sao_Paulo

Reinicie o PHP-FPM: sudo systemctl restart php8.3-fpm



2. Implantação da aplicação: do Git à produção

Clonagem e configuração de permissões

Crie um diretório para o projeto e clone o repositório:

sudo mkdir -p /var/www/seuprojetosudo chown -R deployer:deployer /var/www/seuprojetocd /var/www/seuprojetogit clone git@github.com:seuusuario/seuprojeto.git .

Configure as permissões:

sudo chown -R www-data:www-data /var/www/seuprojeto/storagesudo chown -R www-data:www-data /var/www/seuprojeto/bootstrap/cachesudo chmod -R 775 /var/www/seuprojeto/storagesudo chmod -R 775 /var/www/seuprojeto/bootstrap/cache


Configuração do host virtual Nginx

Crie um arquivo de configuração para o seu domínio:

sudo nano /etc/nginx/sites-available/seuprojeto

Exemplo de configuração avançada com cache e compressão:

server {    listen 80;    server_name seudominio.com www.seudominio.com;    root /var/www/seuprojeto/public;

index index.php index.html;

charset utf-8;

location / { try_files $uri $uri/ /index.php?$query_string; }

location ~ \\.php$ { fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

location ~ /\

Blogs

Book Recommendations