جنگو، نرمافزاری است که برای توسعه وب استفاده میشود و ابزارهای لازم برای انجام این کار را در اختیار توسعهدهندگان میگذارد. در این مقاله، میخواهیم نحوه نصب Django روی centos7 را به صورت گام به گام آموزش دهیم تا بتوانید نصب جنگو روی Centos 7 خودتان به راحتی انجام دهید.
چگونگی نصب Django روی centos7
پیشفرض ما در این مقاله این است که شما با زبان برنامهنویسی پایتون و متعلقاتش آشنایی دارید. اگر اینطور نیست، خواندن مقاله پایتون چیست به شما کمک میکند. با پیشفرض توضیحات خودمان را شروع میکنیم.
قدم اول: به روزرسانی Packages سیستم
قبل از نصب نرم افزار جدید، مهم است که لیست Packages سیستم را به روز کنید. این کار تضمین میکند که آخرین به روزرسانیها و اصلاحات امنیتی را دریافت میکنید. ترمینال را باز کنید و دستور را اجرا کنید:
sudo yum update
این دستور لیست Packages شما را به روز میکند و به شما اطمینان میدهد که سیستم از آخرین نسخه برنامهها استفاده میکند.
بیشتر بخوانید: جنگو چیست؟ ساخت اپلیکیشن با جنگو
قدم دوم: نصب EPEL Repository:
برای دسترسی به Packages بیشتر در CentOS 7، باید مخزن EPEL یا Extra Packages for Enterprise Linux را نصب کنید. برای نصب این مخزن، دستور زیر را در ترمینال بنویسید و اجرا کنید:
sudo yum install epel-release
مخزن EPEL حاوی Packages بیشتر مانند برخی از نسخههای Python 3 است که در مخزن استاندارد CentOS نمیتوانید آنها را پیدا کنید.
قدم سوم: نصب پایتون 3
اکنون آماده نصب پایتون 3 و کتابخانههای آن هستید. برای انجام این کار دستورات زیر را اجرا کنید:
sudo yum install python34 python34-devel
python34 نسخه 3. 4 پایتون را نصب می کند و python34-devel نصب ابزارهای توسعه لازم برای کامپایل ماژولهای پایتون را انجام میدهد.
قدم چهارم: نصب ابزار virtualenv با استفاده از pip
بعد از نصب پایتون، گام بعدی نصب ابزار virtualenv است که برای ایجاد محیط های ایزوله پایتون استفاده میشود. برای شروع دستورهای زیر را در ترمینال لینوکس بنویسید:
sudo yum install python34-pip sudo pip3 install virtualenv
python34-pip ابزار مدیریت بسته Python را برای نسخه 3.4 نصب میکند و pip3 نصب virtualenv را انجام میدهد.
اگر شما خطایی دریافت کنید. دستور زیر را اجرا کنید:
-bash: pip3: command not found
این دستور نشان میدهد که پیپ برای پایتون 3 نصب نشده است یا اضافهشدن آن به متغیر محیطی PATH به درستی صورت نگرفته است. در CentOS 7، برای نصب pip3 ممکن است، نیاز به طی چند مرحله داشته باشید.
ابتدا نسخه get-pip.py سازگار با پایتون 3.4 را با استفاده از دستور زیر دانلود کنید:
curl "https://bootstrap.pypa.io/pip/3.4/get-pip.py" -o "get-pip.py"
اکنون با اجرای دستور زیر نصب اسکریپت pip روی پایتون 3.4 را انجام دهید:
python3.4 get-pip.py
این دستور pip را نصب میکند که مختص نسخه نصب شده پایتون 3.4 است. پس از نصب، از دستور زیر میتوانید استفاده کنید تا بررسی کنید که pip به درستی نصب شده باشد:
pip3.4 --version
با استفاده از pip3.4، نصب virtualenv را انجام دهید:
pip3.4 install --upgrade "virtualenv<20"
virtualenv برای ایجاد محیطهای ایزوله پایتون استفاده میشود که به شما امکان میدهد، پروژههای مختلف را مدیریت کنید.
قدم پنجم: ایجاد Virtual Environment
پس از نصب virtualenv میتوانید یک محیط مجازی برای پروژه جنگو خود ایجاد کنید. برای ایجاد یک محیط مجازی از دستور زیر استفاده کنید:
python3.4 -m venv myprojectenv
myprojectenv نام محیط مجازی شما است. این دستور یک پوشه myprojectenv جدید در دایرکتوری فعلی با نصب پایتون جداگانه ایجاد میکند و برای ذخیره کتابخانههای پایتون و ابزارهای توسعه آن مکانی در نظر میگیرد.
قدم ششم: فعالسازی Virtual Environment
برای شروع کار در محیط مجازی ایجاد شده، آن را فعال کنید:
source myprojectenv/bin/activate
پس از فعالسازی محیط مجازی، command line شما تغییر میکند و نام محیط مجازی را نشان میدهد که مشخص میکند، تمام دستورات بعدی پایتون در این محیط ایزوله اجرا میگردد.
اکنون سرور شما برای نصب Django روی centos7و توسعه برنامه وب آماده است.
قدم هفتم: نصب Django
پس از فعال سازی محیط مجازی خود، میتوانید با خیال راحت جنگو را در آن نصب کنید. جنگو فقط در این محیط مجازی نصب میشود و روی پروژهها یا تنظیمات سیستم تأثیری نخواهد داشت. Django را روی Python package manager نصب کنید. برای نصب آن دستور زیر را در ترمینال لینوکس بنویسید:
pip install django
قدم هشتم: تأیید نصب Django روی centos7
پس از نصب، نسخه جنگو را بررسی کنید تا مطمئن شوید که نصب با موفقیت انجام شده است. این کار همچنین به شما کمک میکند تا از به روزبودن نسخه جنگو اطمینان پیدا کنید.
django-admin --version
این دستور نسخه نصب شده جنگو را نمایش میدهد.
قدم نهم: ایجاد یک پروژه جدید در جانگو
اکنون که جنگو نصب شده است، یک پروژه جدید ایجاد کنید. این کار را می توان با استفاده از دستور زیر انجام داد:
django-admin startproject myproject
این دستور یک پوشه جدید myproject با ساختار اولیه پروژه جنگو ایجاد میکند.
قدم نهم: انجام تنظیمات پروژه جدید
پس از ایجاد پروژه، به دایرکتوری آن بروید:
cd myproject
سپس انتقال پایگاه داده را انجام دهید. جنگو از این پایگاه برای راه اندازی پایگاه داده برای پروژه شما استفاده میکند:
python manage.py migrate
این دستور پایگاه داده را با استفاده از موارد پیشفرض ارائه شده توسط جنگو راه اندازی میکند.
قدم دهم: شروع توسعه سرور جنگو
مرحله اول: شروع به کار با سرور
سرور توسعه داخلی جنگو را راه اندازی کنید تا بتوانید از اجرای پروژه مطمئن شوید:
python manage.py runserver 0.0.0.0:8000
در اینجا 0.0.0.0 به جنگو میگوید که درخواست اتصال را از تمام آدرس های IP بپذیرد و 8000 پورتی است که سرور روی آن اجرا میشود.
مرحله دوم: دریافت دسترسی به Web Application
پورت 8000 را باز کنید. برای انجام این کار از دستورات زیر استفاده کنید:
firewall-cmd --zone=public --add-port=8000/tcp --permanent firewall-cmd --reload
اکنون میتوانید یک مرورگر وب باز کنید و آدرس IP سرور خود را در پورت 8000 وارد کنید تا به برنامه جنگو خود دسترسی پیدا کنید.
اگر نمی توانید با IP:8000 به سایت دسترسی پیدا کنید، یا با خطاهای صفحه وب مانند DisallowedHost مواجه شدید، باید آدرس IP سرور خود را به لیست ALLOWED_HOSTS در فایل settings.py پروژه جنگو خود اضافه کنید. پس از آن، می توانید سرور را مجددا راه اندازی کنید. جهت راهاندازی مجدد سرور از دستور زیر استفاده کنید:
python manage.py runserver 0.0.0.0:8000
قدم یازدهم: ایجاد Superuser
برای دسترسی به پنل مدیریت جانگو، به یک Superuser نیاز دارید. با استفاده از دستور زیر میتوانید یک Superuser بسازید:
python manage.py createsuperuser
از شما خواسته می شود نام کاربری، آدرس ایمیل و رمز عبور Superuser را وارد کنید.
پس از انجام تمام این مراحل، یک پروژه جنگو کاملاً پیکربندی شده بر روی سرور CentOS 7 خود خواهید داشت که برای توسعه و استفاده بیشتر آماده است.
خطاهای احتمالی هنگام نصب Django روی Centos7
در این بخش، دو نوع خطای رایجتر در هنگام نصب Django روی centos7 را بررسی میکنیم:
مورد اول: اولین موردی که بررسی میکنیم، خطایی است که ممکن است هنگام اجرای دستور زیر، با آن مواجه شوید:
python manage.py migrate
تصویر زیر، شکل خطای موجود در هنگام نصب Django روی centos7 را نشان میدهد:
سپس از لینک بالا، فایل سورس با پسوند tar.gz را دانلود کنید. مطابق تصویر زیر:
ما در این آموزش، با استفاده از source code نصب نسخه جدید را انجام خواهیم داد:
cd /opt wget https://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz tar -xzf sqlite-autoconf-3360000.tar.gz cd sqlite-autoconf-3360000 ./configure make install
خب از آنجایی که Python repl همچنان از نسخه قدیمی استفاده میکند، دردی از ما دوا نمیشود! در ادامه از دستور زیر استفاده کنید:
python >>> import sqlite3 >>> sqlite3.sqlite_version '3.7.17'
حالا با استفاده از کلیدهای ctlr+d از محیط پایتون خارج شوید. نکته مهم اینکه برای استفاده از مسیر جدید sqlite3، باید مجدداً پایتون را کامپایل کنید.
با استفاده از دستور زیر، میتوانید دستور sqlite را بررسی کنید:
sqlite3 --version
اکنون باید از نسخه بهروزشده استفاده کنید:
python3 Python 3.6.8 (default, May 8 2020, 11:34:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux .Type "help", "copyright", "credits" or "license" for more information >>> import sqlite3 >>> sqlite3.sqlite_version '3.31.1'
مجدداً به مسیر زیر رفته و دستوری که با خطا مواجه شده را وارد کنید:
Cd /root/my_django_app/mydjangoapp/ python manage.py migrate
اگر خطا از بین نرفت، مراحل زیر را طی کنید
cd /opt/ cp -rf /usr/lib64/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6_bak cp -rf /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6 python3 . Python 3.7.9 (default, Apr 30 2021, 20:11:56) [GCC 7.3.1 20180712 (Red Hat 7.3.1-12)] on linux Type "help", "copyright", "credits" or "license" for more information >>> import sqlite3 >>> sqlite3.sqlite_version '3.36.0'
کار در اینجا به اتمام رسیده و قاعدتاً باید خطا رفع شده باشد:
Cd /root/my_django_app/mydjangoapp/ python manage.py migrate
خروجیای که دریافت میکنید، باید مشابه زیر باشد:
:Operations to perform Apply all migrations: admin, auth, contenttypes, sessions :Running migrations Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK
خطای دوم
اگر هنگام اجرای دستور configure، با خطای زیر مواجه شدید، اصلاً نگران نباشید! چگونگی رفع این خطا را هم آموزش خواهیم داد:
در گام اول، دستور زیر را اجرا کنید:
yum install gcc glibc –y
اگر مشکل برطرف نشد، سراغ دستور زیر بروید:
yum -y reinstall glibc gcc gcc-c++ make
در برخی موارد نادر، ممکن است باز هم مشکل حل نشود! در چنین حالاتی، باید سراغ استفاده از دستور زیر بروید:
yum reinstall wget gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed autoconf automake libtool which patch mailx bzip2-devel lsof glibc-headers kernel-devel expat-devel db4-devel
پس از واردکردن این دستور، مشکل شما باید حل شود.
نکته: اگر از این دستور استفاده میکنید، حتماً باید نسخههای php را هم بیلد کنید!
کلام آخر
در این مقاله به صورت گام به گام نحوه نصب Django روی centos7 را به شما آموزش دادیم تا بتوانید به راحتی این کار را انجام دهید. همچنین در انتهای متن خطاهای احتمالی و نحوه رفع مشکلات احتمالی در هنگام نصب Django روی centos7را برای شما توضیح دادیم تا در حین نصب این نرمافزار توسعه وب دچار هیچگونه مشکلی نشوید.
اگر شما یک وبسایت را با زبان برنامهنویسی پایتون راه انداخته باشید، نیاز دارید که یک سری ماژول و برنامه خاص روی هاستتان داشته باشید. هاست پایتون ایران سرور از فریمورکهای جنگو (Django) و فلسک (Flask) پیروی میکند. همچنین پشتیبانان فنی بهخوبی با پایتون آشنایی دارند و در صورتی که مشکلی ایجاد میشوند، میتوانند آن را برطرف کنند. توصیه میکنم در صورتی که سایتتان را با پایتون طراحی کردهاید، حتماً هاست پایتون ایران سرور را تست کنید.
سوالات متداولی که شما میپرسید؟
1. کدام توزیع لینوکس برای جنگو بهتر است؟
اوبونتو بهترین گزینه در میان توزیعهای مختلف لینوکس است که میتوانید جنگو روی آن نصب کنید.
2. چگونه یک برنامه جنگو را میتوان اجرا کرد؟
- یک برنامه نمونه را Clone کنید؛
- تنظمیات پایتون خود را تایید کنید؛
- Cloud SQL Auth Proxy را برای اتصال به Cloud SQL از local Machine خود دانلود کنید؛
- تنظیم یک Cloud SQL برای نمونه PostgreSQL را انجام دهید؛
- مقادیر محرمانه را در Secret Manager ذخیره کنید؛
- برنامه را اجرا کنید؛
- debugging را غیرفعال کنید؛
- محدودسازی privileges یوز دیتابیس را انجام دهید؛
3. از چه ورژن جنگو باید استفاده کرد؟
به طور کلی، اگر از کد در توسعه استفاده می کنید، باید از نسخه پایدار استفاده کنید. پروژه جنگو هر هشت ماه یکبار یک نسخه کامل با ثبات منتشر میکند، با بهروزرسانیهای میتوانید اشکالات را از بین ببرید؛
4. چه ادیتور لینوکسی برای جنگو بهترین گزینه است؟
- PyCharm: توسط JetBrains توسعه یافته است و یک IDE Python Django بسیار مورد علاقه در میان توسعه دهندگان حرفه ای به شمار میآید؛
- Atom:یک ویرایشگر کد منبع باز که توسط GitHub ساخته شده است؛
- Jupyter
- Spyder
- PyDev.
- Thonny
- Wing
- Vim
منابع: