برنامه نویسی

میزبانی مشترک برنامه جنگو را اجرا کنید.

Summarize this content to 400 words in Persian Lang

توضیحات

به همین مناسبت، نحوه استقرار یک برنامه جنگو را در هاست اشتراکی به اشتراک خواهم گذاشت. برای سهولت در کار از پنل DirectAdmin استفاده می کنم. اگر از cpanel یا پنل دیگری استفاده کنید، فکر نمی کنم تفاوت زیادی داشته باشد. مطمئن شوید که از قبل یک دامنه دارید و یک سرویس میزبانی اشتراکی را در هر کجا خریداری کنید، من شما را محدود به استفاده از خدمات خاصی نمی کنم.

نسخه الزامات در پروژه استفاده شده است

پایتون نسخه 3.9.18
جنگو نسخه 4.2

مراحل

اطمینان حاصل کنید که خدمات میزبانی مشترک همانطور که باید اجرا شود.

قبل از ورود به روش استقرار، مطمئن شوید که سرویس میزبانی مشترک همانطور که باید اجرا می شود.

در عمل، این بار، از دامنه artinetix.cloud (تنظیم نام دامنه شما) استفاده می کنم تا اطمینان حاصل کنم که سرویس به طور معمول اجرا می شود، اگر به URL دامنه دسترسی داشته باشیم، صفحه ای مانند زیر ظاهر می شود.

یک زیر دامنه ایجاد کنید

یک زیر دامنه ایجاد کنید تا یک URL برنامه را از دیگری متمایز کنید، یک دامنه می تواند برای بسیاری از زیر دامنه ها استفاده شود. به عنوان مثال، اگر دامنه مورد استفاده artinetix.cloud باشد، زیر دامنه ای که ایجاد می شود چیزی شبیه به django_tutor.artinetix.cloud خواهد بود.

صفحه داشبورد را باز کنید
منوی Cari مدیریت زیر دامنه

اطمینان حاصل کنید که دامنه ای را که به عنوان پایه استفاده می شود (دایره قرمز) انتخاب کرده اید و یک زیر دامنه جدید (دایره آبی) اضافه کنید.

فقط از ریشه سند پیش فرض استفاده کنید، من یک زیر دامنه با نام django-tutor ایجاد خواهم کرد

روی افزودن زیر دامنه کلیک کنید، اگر زیر دامنه با موفقیت ایجاد شده باشد در جدول ظاهر می شود.

سعی کنید از آدرس زیر دامنه بازدید کنید، آیا در دسترس است و صفحه ای مانند زیر را نمایش می دهد؟

نگران نباشید، زیرا ما SSL را تنظیم نکرده ایم تا بتوانیم با استفاده از پروتکل https، نه فقط http، به آن دسترسی داشته باشیم. می توانید روی advance کلیک کنید و به آدرس ادامه دهید تا ببینید آیا URL کار می کند یا خیر.

تصویر بالا نشان می دهد که URL اکنون در دسترس است. مرحله بعدی راه اندازی SSL است، به طوری که وب در برابر حملات طرف های خارجی ایمن تر باشد.

راه اندازی ssl

صفحه گواهینامه های SSL را باز کنید.

منو را باز کنید تا یک SSL جدید ایجاد کنید.

به پایین اسکرول کنید و آدرس url خود را (هم بدون www و هم با wwww) پیدا خواهید کرد که بررسی نشده است. آدرس URL را که SSL (دایره قرمز) تولید می کند بررسی کنید و مطمئن شوید که تغییر مسیر SSL اجباری نیز علامت زده شده است (دایره آبی) سپس روی ذخیره کلیک کنید.

در بالای صفحه وب، یک خط انیمیشن بارگیری ظاهر می شود که نشان می دهد فرآیند در حال اجرا است. در صورت موفقیت آمیز بودن فرآیند، یک اعلان به شرح زیر ظاهر می شود.

نام های ساب دامنه تولید شده توسط SSL (با و بدون www) به رنگ آبی وجود دارد.

