لینوکس

نحوه اجرای Django با mod_wsgi و Apache

مقدمه
کار با برنامه های Django و به طور کلی برنامه های پایتون یک موضوع پیچیده است که ابزارهای بسیاری در آن استفاده می شود. برای رسیدن به یک هدف روشهای مختلفی وجود دارد و غالباً هیچ روش واحدی برای انجام کارها وجود ندارد.
یکی از محبوب ترین روش های به کارگیری برنامه های کاربردی Django برای وب در سرور اختصاصی استفاده از Nginx جفت شده با Gunicorn است. یک روش عالی برای انجام کاری که پیش تر در این مقاله عمیقا توضیح داده شده است. با این وجود یک سناریوی کاملاً جذاب برای میزبانی برنامه های Django در کنار وب سایت های موجود با استفاده از Apache میباشد. ما سعی خواهیم کرد مسیر سریع را برای رسیدن به این هدف خاص پوشش دهیم. لطفاً توجه داشته باشید که این یک راهنمای قطعی برای جفت سازی Django و Apache نیست و جنبه های پیکربندی وجود دارد که در اینجا پوشش داده نمی شود.
این متن فرض های مختلفی را در نظرمیگیرد:
شما در حال حاضر دراپلت خود را با Debian 7.0 یا بالاتر تنظیم کرده اید. تفاوت های زیادی بین توزیع های مختلف لینوکس وجود دارد. بنابراین به خاطر شفافیت بحث روی یک سرور مجازی Debian تمرکز خواهیم کرد.
شما حداقل تا حدودی با ابزارهای رایج Python مانند pip package manager و virtualenv برای ساختن محیط های مجازی آشنا هستید. این ابزارها در مقاله لینک داده شده به طور کامل توضیح داده شده اند.
شما حداقل تا حدودی با ساختار پروژه Django آشنا هستید ، زیرا این مقاله برای آشنایی با نحوه استفاده و پیکربندی خود Django در نظر گرفته نشده است.
شما با اجرای Apache در حد مقدماتی آشنا هستید ، زیرا این آموزش فقط نصب ساده سرور و تغییرات پیکربندی لازم برای جفت سازی Django با Apache را پوشش می دهد.
پیش نیازها
قبل از نصب پکیج های جدید ، همواره بهتر است پکیج های سیستم و فهرست بندی های پکیج به روزرسانی شود. برای انجام این کار:
apt-get update
apt-get upgrade

نصب Apache
از آنجا که این متن بر استفاده از Apache برای سرویس دهی به برنامه متمرکز شده است ، خود سرور مجازی ضروری است. برای نصب بسته های لازم، این دستور را اجرا کنید:
apt-get install apache2
بلافاصله بعد از نصب ، Apache در حال اجرا خواهد بود. با باز کردن مرورگر وب و زدن آدرس IP سرور می توانید بررسی کنید که آیا وب سرور Apache به درستی تنظیم شده است یا خیر. شما باید نوشته ی It works! را روی صفحه ببینید.
نصب pip و virtualenv
برای شروع کار با پایتون و Django بر روی یک وب سرور ، ابتدا pip و virtualenv نصب می شوند. Pip یک package manager برای پایتون است که نصب بسته های نرم افزاری پایتون مانند خود Django را تسهیل می کند ، در حالی که virtualenv امکان جداسازی محیط مجازی مجزا برای برنامه های پایتون را فراهم می کند تا بتوان library های مورد نیاز برای برنامه های مختلف را جدا کرده و از ناسازگاری نسخه ها بین آنها جلوگیری کرد.
برای انجام این کار:
apt-get install python-pip python-virtualenv

این دستور، pip و virtualenv را از مخزن بسته Debian نصب می کند. با اجرای آنها با سوئیچ –version می توانید تأیید کنید که هر دو ابزار به درستی نصب شده اند.
root@django:~# virtualenv –version
1.7.1.2
root@django:~# pip –version
pip 1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
root@django:~#

ایجاد یک محیط مجازی با استفاده از virtualenv
با نصب Apache ، دایرکتوری / var / www بطور خودکار ایجاد می شود که در آن ریشه پیش فرض وب سرور تنظیم شده است. ما برنامه جدید Django را با تمام وابستگی های آن در آنجا قرار خواهیم داد.
بیایید یک دایرکتوری جدید به نام sampleapp در آن دایرکتوری ایجاد کنیم و وارد دایرکتوری جدید شویم:
cd /var/www
mkdir sampleapp
cd sampleapp

