Introdução
Desenvolver uma aplicação PHP é apenas metade do trabalho. A segunda parte, igualmente importante, é o deploy, ou seja, a implantação do código pronto no servidor de produção. Muitos desenvolvedores iniciantes enfrentam dificuldades ao transferir um projeto da máquina local para um VPS (Virtual Private Server). Configurar o ambiente, trabalhar com o servidor web, bancos de dados e segurança pode parecer complicado, mas na verdade é um processo sequencial e compreensível.
Neste artigo, vamos analisar passo a passo como realizar corretamente o deploy de uma aplicação PHP em um VPS. Você aprenderá como preparar o servidor, configurar Nginx e PHP-FPM, conectar o banco de dados MySQL e automatizar a publicação de atualizações via Git. O material é destinado a quem já possui conhecimentos básicos de Linux e Git, mas deseja sistematizar o aprendizado.
1. Preparação do servidor e instalação da pilha LEMP
Primeiramente, é necessário conectar-se ao seu VPS via SSH e instalar o conjunto básico de programas, conhecido como LEMP (Linux, Nginx, MySQL, PHP).
Conecte-se ao servidor:
ssh root@seu-ip-address
Atualize os pacotes e instale Nginx, MySQL e PHP com as extensões necessárias:
sudo apt update && sudo apt upgrade -y
sudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y
Após a instalação, inicie os serviços e adicione-os à inicialização automática:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php8.1-fpm # a versão pode variar
sudo systemctl enable php8.1-fpm
Nesta etapa, a infraestrutura básica está pronta. Agora, vamos configurar o banco de dados e o servidor web.
2. Configuração do MySQL e criação do banco de dados
A maioria das aplicações PHP (por exemplo, WordPress, Laravel ou projetos personalizados) requer um banco de dados. Execute a configuração inicial do MySQL:
sudo mysql_secure_installation
Siga as instruções: defina uma senha para o root, remova usuários anônimos, proíba o login remoto do root e remova o banco de dados de teste.
Agora, crie um banco de dados e um usuário para sua aplicação. Acesse o console MySQL:
sudo mysql -u root -p
Execute as consultas SQL (substitua myapp, myuser e mypassword pelos seus valores):
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
O banco de dados está pronto. Anote o nome do banco, o usuário e a senha — eles serão necessários ao configurar a aplicação.
3. Colocação do código e configuração do host virtual Nginx
Agora é hora de transferir o código da sua aplicação PHP para o servidor. A maneira mais conveniente é usar Git. Suponha que seu projeto esteja hospedado no GitHub ou GitLab.
Crie um diretório para o projeto e clone o repositório:
sudo mkdir -p /var/www/myapp
sudo chown -R $USER:$USER /var/www/myapp
git clone https://github.com/seu-username/seu-repositorio.git /var/www/myapp
Se o projeto usa Composer (por exemplo, Laravel ou Symfony), execute a instalação das dependências:
cd /var/www/myapp
composer install --no-dev --optimize-autoloader
Configure as permissões de acesso. Geralmente, o servidor web precisa ter acesso de escrita a algumas pastas (por exemplo, storage e bootstrap/cache no Laravel):
sudo chown -R www-data:www-data /var/www/myapp/storage
sudo chown -R www-data:www-data /var/www/myapp/bootstrap/cache
Agora, vamos criar a configuração do host virtual para o Nginx. Crie o arquivo:
sudo nano /etc/nginx/sites-available/myapp
Insira a seguinte configuração (adaptada