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

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

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

ابدأ الدورة

مقدمة

تطوير تطبيق C# على منصة .NET هو نصف المهمة فقط. لجعل مشروعك متاحًا للمستخدمين على الإنترنت، يجب نشره بشكل صحيح على الخادم. VPS (الخادم الخاص الافتراضي) هو الحل المثالي للشركات الصغيرة والمتوسطة والمطورين المستقلين: فهو يمنحك تحكمًا كاملاً في البيئة بسعر مناسب. في هذه المقالة، سنشرح العملية الكاملة لنشر تطبيق C# على VPS يعمل بنظام Linux (Ubuntu 22.04). ستتعلم كيفية تحضير الخادم، ونشر التطبيق، وإعداد reverse proxy باستخدام Nginx، وضمان التشغيل التلقائي عبر systemd.



1. تحضير VPS وتثبيت .NET Runtime

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

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

ssh root@your-server-ip

يوصى بإنشاء مستخدم منفصل فورًا للأمان:

adduser appuserusermod -aG sudo appusersu - appuser


1.2. تثبيت .NET Runtime

لتشغيل تطبيق C# على الخادم، تحتاج إلى ASP.NET Core Runtime. أضف مستودع Microsoft وقم بتثبيت الحزمة:

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.debsudo apt-get updatesudo apt-get install -y aspnetcore-runtime-8.0

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

dotnet --list-runtimes

يجب أن ترى سطرًا يحتوي على إصدار ASP.NET Core 8.0.0.



2. نشر التطبيق وتحميله على الخادم

2.1. النشر (publish) على الجهاز المحلي

على جهاز الكمبيوتر الخاص بك باستخدام Visual Studio أو .NET CLI، افتح المشروع ونفذ أمر النشر:

dotnet publish -c Release -o ./publish

سينشئ هذا الأمر مجلد publish يحتوي على جميع الملفات اللازمة لتشغيل التطبيق (بما في ذلك تبعيات runtime إذا كنت تستخدم FDD — Framework-Dependent Deployment).



2.2. التحميل على VPS

انسخ مجلد publish إلى الخادم باستخدام scp أو sftp. على الجهاز المحلي، نفذ:

scp -r ./publish appuser@your-server-ip:/home/appuser/myapp

الآن على الخادم، تحقق من وجود الملفات:

ls -la /home/appuser/myapp


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

لتشغيل التطبيق عند بدء تشغيل النظام وإعادة تشغيله تلقائيًا بعد الأعطال، قم بإنشاء وحدة systemd.

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

أنشئ ملفًا /etc/systemd/system/myapp.service بصلاحيات root:

sudo nano /etc/systemd/system/myapp.service

ألصق المحتوى التالي:

[Unit]Description=My ASP.NET Core ApplicationAfter=network.target

[Service]WorkingDirectory=/home/appuser/myappExecStart=/usr/bin/dotnet /home/appuser/myapp/YourAppName.dllRestart=alwaysRestartSec=10KillSignal=SIGINTSyslogIdentifier=myappUser=appuserEnvironment=ASPNETCORE_ENVIRONMENT=ProductionEnvironment=ASPNETCORE_URLS=http://localhost:5000

[Install]WantedBy=multi-user.target

استبدل YourAppName.dll بالاسم الفعلي لملف .dll الخاص بك (عادةً ما يتطابق مع اسم المشروع).



3.2. تشغيل الخدمة وتمكينها

sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myapp

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

sudo systemctl status myapp

إذا تم الإعداد بشكل صحيح، سترى الحالة active (running). الآن التطبيق يستمع على المنفذ 5000 على الواجهة المحلية.



4. إعداد Nginx كـ reverse proxy

للوصول إلى التطبيق من الخارج عبر المنافذ القياسية (80/443) ولإضافة شهادة SSL، قم بتثبيت وإعداد Nginx.

4.1. تثبيت Nginx

sudo apt updatesudo apt install nginx -y


4.2. تكوين الموقع

المدونات

توصيات الكتب