Bereitstellung einer C++-Anwendung auf einem VPS: Schritt-für-Schritt-Anleitung
Die Entwicklung in C++ ist nur die halbe Miete. Damit Ihre Anwendung für Benutzer verfügbar wird, muss sie auf einem Server bereitgestellt werden. In diesem Artikel werden wir den Prozess der Bereitstellung einer C++-Anwendung auf einem VPS (Virtual Private Server) unter Linux im Detail durchgehen. Sie erfahren, wie Sie den Server vorbereiten, den Code kompilieren, den automatischen Start konfigurieren und die Sicherheit gewährleisten. Das Material richtet sich an Entwickler, die mit den Grundlagen von C++ und Linux vertraut sind.
1. Vorbereitung des VPS und Installation der erforderlichen Tools
Bevor Sie den Code hochladen, stellen Sie sicher, dass Ihr VPS einsatzbereit ist. Wir werden Ubuntu 22.04 LTS (oder neuer) verwenden – die stabilste und beliebteste Distribution für Webserver.
1.1. Verbindung zum Server herstellen
Nach dem Kauf des VPS erhalten Sie eine IP-Adresse, einen Benutzernamen (normalerweise root) und ein Passwort. Stellen Sie eine Verbindung über SSH her:
ssh root@Ihre_Server_IPAus Sicherheitsgründen wird empfohlen, einen separaten Benutzer zu erstellen und die Root-Anmeldung zu deaktivieren, aber für die erste Bereitstellung können Sie als root arbeiten.
1.2. Systemaktualisierung und Installation des Compilers
Aktualisieren wir den Paketmanager und installieren die erforderlichen Tools für die C++-Kompilierung:
apt update && apt upgrade -yapt install build-essential cmake git -y- build-essential – eine Sammlung von Compilern (g++, gcc) und Dienstprogrammen.
- cmake – ein Build-System, das die Kompilierung vereinfacht.
- git – zum Klonen des Repositorys.
Überprüfen Sie die Installation:
g++ --versioncmake --version2. Kompilierung und Build der C++-Anwendung
Angenommen, Ihre Anwendung befindet sich in einem Git-Repository. Klonen wir es auf den Server und bauen es.
2.1. Repository klonen
cd /optgit clone https://github.com/Ihr_Benutzername/Ihre_Anwendung.gitcd Ihre_AnwendungEs wird empfohlen, Projekte im Verzeichnis /opt oder /var/www zu platzieren, nicht im Home-Verzeichnis.
2.2. Build mit CMake
Erstellen wir ein separates Verzeichnis für den Build und starten CMake:
mkdir build && cd buildcmake ..make -j$(nproc)Das Flag -j$(nproc) beschleunigt die Kompilierung, indem es alle Prozessorkerne nutzt. Nach erfolgreichem Build erscheint die ausführbare Datei im Ordner build.
2.3. Testen der Anwendung
Starten Sie die Anwendung manuell, um sicherzustellen, dass sie funktioniert:
./Ihre_AnwendungWenn die Anwendung ein HTTP-Server ist, überprüfen Sie sie mit curl:
curl http://localhost:80803. Konfiguration des automatischen Starts mit systemd
Damit die Anwendung beim Serverstart automatisch startet und bei einem Absturz neu gestartet wird, erstellen wir einen systemd-Dienst.
3.1. Erstellen der Unit-Datei
Erstellen Sie die Datei /etc/systemd/system/myapp.service:
nano /etc/systemd/system/myapp.serviceFügen Sie den folgenden Inhalt ein (ersetzen Sie Pfade und Benutzernamen):
[Unit]Description=My C++ ApplicationAfter=network.target
[Service]ExecStart=/opt/Ihre_Anwendung/build/Ihre_AnwendungWorkingDirectory=/opt/Ihre_Anwendung/buildRestart=alwaysRestartSec=5User=www-dataGroup=www-data
[Install]WantedBy=multi-user.target- ExecStart – der vollständige Pfad zur ausführbaren Datei.
- Restart=always – automatischer Neustart bei einem Absturz.
- User/Group – es wird empfohlen, einen unprivilegierten Benutzer zu verwenden (z. B.
www-data).
3.2. Dienst starten
systemctl daemon-reloadsystemctl enable myapp.servicesystemctl start myapp.serviceÜberprüfen Sie den Status:
sys