پس از رفرش کردن صفحه، تبریک می گویم! اکنون می توان با خیال راحت تر به زیر دامنه شما دسترسی پیدا کرد.

در حال آماده سازی برنامه جنگو

من روی نحوه تنظیم آن تمرکز نمی کنم محیط زیست جنگو از ابتدا برای کوتاه کردن بیشتر مقاله. برنامه جنگو را که توسعه یافته است و می تواند به طور معمول اجرا شود را آماده کنید محیط زیست محلی

در عمل این بار ابتدا از جنگو پیش فرض استفاده خواهم کرد (هنوز در تنظیمات اولیه تولید کند) با استفاده از django 4.2هنگامی که یک پروژه جنگو را اجرا می کنید و صفحه ای مانند تصویر بالا ظاهر می شود، به این معنی است که جنگو به طور عادی اجرا می شود.

فایل های مورد استفاده قرار نیست همه فایل ها روی سرور قرار گیرند، آن را با پروژه خود تنظیم کنید. در این مناسبت من فقط استفاده کردم .gitignore قالب های پایتون در GitHub.

درخت فایل پروژه استفاده شده در مقاله (به این معنا که این فایل به سرور می رود نه فایلی که در لیست gitignore.) قرار داده شده است.

.
|– django-tutor
| |– __init__.py
| |– asgi.py
| |– settings.py
| |– urls.py
| |– wsgi.py
|– manage.py
|– requirements.txt

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک فایل فشرده حاوی فایل ها ایجاد کنید پروژه جنگو قبل از قرار دادن آن روی سرور

مدیریت کنید فایل را در قسمت Enter منوی مدیریت فایل قرار دهید

به پوشه بروید domains > (url subdomain anda) > public html، در پوشه عمومی html حاوی فایل index.html است. این فایل همان فایلی است که هنگام ایجاد ساب دامین نمایش داده شد.

پوشه cgi-bin و فایل index.html را حذف کنید، پروژه zip را که قبلا ایجاد کرده بودیم آپلود کنید و فراموش نکنید که آن را استخراج کنید. در ضمن قدم بردار بخش همین کافی است، ما به سمت ایجاد یک محیط جنگو می رویم.

ایجاد یک محیط برنامه پایتون در پانل داشبورد، کلیک کنید راه اندازی برنامه پایتون.

گزینه create python app را انتخاب کنید و تنظیمات را به صورت زیر وارد کنید، برای برنامه root قابل تنظیم است زیرا هنگام قرار دادن فایل، برنامه پایتون را در پوشه public_html قرار داده ایم تا پیکربندی مانند تصویر زیر باشد. اگر مناسب است، کلیک کنید ایجاد کنید برای ایجاد یک محیط روی سرور

بعد از موفقیت راه اندازی برنامه پایتون و زودتر از URL بازدید کنید، فقط نمایش داده می شود python it works. این اتفاق می افتد زیرا ما آن را انجام نداده ایم واردات پروژه و محیط جنگو نیز جنگو را نصب نکرده است.

django را در محیط نصب کنید، با کلیک روی دستور متن، دستوری را که با رنگ قرمز دایره کرده ام کپی کنید.

وارد ترمینال شوید

در ترمینال، کد بالا را با کلیک راست و چسباندن، قرار دهید.

در صورت موفقیت آمیز بودن، لطفا مراحل زیر را دنبال کنید.

دستور را وارد کنید pip list ببینید چه بسته هایی نصب شده است.
بررسی کنید که آیا ما روشن هستیم یا خیر دایرکتوری که با دستور درست است ls مطمئن شوید که فایل requires.txt وجود دارد.
تمام بسته ها را با استفاده از فایل require.txt با دستور نصب کنید pip install -r requirements.txt

نصب جنگو در محیط زیست پس از اتمام، برای ویرایش فایل travel_wsgi به مدیر فایل سوئیچ می کنیم.

با ویرایش فایل travel_wsgi، برنامه جنگو را از پوشه نام پروژه django (پوشه حاوی فایل settings.py) وارد کنید. برنامه جنگو ما

