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 VPS é a solução ideal para projetos PHP

\n

Desenvolver uma aplicação PHP é apenas metade do trabalho. A segunda parte, igualmente importante, é a implantação adequada no servidor. Um Servidor Virtual Privado (VPS) oferece flexibilidade, controle e desempenho que não estão disponíveis em hospedagem compartilhada. Você obtém acesso root, a capacidade de ajustar o ambiente e isolamento total de recursos.

\n

Neste guia, percorreremos o caminho desde a compra do servidor até a aplicação em funcionamento, usando PHP 8.x, Nginx, MySQL e Git como exemplo. Todas as etapas são descritas para o sistema operacional Ubuntu 22.04 LTS — a distribuição mais popular para servidores web.

\n\n

1. Configuração inicial do VPS e conexão

\n\n

1.1. Escolha e compra do VPS

\n

Para uma aplicação PHP, os requisitos mínimos são: 1 vCPU, 1 GB de RAM, 20 GB SSD. Recomendamos provedores com boa reputação: DigitalOcean, Linode, Vultr ou nacionais como Timeweb, Beget.

\n

Após a compra, você receberá um endereço IP, senha root (ou chave SSH).

\n\n

1.2. Conexão via SSH e criação de usuário

\n

Conecte-se ao servidor (substitua 192.168.1.1 pelo seu IP):

\n
ssh root@192.168.1.1
\n

Crie um usuário não privilegiado para o trabalho diário:

\n
adduser deployer\nusermod -aG sudo deployer
\n

Configure chaves SSH para acesso seguro:

\n
mkdir -p /home/deployer/.ssh\ncp ~/.ssh/authorized_keys /home/deployer/.ssh/\nchown -R deployer:deployer /home/deployer/.ssh\nchmod 700 /home/deployer/.ssh\nchmod 600 /home/deployer/.ssh/authorized_keys
\n

Desabilite o login root por senha editando /etc/ssh/sshd_config:

\n
PermitRootLogin prohibit-password\nPasswordAuthentication no
\n

Reinicie o SSH: systemctl restart sshd

\n\n

1.3. Segurança básica do servidor

\n
    \n
  • Atualize os pacotes: apt update && apt upgrade -y
  • \n
  • Instale o fail2ban: apt install fail2ban -y
  • \n
  • Configure o UFW (firewall):
  • \n
\n
ufw allow OpenSSH\nufw allow 'Nginx Full'\nufw enable
\n\n

2. Instalação e configuração da pilha LEMP (Linux, Nginx, MySQL, PHP)

\n\n

2.1. Instalação do Nginx

\n
apt install nginx -y\nsystemctl enable nginx\nsystemctl start nginx
\n

Verifique o funcionamento abrindo o endereço IP do servidor no navegador. Você deve ver a página de boas-vindas do Nginx.

\n\n

2.2. Instalação do PHP 8.x e PHP-FPM

\n

Adicione o repositório para a versão atual do PHP:

\n
apt install software-properties-common -y\nadd-apt-repository ppa:ondrej/php -y\napt update\napt install php8.2-fpm php8.2-mysql php8.2-xml php8.2-curl php8.2-mbstring php8.2-zip php8.2-gd -y
\n

Verifique o status do PHP-FPM:

\n
systemctl status php8.2-fpm
\n\n

2.3. Instalação do MySQL (MariaDB)

\n
apt install mariadb-server -y\nsystemctl enable mariadb\nsystemctl start mariadb
\n

Execute o script de segurança:

\n
mysql_secure_installation
\n

Crie um banco de dados e um usuário para a aplicação:

\n
mysql -u root -p\nCREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong_password';\nGRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;
\n\n

2.4. Configuração do host virtual Nginx

\n

Crie um arquivo de configuração para o seu domínio (por exemplo, myapp.com):

\n
nano /etc/nginx/sites-available/myapp
\n

Conteúdo do arquivo:

\n
server {\n    listen 80;\n    server_name myapp.com www.myapp.com;\n    root /var/www/myapp/public;\n    index index.php index.html;\n\n    location / {\n        try_files $uri $uri/ /index.php?$query_string;\n    }\n\n    location ~ \\.php$ {\n        fastcgi_pass unix:                

Blogs

Book Recommendations