سپس بیایید با استفاده از virtualenv یک محیط مجازی جدید ایجاد کنیم. یک محیط مجازی Python در واقع دایرکتوری است که در آن مفسر پایتون و نمونه محلی pip در آن قرار دارند. نمونه محلی pip تمام بسته ها را در محیط مجازی نصب می کند. به این ترتیب ، هیچ بسته نصب نشده، نصب جهانی پایتون را آلوده نمی کند و همچنین امکان تداخل نسخه پکیج در سناریوی فرضی دو برنامه کاربردی که دو نسخه مختلف Django یا هر library دیگر را اجرا می کنند وجود ندارد.
برای ایجاد یک محیط مجازی جدید وارد کنید:
virtualenv env
جایی که env نام محیط مجازی است- می تواند هر کلمه دیگری باشد. خروجی این دستور باید به صورت زیر باشد:
root@django:/var/www/sampleapp# virtualenv env
New python executable in env/bin/python
Installing distribute………………………done.
Installing pip……………done.
root@django:/var/www/sampleapp#

هم اکنون محیط مجازی آماده است و از دو طریق مختلف قابل استفاده است
یک روش اجرای دستورات با استفاده از مترجم محیط مجازی به طور مستقیم است. با استفاده از این روش لازم است همیشه به یاد داشته باشید که مترجم صحیح یا نمونه pip  را اجرا کنید ، زیرا امکان اجرای یک سیستم گسترده وجود دارد.
root@django:/var/www/sampleapp# env/bin/pip –version
pip 1.1 from /var/www/sampleapp/env/lib/python2.7/site-packages/pip-1.1-py2.7.egg (python 2.7)
root@django:/var/www/sampleapp# env/bin/python –version
Python 2.7.3
root@django:/var/www/sampleapp#

راه دیگر این است که ابتدا با استفاده از دستور زیر، محیط را فعال کنید
source env/bin/activate
سپس نام محیط به صورت زیر به خط فرمان اضافه می شود
root@django:/var/www/sampleapp# source env/bin/activate
(env)root@django:/var/www/sampleapp#

و تمام دستورات اجرا شده از نسخه های محلی مجازی محلی استفاده می کنند
(env)root@django:/var/www/sampleapp# pip –version
pip 1.1 from /var/www/sampleapp/env/lib/python2.7/site-packages/pip-1.1-py2.7.egg (python 2.7)
(env)root@django:/var/www/sampleapp# python –version
Python 2.7.3
(env)root@django:/var/www/sampleapp#

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

این کار سیستم را به حالت عادی باز می گرداند

(env)root@django:/var/www/sampleapp# deactivate
root@django:/var/www/sampleapp#

از محیط تازه ایجاد شده برای ذخیره کلیه وابستگی های لازم از جمله django و library های مرتبط استفاده خواهد شد. همچنین بعداً توسط Apache و mod_wsgi برای ارائه برنامه با استفاده از وابستگی های صحیح مورد استفاده قرار می گیرد.
نصب django درون محیط مجازی
مرحله مورد نیاز بعدی نصب django در محیط مجازی است. بیایید این کار را بدون اینکه محیط را از قبل فعال کنیم با استفاده از دستور زیر انجام دهیم:
env/bin/pip install django

آخرین پیام های نمایش داده شده پس از اجرای این دستور باید به این شکل باشند
Successfully installed django
Cleaning up…

Django اکنون در محیط مجازی نصب شده است و از طریق نصب پایتون در سراسر سیستم در دسترس نیست. با وارد کردن ماژول django با استفاده از هر دو مترجم می توانید آن رفتار را تأیید کنید.
root@django:/var/www/sampleapp# python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import django
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
ImportError: No module named django
>>> exit()

واردات با استفاده از مفسر گسترده سیستم ، انجام نشد، در حالی که
root@django:/var/www/sampleapp# env/bin/python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import django
>>>

چیزی که در محیط مجازی اجرا شد موفق گردید.

ایجاد اولین پروژه Django
برای ایجاد یک پروژه مثال ساده ، می توان از اسکریپت django-admin.py به شرح زیر استفاده کرد
env/bin/django-admin.py startproject sampleapp .

لطفاً به دنباله “نقطه” در دستور توجه کنید. بدون آن پروژه در یک زیرشاخه اضافی ایجاد می شود. پس از اجرای آن دستور ، یک دیرکتوری جدید sampleapp و اسکریپت management.py در / var / www / sampleapp ایجاد می شود. اسکریپت management.py برای اجرای دستورات Django برای این پروژه خاص استفاده می شود. یکی از کاربردهای احتمالی management.py راه انداری نمونه سرور مجازی آزمایشی برای تأیید صحت عملکرد همه چیز در نظر گرفته شده است.
لطفاً اجرا کنید:
env/bin/python manage.py runserver 0.0.0.0:8000

با این کار اتصال سرور آزمایشی به تمام رابط های درگاه 8000 انجام می شود. خروجی باید به این شکل باشد:
Validating models…

0 errors found
April 08, 2014 – 12:29:31
Django version 1.6.2, using settings ‘sampleapp.settings’
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