مسافر.py

from django_tutor.wsgi import application

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه: django_tutor با نام پروژه برنامه django مربوطه تنظیم می شود

فایل پیکربندی فعلی settings.py را ویرایش کنید تولید متفاوت از زمانی که هنوز یک صحنه بود توسعه، فایل settings.py (واقع در پوشه نام پروژه) را به صورت زیر ویرایش کنید.

تغییر دهید DEBUG = True تبدیل شود DEBUG = False

به میزبان اجازه دسترسی به برنامه را بدهید، ALLOWED_HOSTS = [] تبدیل شود ALLOWED_HOSTS = [‘django-tutor.artinetix.cloud’, ‘www.django-tutor.artinetix.cloud’] آن را با نام دامنه ای که استفاده می کنید تنظیم کنید.
در انتهای فایل، خط کد زیر را برای کپی فایل های ثابت (css، js، image و غیره) اضافه کنید. STATIC_ROOT = BASE_DIR / ‘public’

با رفتن به پنل، اپلیکیشن جنگو را مجددا راه اندازی کنید dashboard > setup python app > klik restart pada kolom action.

دسترسی به URL را امتحان کنید، آیا صفحه ای کم و بیش مانند این ظاهر می شود؟

سعی کنید با افزودن به بخش مدیریت دسترسی پیدا کنید admin در انتهای url تبدیل می شود nama-domain/admin سپس کم و بیش یک صفحه مانند صفحه زیر نمایش داده می شود.

اگر دقت کنید شبیه شوخی است. به این دلیل که CSS، JS و سایر فایل های استاتیک در پروژه جنگو کپی نشده اند، برای انجام این کار می توانید به مراحل زیر توجه کنید.

وارد صفحه شوید setup python app.
روی منو کلیک کنید edit در actionبرنامه پایتون مورد نظر
برای ورود به محیط دستور را کپی کنید.

وارد صفحه ترمینال شوید و دستور را Paste کنید.
اگر با موفقیت وارد محیط شدید، دستور را اجرا کنید python manage.py collectstatic برای انتقال فایل های ثابت مانند CSS و JS به پوشه مطابق با مسیر STATIC_ROOT settings.py.

وقتی مراحل بالا را با موفقیت انجام دادید، در پوشه برنامه root باید یک پوشه عمومی حاوی فایل‌های CSS و JS (فایل‌های استاتیک مورد استفاده در جنگو) وجود داشته باشد. لطفاً با افزودن ادمین پشت URL (url/admin) سعی کنید به آدرس ادمین در برنامه جنگو دسترسی پیدا کنید. اگر نمایشگر همچنان مانند زیر است و وقتی کنسول را بررسی می کنیم، خطایی وجود دارد MIME type is not executable. سپس باید بسته whitenoise را به برنامه جنگو اضافه کنید. می توانید به آدرس اینترنتی Whitenoise doc زیر مراجعه کنید.

خطای نوع MIME

این نحوه استقرار یک برنامه جنگو روی آن است هاست اشتراکی با استفاده از DirectAdmin، در واقع هنوز کارهای زیادی به جز استقرار وجود دارد، یعنی راه اندازی پایگاه داده و افزودن متغیرهای محیطی. شما هم باید توجه کنید، این روش همان روش دستی است که من معمولا انجام می دهم، به نظر پیچیده است. برای تسهیل فرآیند استقرار، معمولاً می توانید از ci & cd از طریق اکشن های github استفاده کنید. از من بس است، اگر مطلبی می خواهید مطرح کنید، چه پیشنهاد و چه انتقاد سازنده، لطفا در ستون نظرات کامنت بگذارید. این همه است و از شما متشکرم.

توضیحات

به همین مناسبت، نحوه استقرار یک برنامه جنگو را در هاست اشتراکی به اشتراک خواهم گذاشت. برای سهولت در کار از پنل DirectAdmin استفاده می کنم. اگر از cpanel یا پنل دیگری استفاده کنید، فکر نمی کنم تفاوت زیادی داشته باشد. مطمئن شوید که از قبل یک دامنه دارید و یک سرویس میزبانی اشتراکی را در هر کجا خریداری کنید، من شما را محدود به استفاده از خدمات خاصی نمی کنم.

