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

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

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

ابدأ الدورة

مقدمة

تطوير تطبيق C# هو نصف المهمة فقط. لكي يصبح مشروعك متاحًا للمستخدمين على الإنترنت، يجب نشره على خادم. الخادم الخاص الافتراضي (VPS) هو الحل الأمثل لاستضافة تطبيقات .NET، لأنه يمنحك تحكمًا كاملاً في البيئة ويسمح لك بتكوين كل شيء وفقًا لاحتياجاتك المحددة.

في هذه المقالة، سنشرح العملية الكاملة لنشر تطبيق C# (ASP.NET Core) على VPS يعمل بنظام Linux (Ubuntu 22.04). ستتعلم كيفية تجهيز الخادم، وتثبيت البرامج اللازمة، ونشر التطبيق، وتكوين خادم الويب للعمل معه. جميع الخطوات مدعومة بأمثلة من الأكواد والأوامر.



1. تجهيز VPS وتثبيت .NET SDK

الخطوة الأولى هي تجهيز الخادم. سنستخدم Ubuntu 22.04 LTS، لأنه أحد أشهر وأنظمة التشغيل استقرارًا للخوادم. نتصل بـ VPS عبر SSH:

ssh user@your-server-ip

بعد تسجيل الدخول، نقوم بتحديث قائمة الحزم وتثبيت التبعيات اللازمة:

sudo apt updatesudo apt upgrade -ysudo apt install wget apt-transport-https software-properties-common -y

الآن نضيف مستودع Microsoft ونثبت .NET SDK. بالنسبة لـ .NET 8 نقوم بالتالي:

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 updatesudo apt install dotnet-sdk-8.0 -y

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

dotnet --version

إذا رأيت رقم الإصدار (مثل 8.0.100)، فكل شيء مثبت بشكل صحيح.

هام: إذا كان تطبيقك يستخدم قاعدة بيانات (مثل PostgreSQL أو SQLite)، فقم بتثبيت الحزمة المناسبة. بالنسبة لـ PostgreSQL:

sudo apt install postgresql postgresql-contrib -y


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

الآن سنقوم بتجهيز التطبيق نفسه للنشر. على جهاز الكمبيوتر المحلي الخاص بك (حيث يتم التطوير)، افتح الطرفية في جذر المشروع وقم بتنفيذ النشر في وضع Release:

dotnet publish -c Release -o ./publish

سينشئ هذا الأمر مجلدًا باسم publish يحتوي على جميع الملفات اللازمة لتشغيل التطبيق على الخادم. الآن نحتاج إلى تحميل هذا المجلد إلى VPS. نستخدم SCP أو SFTP. مثال باستخدام SCP:

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

حيث myapp هو اسم المجلد الذي سيتم تخزين تطبيقك فيه على الخادم.

بعد التحميل، نتصل بالخادم وننقل الملفات إلى مكان أكثر ملاءمة، مثل /var/www/myapp:

sudo mkdir -p /var/www/myappsudo cp -r /home/user/myapp/* /var/www/myapp/

لا تنسَ إعطاء الصلاحيات الصحيحة للمجلد:

sudo chown -R www-data:www-data /var/www/myappsudo chmod -R 755 /var/www/myapp


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

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

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

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

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

[Service]WorkingDirectory=/var/www/myappExecStart=/usr/bin/dotnet /var/www/myapp/YourApp.dllRestart=alwaysRestartSec=10KillSignal=SIGINTSyslogIdentifier=myappUser=www-dataEnvironment=ASPNETCORE_ENVIRONMENT=ProductionEnvironment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]WantedBy=multi-user.target

احفظ الملف (Ctrl+O، ثم Enter) واخرج (Ctrl+X). الآن أعد تحميل systemd وقم بتشغيل الخدمة:

sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myapp

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

المدونات

توصيات الكتب