اگر آدرس IP سرور مجازی خود را با درگاه 8000 در مرورگر خود باز می کنید (آدرس باید مانند http: // <ip آدرس>: 8000 /) باشد ، باید صفحه مثال Django به صورت It worked!  را ببینید. این نتیجه ای است که ما را ترغیب میکند به جای استفاده از سرور توسعه دهنده Django ، به دنبال استفاده از وب سرور Apache باشیم.
از آنجا که برنامه Django به درستی کار می کند ، می توانیم برنامه را با Apache جفت کنیم.
نصب mod_wsgi برای Apache
ساده ترین راه و همچنین روش توصیه شده برای سرویس دهی به برنامه های Python با استفاده از Apache ، استفاده از ماژول mod_wsgi است. به طور پیش فرض با پایتون و Apache نصب نشده است ، بنابراین باید یک بسته اضافی را نیز نصب کنیم.
apt-get install libapache2-mod-wsgi

مرحله بعدی پیکربندی میزبان مجازی پیش فرض Apache خواهد بود که در ابتدای مقاله صفحه It works! را برای ارائه برنامه Django نشان داد.
پیکربندی mod_wsgi در یک هاست مجازی پیش فرض
روش پیکربندی mod_wsgi برای هر میزبان مجازی دیگر در Apache همان روشی است که در اینجا ارائه شده است. ما از میزبان مجازی پیش فرض برای سادگی استفاده خواهیم کرد ، زیرا این یکی از برنامه های مفید نصب Apache است.

فایل پیکربندی هاست مجازی پیش فرض را در ویرایشگر nano  باز کنید
nano / etc / apache2 / سایتهای فعال / 000 پیش فرض
و سه خط زیر را درست زیر <VirtualHost *: 80> اضافه کنید
WSGIDaemonProcess sampleapp python-path=/var/www/

sampleapp:/var/www/sampleapp/env/lib/python2.7/site-packages
WSGIProcessGroup sampleapp
WSGIScriptAlias / /var/www/sampleapp/sampleapp/wsgi.py

خط اول یک فرآیند WSGI daemon به نام sampleapp را ایجاد می کند که وظیفه ارائه برنامه Django ما را بر عهده خواهد داشت. نام Daemon می تواند اصولاً هر چیزی باشد ، اما خوب است که از اسامی توصیفی مانند نام برنامه ها در اینجا استفاده کنید.
اگر از نصب جهانی پایتون و نمونه جهانی Django استفاده می کردیم ، python-path ضروری نبود. با این وجود ، استفاده از محیط مجازی ، تعیین مسیر جایگزین Python را واجب می کند تا mod_wsgi بداند کجا می تواند به دنبال بسته های پایتون باشد.
مسیر باید شامل دو دایرکتوری باشد: دایرکتوری پروژه Django – / var / www / sampleapp – و دایرکتوری بسته های پایتون در محیط مجازی ما برای آن پروژه – /var/www/sampleapp/env/lib/python2.7/site بسته ها دایرکتوری ها در تعریف مسیر با استفاده از علامت کولون محدود می شوند.
خط دوم می گوید که میزبان مجازی خاص برای استفاده از Daemon WSGI ایجاد شده از قبل ، و به همین ترتیب ، نام Daemon باید بین آن دو مطابقت داشته باشد. ما از هر دو خط نمونه استفاده کردیم.
خط سوم مهمترین است ، زیرا به Apache و mod_wsgi می گوید که چگونه پیکربندی WSGI را پیدا کنند. wsgi.py تهیه شده توسط Django شامل پیکربندی پیش فرض barebone برای WSGI برای سرویس دهی Django است که درست کار می کند و تغییر پیکربندی در این فایل خارج از محدوده این مقاله است.
پس از این تغییرات ، راه اندازی مجدد Apache ضروری است
service apache2 restart

پس از باز کردن مرورگر وب در آدرس IP سرور مجازی خود ، بدون هیچ گونه درگاه اضافی ، باید همان صفحه قبلی django را به جای صفحه It works! ببینید.
این باعث می شود پیکربندی ما کامل شود.
لطفا توجه داشته باشید: استفاده از میزبان مجازی پیش فرض و بدون مراقبت اضافی روش پیشنهادی برای پیکربندی سرور نیست. و برای اهداف توصیفی استفاده می شود.
اطلاعات بیشتر
مبحث پیکربندی mod_wsgi و خود Django بسیار گسترده است. بسیاری از جنبه های پیکربندی خاص نرم افزار هستند و توضیح یا نشان دادن آن ها بدون کار کردن با یک برنامه واقعی Django دشوار است. این راهنما راهکار کاملی برای اجرای برنامه های Django با استفاده از Apache نیست ، بلکه یک راهنمای سریع برای شروع کار میباشد.

یکی از بهترین منابع موجود، اسناد رسمی Django است. همچنین مقالات خوبی در DigitalOcean وجود دارد که می توانید با سرچ Django به عنوان یک کلید واژه آن ها را جستجو کنید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد

نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04

نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو 18.04

نحوه بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16.04

نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18.04

چگونه می توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظیم كرد (شروع سریع)

چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی خود استفاده کرد

نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18.04

نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو 18.4 تنظیم کرد

نحوه استقرار و مدیریت DNS با استفاده از DNSControl در Debian 10

چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/