نسخه الزامات در پروژه استفاده شده است

  • پایتون نسخه 3.9.18
  • جنگو نسخه 4.2

مراحل

اطمینان حاصل کنید که خدمات میزبانی مشترک همانطور که باید اجرا شود.

قبل از ورود به روش استقرار، مطمئن شوید که سرویس میزبانی مشترک همانطور که باید اجرا می شود.


در عمل، این بار، از دامنه artinetix.cloud (تنظیم نام دامنه شما) استفاده می کنم تا اطمینان حاصل کنم که سرویس به طور معمول اجرا می شود، اگر به URL دامنه دسترسی داشته باشیم، صفحه ای مانند زیر ظاهر می شود.

صفحه کار می کند

یک زیر دامنه ایجاد کنید

یک زیر دامنه ایجاد کنید تا یک URL برنامه را از دیگری متمایز کنید، یک دامنه می تواند برای بسیاری از زیر دامنه ها استفاده شود. به عنوان مثال، اگر دامنه مورد استفاده artinetix.cloud باشد، زیر دامنه ای که ایجاد می شود چیزی شبیه به django_tutor.artinetix.cloud خواهد بود.

  • صفحه داشبورد را باز کنید
  • منوی Cari مدیریت زیر دامنه

صفحه مدیریت زیر دامنه

  • اطمینان حاصل کنید که دامنه ای را که به عنوان پایه استفاده می شود (دایره قرمز) انتخاب کرده اید و یک زیر دامنه جدید (دایره آبی) اضافه کنید.

زیر دامنه

  • فقط از ریشه سند پیش فرض استفاده کنید، من یک زیر دامنه با نام django-tutor ایجاد خواهم کرد

ریشه Doc

  • روی افزودن زیر دامنه کلیک کنید، اگر زیر دامنه با موفقیت ایجاد شده باشد در جدول ظاهر می شود.

موفقیت در زیر دامنه ایجاد شد

  • سعی کنید از آدرس زیر دامنه بازدید کنید، آیا در دسترس است و صفحه ای مانند زیر را نمایش می دهد؟

آدرس زیر دامنه

نگران نباشید، زیرا ما SSL را تنظیم نکرده ایم تا بتوانیم با استفاده از پروتکل https، نه فقط http، به آن دسترسی داشته باشیم. می توانید روی advance کلیک کنید و به آدرس ادامه دهید تا ببینید آیا URL کار می کند یا خیر.

توضیحات تصویر

تصویر بالا نشان می دهد که URL اکنون در دسترس است. مرحله بعدی راه اندازی SSL است، به طوری که وب در برابر حملات طرف های خارجی ایمن تر باشد.

راه اندازی ssl

  • صفحه گواهینامه های SSL را باز کنید.

توضیحات تصویر

  • منو را باز کنید تا یک SSL جدید ایجاد کنید.

توضیحات تصویر

  • به پایین اسکرول کنید و آدرس url خود را (هم بدون www و هم با wwww) پیدا خواهید کرد که بررسی نشده است. آدرس URL را که SSL (دایره قرمز) تولید می کند بررسی کنید و مطمئن شوید که تغییر مسیر SSL اجباری نیز علامت زده شده است (دایره آبی) سپس روی ذخیره کلیک کنید.

توضیحات تصویر

در بالای صفحه وب، یک خط انیمیشن بارگیری ظاهر می شود که نشان می دهد فرآیند در حال اجرا است. در صورت موفقیت آمیز بودن فرآیند، یک اعلان به شرح زیر ظاهر می شود.

توضیحات تصویر

نام های ساب دامنه تولید شده توسط SSL (با و بدون www) به رنگ آبی وجود دارد.

  • پس از رفرش کردن صفحه، تبریک می گویم! اکنون می توان با خیال راحت تر به زیر دامنه شما دسترسی پیدا کرد.

