مقدمة
في هذا البرنامج التعليمي، سنتعلم كيفية تشغيل تطبيق بايثون Django على خوادم Hetzner Webhosting أو Managed Server. Django هو إطار عمل ويب بايثون. يعمل الإطار افتراضيًا على WSGI (واجهة تطبيق خادم الويب)، ولكن mod_wsgi غير متوفر على خادم Apache المُدار. مع ذلك، هناك عدة طرق لتحويل WSGI إلى واجهات أخرى متوافقة.
المتطلبات الأساسية
- استضافة الويب مع دعم SSH (الإصدار 9 أو أعلى) أو الخادم المُدار مع تمكين الوصول إلى SSH.
الخطوة 1 – تثبيت التبعيات
الخطوة 1.1 – تثبيت وتفعيل VirtualEnv
pip3 install --break-system-packages virtualenv mkdir /usr/home/holu/virtualenvs python3 -m virtualenv /usr/home/holu/virtualenvs/example_com . /usr/home/holu/virtualenvs/example_com/bin/activateالخطوة 1.2 – تثبيت Django
pip install djangoالخطوة 1.3 – تثبيت Flup (اختياري، مطلوب لـ FastCGI)
pip install flupالخطوة 2 - إنشاء مشروع Django وتكوينه
الخطوة 2.1 – بدء المشروع
mkdir /usr/home/holu/djangoprojects env -C "/usr/home/holu/djangoprojects" django-admin startproject example_comالخطوة 2.2 – تكوين المشروع
جميع المجالات المطلوبة للمتغير المضيفين المسموح لهم أضفه لجعله في متناول الجميع.
vim /home/holu/djangoprojects/example_com/example_com/settings.pyعن طريق الضرب أنا انتقل إلى "وضع الاستيراد" وأضف جميع المجالات المطلوبة:
ALLOWED_HOSTS = ['example.com']عن طريق الضرب خروج العودة إلى "وضع الأوامر" و :wq أدخل للحفظ والخروج.
الخطوة 3 - تحضير جذر مستند خادم الويب
قم بإنشاء دليل موقع ويب فارغًا وتغيير جذر المستند في konsoleH.
mkdir -p /usr/home/holu/public_html/example_comالخيار 1 – FastCGI
إنشاء .htaccess
vim /usr/home/holu/public_html/example_com/.htaccessعن طريق الضرب أنا انتقل إلى "وضع الاستيراد" وأدخل المحتوى التالي:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.fcgi/$1 [QSA,L]
</IfModule>عن طريق الضرب خروج العودة إلى "وضع الأوامر" و :wq أدخل للحفظ والخروج.
إنشاء البرنامج النصي .fcgi
vim /usr/home/holu/public_html/example_com/djangoapp.fcgi#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
from flup.server.fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
WSGIServer(WSGIHandler()).run()تعيين إذن التنفيذ للمالك:
chmod 744 /usr/home/holu/public_html/example_com/djangoapp.fcgiالخيار 2 – CGI
إنشاء .htaccess
vim /usr/home/holu/public_html/example_com/.htaccessعن طريق الضرب أنا انتقل إلى "وضع الاستيراد" وأدخل المحتوى التالي:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.cgi/$1 [QSA,L]
</IfModule>عن طريق الضرب خروج العودة إلى "وضع الأوامر" و :wq أدخل للحفظ والخروج.
إنشاء البرنامج النصي .cgi
vim /usr/home/holu/public_html/example_com/djangoapp.cgi#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
import wsgiref.handlers
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
wsgiref.handlers.CGIHandler().run(WSGIHandler())تعيين إذن التنفيذ للمالك:
chmod 744 /usr/home/holu/public_html/example_com/djangoapp.cgiالخطوة 4 – الاختبار
للاختبار، تفضل بزيارة نطاقك. سترى شيئًا مشابهًا للصورة أدناه:
نتيجة
الآن يمكنك نشر تطبيقات Django الخاصة بك على نظام تشغيل مُدار.










