اجرای اپلیکیشن Django بر روی Webhosting یا Managed Server در Hetzner

مقدمه

در این آموزش، نحوه اجرای اپلیکیشن Python Django روی سرورهای Webhosting یا Managed Server از Hetzner را یاد خواهیم گرفت. Django یک فریم‌ورک وب پایتون است. به طور پیش‌فرض این فریم‌ورک روی WSGI (واسطه بین سرور وب و برنامه) اجرا می‌شود، اما mod_wsgi در سرور Apache مدیریت‌شده در دسترس نیست. با این حال، روش‌های مختلفی برای تبدیل WSGI به واسط‌های سازگار دیگر وجود دارد.

پیش‌نیازها
  • Webhosting با پشتیبانی از SSH (نسخه ۹ یا بالاتر) یا Managed Server با دسترسی SSH فعال.

مرحله ۱ – نصب وابستگی‌ها

مرحله ۱.۱ – نصب و فعال‌سازی 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
مرحله ۱.۲ – نصب Django
pip install django
مرحله ۱.۳ – نصب Flup (اختیاری، برای FastCGI ضروری است)
pip install flup

مرحله ۲ – ایجاد و پیکربندی پروژه Django

مرحله ۲.۱ – شروع پروژه
mkdir /usr/home/holu/djangoprojects env -C "/usr/home/holu/djangoprojects" django-admin startproject example_com
مرحله ۲.۲ – پیکربندی پروژه

تمام دامنه‌های درخواست شده را به متغیر ALLOWED_HOSTS اضافه کنید تا دسترسی امکان‌پذیر باشد.

vim /home/holu/djangoprojects/example_com/example_com/settings.py

با زدن i به “حالت وارد کردن” بروید و تمام دامنه‌های درخواست شده را اضافه کنید:

ALLOWED_HOSTS = ['example.com']

با زدن esc به “حالت فرمان” برگشته و :wq را برای ذخیره و خروج وارد کنید.

مرحله ۳ – آماده‌سازی ریشه سند سرور وب

یک دایرکتوری وب‌سایت خالی بسازید و ریشه سند را در konsoleH تغییر دهید.

mkdir -p /usr/home/holu/public_html/example_com
گزینه ۱ – FastCGI

ایجاد .htaccess

vim /usr/home/holu/public_html/example_com/.htaccess

با زدن i به “حالت وارد کردن” بروید و محتوای زیر را وارد کنید:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.fcgi/$1 [QSA,L]
</IfModule>

با زدن esc به “حالت فرمان” برگشته و :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
گزینه ۲ – CGI

ایجاد .htaccess

vim /usr/home/holu/public_html/example_com/.htaccess

با زدن i به “حالت وارد کردن” بروید و محتوای زیر را وارد کنید:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.cgi/$1 [QSA,L]
</IfModule>

با زدن esc به “حالت فرمان” برگشته و :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

مرحله ۴ – آزمایش

برای آزمایش، دامنه خود را بازدید کنید. شما باید چیزی شبیه به تصویر زیر ببینید:

نتیجه‌

حال شما می‌توانید اپلیکیشن‌های Django خود را روی سیستم‌عامل مدیریت‌شده مستقر کنید.

[تعداد: 1   میانگین: 5/5]
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شاید دوست داشته باشید