توضیحات تصویر

در حال آماده سازی برنامه جنگو

من روی نحوه تنظیم آن تمرکز نمی کنم محیط زیست جنگو از ابتدا برای کوتاه کردن بیشتر مقاله. برنامه جنگو را که توسعه یافته است و می تواند به طور معمول اجرا شود را آماده کنید محیط زیست محلی

در عمل این بار ابتدا از جنگو پیش فرض استفاده خواهم کرد (هنوز در تنظیمات اولیه تولید کند) با استفاده از django 4.2
توضیحات تصویر
هنگامی که یک پروژه جنگو را اجرا می کنید و صفحه ای مانند تصویر بالا ظاهر می شود، به این معنی است که جنگو به طور عادی اجرا می شود.

  • فایل های مورد استفاده قرار نیست همه فایل ها روی سرور قرار گیرند، آن را با پروژه خود تنظیم کنید. در این مناسبت من فقط استفاده کردم .gitignore قالب های پایتون در GitHub.

درخت فایل پروژه استفاده شده در مقاله (به این معنا که این فایل به سرور می رود نه فایلی که در لیست gitignore.) قرار داده شده است.

.
|-- django-tutor
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   |-- wsgi.py
|-- manage.py
|-- requirements.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک فایل فشرده حاوی فایل ها ایجاد کنید پروژه جنگو قبل از قرار دادن آن روی سرور

  • مدیریت کنید فایل را در قسمت Enter منوی مدیریت فایل قرار دهید

توضیحات تصویر

به پوشه بروید domains > (url subdomain anda) > public html، در پوشه عمومی html حاوی فایل index.html است. این فایل همان فایلی است که هنگام ایجاد ساب دامین نمایش داده شد.

توضیحات تصویر

پوشه cgi-bin و فایل index.html را حذف کنید، پروژه zip را که قبلا ایجاد کرده بودیم آپلود کنید و فراموش نکنید که آن را استخراج کنید. در ضمن قدم بردار بخش همین کافی است، ما به سمت ایجاد یک محیط جنگو می رویم.

  • ایجاد یک محیط برنامه پایتون در پانل داشبورد، کلیک کنید راه اندازی برنامه پایتون.

توضیحات تصویر

گزینه create python app را انتخاب کنید و تنظیمات را به صورت زیر وارد کنید، برای برنامه root قابل تنظیم است زیرا هنگام قرار دادن فایل، برنامه پایتون را در پوشه public_html قرار داده ایم تا پیکربندی مانند تصویر زیر باشد. اگر مناسب است، کلیک کنید ایجاد کنید برای ایجاد یک محیط روی سرور

توضیحات تصویر
بعد از موفقیت راه اندازی برنامه پایتون و زودتر از URL بازدید کنید، فقط نمایش داده می شود python it works. این اتفاق می افتد زیرا ما آن را انجام نداده ایم واردات پروژه و محیط جنگو نیز جنگو را نصب نکرده است.

  • django را در محیط نصب کنید، با کلیک روی دستور متن، دستوری را که با رنگ قرمز دایره کرده ام کپی کنید.

توضیحات تصویر

وارد ترمینال شوید

توضیحات تصویر

در ترمینال، کد بالا را با کلیک راست و چسباندن، قرار دهید.

در صورت موفقیت آمیز بودن، لطفا مراحل زیر را دنبال کنید.

  1. دستور را وارد کنید pip list ببینید چه بسته هایی نصب شده است.
  2. بررسی کنید که آیا ما روشن هستیم یا خیر دایرکتوری که با دستور درست است ls مطمئن شوید که فایل requires.txt وجود دارد.
  3. تمام بسته ها را با استفاده از فایل require.txt با دستور نصب کنید pip install -r requirements.txt

نصب جنگو در محیط زیست پس از اتمام، برای ویرایش فایل travel_wsgi به مدیر فایل سوئیچ می کنیم.

  • با ویرایش فایل travel_wsgi، برنامه جنگو را از پوشه نام پروژه django (پوشه حاوی فایل settings.py) وارد کنید. برنامه جنگو ما

