Déploiement d'une application C++ sur VPS : guide étape par étape
Le développement en C++ n'est que la moitié du travail. Pour que votre application soit accessible aux utilisateurs, elle doit être déployée sur un serveur. Dans cet article, nous allons détailler le processus de déploiement d'une application C++ sur un VPS (Virtual Private Server) sous Linux. Vous apprendrez à préparer le serveur, compiler le code, configurer le démarrage automatique et assurer la sécurité. Ce contenu est destiné aux développeurs familiarisés avec les bases du C++ et de Linux.
1. Préparation du VPS et installation des outils nécessaires
Avant de charger le code, assurez-vous que votre VPS est prêt à fonctionner. Nous utiliserons Ubuntu 22.04 LTS (ou plus récent) — la distribution la plus stable et populaire pour les serveurs web.
1.1. Connexion au serveur
Après avoir acheté le VPS, vous recevrez une adresse IP, un nom d'utilisateur (généralement root) et un mot de passe. Connectez-vous via SSH :
ssh root@votre_adresse_IP_serveurPour des raisons de sécurité, il est recommandé de créer un utilisateur dédié et de désactiver la connexion root, mais pour un premier déploiement, vous pouvez travailler en tant que root.
1.2. Mise à jour du système et installation du compilateur
Mettons à jour le gestionnaire de paquets et installons les outils nécessaires pour la compilation C++ :
apt update && apt upgrade -yapt install build-essential cmake git -y- build-essential — ensemble de compilateurs (g++, gcc) et d'utilitaires.
- cmake — système de build facilitant la compilation.
- git — pour cloner le dépôt.
Vérifiez l'installation :
g++ --versioncmake --version2. Compilation et build de l'application C++
Supposons que votre application se trouve dans un dépôt Git. Clonons-la sur le serveur et construisons-la.
2.1. Clonage du dépôt
cd /optgit clone https://github.com/votre_nom_utilisateur/votre_application.gitcd votre_applicationIl est recommandé de placer les projets dans le répertoire /opt ou /var/www, plutôt que dans le dossier personnel.
2.2. Build via CMake
Créons un répertoire séparé pour le build et lançons CMake :
mkdir build && cd buildcmake ..make -j$(nproc)Le flag -j$(nproc) accélère la compilation en utilisant tous les cœurs du processeur. Après un build réussi, le fichier exécutable apparaîtra dans le dossier build.
2.3. Test de l'application
Lancez l'application manuellement pour vérifier qu'elle fonctionne :
./votre_applicationSi l'application est un serveur HTTP, testez-la via curl :
curl http://localhost:80803. Configuration du démarrage automatique via systemd
Pour que l'application démarre automatiquement au lancement du serveur et redémarre en cas de panne, créons un service systemd.
3.1. Création du fichier unit
Créez le fichier /etc/systemd/system/myapp.service :
nano /etc/systemd/system/myapp.serviceInsérez le contenu suivant (remplacez les chemins et le nom d'utilisateur) :
[Unit]Description=My C++ ApplicationAfter=network.target
[Service]ExecStart=/opt/votre_application/build/votre_applicationWorkingDirectory=/opt/votre_application/buildRestart=alwaysRestartSec=5User=www-dataGroup=www-data
[Install]WantedBy=multi-user.target- ExecStart — chemin complet vers le fichier exécutable.
- Restart=always — redémarrage automatique en cas de crash.
- User/Group — il est recommandé d'utiliser un utilisateur non privilégié (par exemple,
www-data).
3.2. Lancement du service
systemctl daemon-reloadsystemctl enable myapp.servicesystemctl start myapp.serviceVérifiez le statut :
sys