Implantação de aplicação PHP em VPS: guia passo a passo do início ao fim

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: 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_servidor


1.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 deployer

Agora, 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 4096

Copie a chave pública para o servidor:

ssh-copy-id deployer@seu_IP_do_servidor

Apó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 sshd


Passo 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 -y

Verifique o status:

sudo systemctl status nginx


2.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 -y


2.3 Instalação do MySQL (MariaDB)

sudo apt install mariadb-server mariadb-client -ysudo mysql_secure_installation

Crie 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/myapp

Insira 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 nginx


Passo 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                

Blogs

Book Recommendations