استقرار پروژه

اکنون که یک پروژه با قیافه‌ای حرفه‌ای داریم بیایید آن را روی یک سرور در حال کار مستقر کنیم تا هر شخص متّصل به اینترنت بتواند از آن استفاده کند. ما از Heroku استفاده می‌کنیم که یک بستر مبتنی بر وب است و به شما امکان می‌دهد که استقرار نرم‌افزارهای تحت وب خود را مدیریّت کنید. ما پروژه‌ی Learning Log را برپا کرده و روی هروکو اجرا می‌کنیم.

ساختن یک حساب کاربری هروکو

برای ساختن یک حساب کاربری به https://heroku.com/ بروید و روی یکی از پیوندهای ثبت نام کلیک کنید. ساختن حساب رایگان است، هروکو یک گزینه‌ی رایگان دارد که به شما اجازه می‌دهد پروژه‌های خود را پیش از استقرار کامل در یک محیط زنده آزمایش کنید.

نکته
گزینه‌ی رایگان هروکو محدودیّت‌هایی دارد از جمله در تعداد برنامه‌هایی که می‌توانید مستقر کنید و این که افراد چند بار می‌توانند از برنامه‌ی شما دیدن کنند. امّا این محدودیّت‌ها به اندازه‌ی کافی بخشنده هستند تا به شما اجازه‌ دهند بدون هیچ هزینه‌ای استقرار برنامه‌ها را بیازمایید.

نصب کردن رابط خط فرمان هروکو

برای استقرار و مدیریّت یک پروژه روی سرورهای هروکو182 به ابزارهایی نیاز دارید که در رابط خطّ فرمان (CLI) هروکو در دسترس‌اند. برای نصب کردن آخرین نسخه‌ی این رابط به https://devcenter.heroku.com/articles/heroku-cli/ بروید و دستورالعمل‌های مربوط به سیستم عامل خود را پی بگیرید. این دستورالعمل‌ها یا شامل یک فرمان ترمینال یک‌خطی است یا یک نصب‌کننده است که می‌توانید آن را دریافت و اجرا کنید.

نصب کردن بسته‌های مورد نیاز

شما باید سه بسته را نیز نصب کنید که کمک می‌کنند تا پروژه‌های جانگو را روی یک سرور زنده قرار دهید. در یک محیط فعّال مجازی فرمان‌های زیر را صادر کنید:

1
2
3
4
5
(ll_env)learning_log$ pip install psycopg2==2.7.*

(ll_env)learning_log$ pip install django-heroku

(ll_env)learning_log$ pip install gunicorn

بسته‌ی psycopg2 برای مدیریّت پایگاه‌داده‌ی مورد استفاده‌ی هروکو م183 ورد نیاز است. بسته‌ی django-heroku تقریباً تمام تنظیمات مورد نیاز را برای اجرای برنامه روی سرورهای هروکو مدیریّت می‌کند. این شامل مدیریّت پایگاه داده و ذخیره کردن فایل‌های ایستا در جایی که بتواند به خوبی عرضه شود می‌شود. فایل‌های ایستا قواعد شکل‌دهی و فایل‌های جاوااسکریپت را شامل می‌شوند. بسته‌ی gunicorn سروری ارائه می‌کند که قادر به ارائه‌ی برنامه‌ها در محیطی زنده است.