نشر تطبيق C++ على VPS: دليل خطوة بخطوة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

نشر تطبيق C++ على VPS: دليل خطوة بخطوة



تطوير تطبيق C++ هو نصف المهمة فقط. لجعل تطبيقك متاحًا للمستخدمين، يجب نشره على خادم. في هذه المقالة، سنشرح بالتفصيل عملية نشر تطبيق C++ على VPS (خادم خاص افتراضي) يعمل بنظام Linux. ستتعلم كيفية تجهيز الخادم، وترجمة الكود، وإعداد التشغيل التلقائي، وضمان الأمان. المادة موجهة للمطورين الذين لديهم معرفة أساسية بـ C++ و Linux.



1. تجهيز VPS وتثبيت الأدوات اللازمة



قبل تحميل الكود، تأكد من أن VPS الخاص بك جاهز للعمل. سنستخدم Ubuntu 22.04 LTS (أو أحدث) - وهو التوزيع الأكثر استقرارًا وشعبية لخوادم الويب.



1.1. الاتصال بالخادم



بعد شراء VPS، ستحصل على عنوان IP واسم مستخدم (عادةً root) وكلمة مرور. اتصل عبر SSH:



ssh root@عنوان_IP_الخاص_بك


لأغراض الأمان، يُوصى بإنشاء مستخدم منفصل وتعطيل تسجيل الدخول عبر root، ولكن للنشر الأول يمكنك العمل كمستخدم root.



1.2. تحديث النظام وتثبيت المترجم



سنقوم بتحديث مدير الحزم وتثبيت الأدوات اللازمة لبناء C++:



apt update && apt upgrade -yapt install build-essential cmake git -y


  • build-essential — مجموعة من المترجمات (g++, gcc) والأدوات المساعدة.
  • cmake — نظام بناء يبسط عملية الترجمة.
  • git — لاستنساخ المستودع.


تحقق من التثبيت:



g++ --versioncmake --version


2. ترجمة وبناء تطبيق C++



لنفترض أن تطبيقك موجود في مستودع Git. سنقوم باستنساخه على الخادم وبنائه.



2.1. استنساخ المستودع



cd /optgit clone https://github.com/اسم_المستخدم_خاصتك/تطبيقك.gitcd تطبيقك


يُوصى بوضع المشاريع في الدليل /opt أو /var/www، وليس في المجلد الرئيسي.



2.2. البناء عبر CMake



سنقوم بإنشاء دليل منفصل للبناء وتشغيل CMake:



mkdir build && cd buildcmake ..make -j$(nproc)


العلامة -j$(nproc) تسرّع الترجمة باستخدام جميع أنوية المعالج. بعد البناء الناجح، سيظهر الملف التنفيذي في مجلد build.



2.3. اختبار التطبيق



قم بتشغيل التطبيق يدويًا للتأكد من أنه يعمل:



./تطبيقك


إذا كان التطبيق خادم HTTP، فاختبره عبر curl:



curl http://localhost:8080


3. إعداد التشغيل التلقائي عبر systemd



لكي يعمل التطبيق تلقائيًا عند بدء تشغيل الخادم ويعاد تشغيله في حالة حدوث عطل، سنقوم بإنشاء خدمة systemd.



3.1. إنشاء ملف الوحدة



أنشئ ملفًا باسم /etc/systemd/system/myapp.service:



nano /etc/systemd/system/myapp.service


ألصق المحتوى التالي (استبدل المسارات واسم المستخدم):



[Unit]Description=تطبيق C++ الخاص بيAfter=network.target

[Service]ExecStart=/opt/تطبيقك/build/تطبيقكWorkingDirectory=/opt/تطبيقك/buildRestart=alwaysRestartSec=5User=www-dataGroup=www-data

[Install]WantedBy=multi-user.target


  • ExecStart — المسار الكامل للملف التنفيذي.
  • Restart=always — إعادة التشغيل التلقائي عند التعطل.
  • User/Group — يُوصى باستخدام مستخدم غير مميز (مثل www-data).


3.2. تشغيل الخدمة



systemctl daemon-reloadsystemctl enable myapp.servicesystemctl start myapp.service


تحقق من الحالة:



sys                

المدونات

توصيات الكتب