مسافر.py

from django_tutor.wsgi import application
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه: django_tutor با نام پروژه برنامه django مربوطه تنظیم می شود

  • فایل پیکربندی فعلی settings.py را ویرایش کنید تولید متفاوت از زمانی که هنوز یک صحنه بود توسعه، فایل settings.py (واقع در پوشه نام پروژه) را به صورت زیر ویرایش کنید.
  1. تغییر دهید DEBUG = True تبدیل شود DEBUG = False
  2. به میزبان اجازه دسترسی به برنامه را بدهید، ALLOWED_HOSTS = [] تبدیل شود ALLOWED_HOSTS = ['django-tutor.artinetix.cloud', 'www.django-tutor.artinetix.cloud'] آن را با نام دامنه ای که استفاده می کنید تنظیم کنید.
  3. در انتهای فایل، خط کد زیر را برای کپی فایل های ثابت (css، js، image و غیره) اضافه کنید. STATIC_ROOT = BASE_DIR / 'public'

با رفتن به پنل، اپلیکیشن جنگو را مجددا راه اندازی کنید dashboard > setup python app > klik restart pada kolom action.

توضیحات تصویر

دسترسی به URL را امتحان کنید، آیا صفحه ای کم و بیش مانند این ظاهر می شود؟

توضیحات تصویر

سعی کنید با افزودن به بخش مدیریت دسترسی پیدا کنید admin در انتهای url تبدیل می شود nama-domain/admin سپس کم و بیش یک صفحه مانند صفحه زیر نمایش داده می شود.

توضیحات تصویر

اگر دقت کنید شبیه شوخی است. به این دلیل که CSS، JS و سایر فایل های استاتیک در پروژه جنگو کپی نشده اند، برای انجام این کار می توانید به مراحل زیر توجه کنید.

  1. وارد صفحه شوید setup python app.
  2. روی منو کلیک کنید edit در actionبرنامه پایتون مورد نظر
  3. برای ورود به محیط دستور را کپی کنید.
    توضیحات تصویر
  4. وارد صفحه ترمینال شوید و دستور را Paste کنید.
  5. اگر با موفقیت وارد محیط شدید، دستور را اجرا کنید python manage.py collectstatic برای انتقال فایل های ثابت مانند CSS و JS به پوشه مطابق با مسیر STATIC_ROOT settings.py.

وقتی مراحل بالا را با موفقیت انجام دادید، در پوشه برنامه root باید یک پوشه عمومی حاوی فایل‌های CSS و JS (فایل‌های استاتیک مورد استفاده در جنگو) وجود داشته باشد. لطفاً با افزودن ادمین پشت URL (url/admin) سعی کنید به آدرس ادمین در برنامه جنگو دسترسی پیدا کنید. اگر نمایشگر همچنان مانند زیر است و وقتی کنسول را بررسی می کنیم، خطایی وجود دارد MIME type is not executable. سپس باید بسته whitenoise را به برنامه جنگو اضافه کنید. می توانید به آدرس اینترنتی Whitenoise doc زیر مراجعه کنید.

توضیحات تصویر
خطای نوع MIME
توضیحات تصویر

این نحوه استقرار یک برنامه جنگو روی آن است هاست اشتراکی با استفاده از DirectAdmin، در واقع هنوز کارهای زیادی به جز استقرار وجود دارد، یعنی راه اندازی پایگاه داده و افزودن متغیرهای محیطی. شما هم باید توجه کنید، این روش همان روش دستی است که من معمولا انجام می دهم، به نظر پیچیده است. برای تسهیل فرآیند استقرار، معمولاً می توانید از ci & cd از طریق اکشن های github استفاده کنید. از من بس است، اگر مطلبی می خواهید مطرح کنید، چه پیشنهاد و چه انتقاد سازنده، لطفا در ستون نظرات کامنت بگذارید. این همه است و از شما متشکرم.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا