Implantação de aplicação C++ em VPS: guia passo a passo
Desenvolvimento em C++ é apenas metade do trabalho. Para que sua aplicação se torne acessível aos usuários, é necessário implantá-la em um servidor. Neste artigo, vamos detalhar o processo de implantação de uma aplicação C++ em um VPS (Virtual Private Server) rodando Linux. Você aprenderá como preparar o servidor, compilar o código, configurar a inicialização automática e garantir a segurança. O material é voltado para desenvolvedores familiarizados com os fundamentos de C++ e Linux.
1. Preparação do VPS e instalação das ferramentas necessárias
Antes de enviar o código, certifique-se de que seu VPS está pronto para uso. Usaremos Ubuntu 22.04 LTS (ou superior) — a distribuição mais estável e popular para servidores web.
1.1. Conexão ao servidor
Após adquirir o VPS, você receberá um endereço IP, um nome de usuário (geralmente root) e uma senha. Conecte-se via SSH:
ssh root@seu_IP_do_servidorPor segurança, é recomendado criar um usuário separado e desabilitar o login como root, mas para a primeira implantação você pode trabalhar como root.
1.2. Atualização do sistema e instalação do compilador
Vamos atualizar o gerenciador de pacotes e instalar as ferramentas necessárias para compilar C++:
apt update && apt upgrade -yapt install build-essential cmake git -y- build-essential — conjunto de compiladores (g++, gcc) e utilitários.
- cmake — sistema de build que simplifica a compilação.
- git — para clonar o repositório.
Verifique a instalação:
g++ --versioncmake --version2. Compilação e build da aplicação C++
Suponha que sua aplicação esteja em um repositório Git. Vamos cloná-la no servidor e compilá-la.
2.1. Clonagem do repositório
cd /optgit clone https://github.com/seu_usuario/sua_aplicacao.gitcd sua_aplicacaoRecomenda-se colocar os projetos no diretório /opt ou /var/www, e não na pasta home.
2.2. Build via CMake
Vamos criar um diretório separado para o build e executar o CMake:
mkdir build && cd buildcmake ..make -j$(nproc)A flag -j$(nproc) acelera a compilação usando todos os núcleos da CPU. Após o build bem-sucedido, o arquivo executável aparecerá na pasta build.
2.3. Teste da aplicação
Execute a aplicação manualmente para garantir que está funcionando:
./sua_aplicacaoSe a aplicação for um servidor HTTP, verifique-a via curl:
curl http://localhost:80803. Configuração da inicialização automática via systemd
Para que a aplicação inicie automaticamente na inicialização do servidor e reinicie em caso de falha, vamos criar um serviço systemd.
3.1. Criação do arquivo unit
Crie o arquivo /etc/systemd/system/myapp.service:
nano /etc/systemd/system/myapp.serviceInsira o seguinte conteúdo (substitua os caminhos e o nome do usuário):
[Unit]Description=My C++ ApplicationAfter=network.target
[Service]ExecStart=/opt/sua_aplicacao/build/sua_aplicacaoWorkingDirectory=/opt/sua_aplicacao/buildRestart=alwaysRestartSec=5User=www-dataGroup=www-data
[Install]WantedBy=multi-user.target- ExecStart — caminho completo para o arquivo executável.
- Restart=always — reinicialização automática em caso de falha.
- User/Group — recomenda-se usar um usuário não privilegiado (por exemplo,
www-data).
3.2. Inicialização do serviço
systemctl daemon-reloadsystemctl enable myapp.servicesystemctl start myapp.serviceVerifique o status:
sys