[ad_1]
در این مقاله، میخواهیم نحوه نصب Django روی centos7 را آموزش دهیم. به دلیل اینکه جنگو به کنترلپنل سرور وابسته نیست، پس میتوان روی سروری که کنترل پنل دایرکت ادمین دارد هم نصب شود.
نکته: ما در این مقاله، در نظر گرفتهایم که شما با زبان برنامهنویسی پایتون و متعلقاتش آشنایی دارید. اگر اینطور نیست، خواندن مقاله پایتون چیست کمکتان میکند.
برویم سراغ اصل مطلب، یعنی آموزش!
چگونگی نصب فریم ورک Django روی Cenots7
قبل از هرکاری، باید با کمک دستورات زیر، پایتون ۳ را نصب کنید:
sudo yum install centos–release–scl sudo yum install rh–python36 |
خوب است بدانید که برای نصب فریم ورک جنگو، روشهای مختلفی وجود دارد. در این آموزش، ما میخواهیم از Virtual Environment یا محیط مجازی برای انجام این کار استفاده کنیم.
فقط کافی است مراحل زیر را به ترتیب انجام دهید.
ابتدا به مسیری که میخواهیم Django را در آن نصب کنیم میرویم. ما تصمیم داریم آن را در مسیر /root نصب کنیم. دستور زیر در انجام این کار یاریتان میکند:
cd mkdir my_django_app cd my_django_app |
برای دسترسی به پایتون ۳.۶، باید یک shell جدید با استفاده از ابزار scl راه اندازی کنید:
scl enable rh–python36 bash |
دستور زیر را، برای ایجاد یک محیط مجازی جدید اجرا کنید:
دستور بالا، یک دایرکتوری به نام venv ایجاد میکند. این دایرکتوری شامل یک کپی از فایل باینری پایتون، Pip package manager، کتابخانه استاندارد پایتون و سایر فایل های پشتیبانی کننده است. در ضمن میتوانید هر نامی که دوست دارید را به این محیط مجازی اختصاص دهید.
برای شروع استفاده از این محیط مجازی، باید آن را با اجرای اسکریپت زیر فعال کنید:
پس از فعال شدن Virtual Environment، نام محیط مجازی (در اینجا venv) به ابتدای خط فرمان shell اضافه میشود:
(venv) [root@server my_django_app]# |
حالا جنگو را نصب میکنیم:
نکته: در محیط مجازی، میتوانید از دستور pip بهجای pip3 و از python بهجای python3 استفاده کنید.
برای تأیید نصب، از دستور زیر استفاده کنید که نسخه جنگو را نشان میدهد:
python –m django —version |
برای تست، یک پروژه جنگو ایجاد میکنیم، دستور زیر این کار را برایمان انجام میدهد:
django–admin startproject mydjangoapp |
با دستور بالا، یک پوشه mydjangoapp در مسیر جاری ایجاد میشود.
خروجی دستور فوق، باید مشابه اطلاعات زیر باشد:
mydjangoapp/ |— manage.py `— mydjangoapp |— __init__.py |— settings.py |— urls.py `— wsgi.py |
در داخل آن مسیر، اسکریپت اصلی برای مدیریت پروژهها با نام manager.py و یک مسیر دیگر از جمله پیکربندی پایگاه داده و Django و تنظیمات مربوط به آن را پیدا خواهید کرد.
بیایید دیتابیس را انتقال دهیم و یک کاربر admin ایجاد کنیم.
آموزش ساخت دیتابیس و کاربر ادمین در فرایند نصب Django در Centos7
کار با رفتن به مسیر mydjangoapp شروع میشود:
نکته۱: جنگو بهطور پیشفرض، از دیتابیس SQLite استفاده میکند. شما میتوانید از PostgreSQL، MariaDB ، Oracle یا MySQL Database هم استفاده کنید.
نکته۲: جنگو دیتابیس مخصوص خود را دارد و اختلالی در سرویسهای دیتابیس دیگر ایجاد نمیکند.
برای انتقال پایگاه داده، دستور زیر را اجرا کنید:
با اجرای دستور فوق، باید خروجیای مشابه خروجی زیر را مشاهده کنید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ |
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.۰۰۰۱_initial… OK Applying auth.۰۰۰۱_initial… OK Applying admin.۰۰۰۱_initial… OK Applying admin.۰۰۰۲_logentry_remove_auto_add… OK Applying admin.۰۰۰۳_logentry_add_action_flag_choices… OK Applying contenttypes.۰۰۰۲_remove_content_type_name… OK Applying auth.۰۰۰۲_alter_permission_name_max_length… OK Applying auth.۰۰۰۳_alter_user_email_max_length… OK Applying auth.۰۰۰۴_alter_user_username_opts… OK Applying auth.۰۰۰۵_alter_user_last_login_null… OK Applying auth.۰۰۰۶_require_contenttypes_0002… OK Applying auth.۰۰۰۷_alter_validators_add_error_messages… OK Applying auth.۰۰۰۸_alter_user_username_max_length… OK Applying auth.۰۰۰۹_alter_user_last_name_max_length… OK Applying sessions.۰۰۰۱_initial… OK |
برای اینکه بتوانید از Django admin interface استفاده کنید، باید پس از انتقال دیتابیس، یک کاربر مدیر هم ایجاد کنید. دستور زیر کمکتان میکند:
python manage.py createsuperuser |
این دستور از شما نام کاربری، آدرس ایمیل و رمز عبور را برای کاربر مدیر درخواست میکند. درست مشابه اطلاعات زیر:
Username (leave blank to use ‘linuxize’): admin Email address: admin@linuxize.com Password: Password (again): Superuser created successfully. |
تست و آزمایش Django روی Centos7
سرور development را با استفاده از اسکریپت management.py و سپس گزینه runserver استارت کنید:
python manage.py runserver ۰.۰.۰.۰:۸۰۰۰ |
برای تنظیم دامنه نیز از دستور مشابه زیر استفاده کنید (آموزش افزودن دامنه در ادامه آورده شده است):
python manage.py runserver example.com:۸۰۰۰ |
سپس خروجی زیر را مشاهده خواهید کرد:
Performing system checks...
System check identified no issues (۰ silenced). October ۲۰, ۲۰۱۸ – ۱۱:۱۶:۲۸ Django version ۲.۱.۲, using settings ‘mydjangoapp.settings’ Starting development server at http://۱۲۷.۰.۰.۱:۸۰۰۰/ Quit the server with CONTROL–C. |
اگر Django را روی ماشین مجازی نصب کردهاید و میخواهید به Django development server دسترسی پیدا کنید، باید فایل settings.py را ویرایش کرده و آدرس IP سرور را به لیست ALLOWED_HOSTS اضافه کنید.
به دستور زیر توجه کنید:
ALLOWED_HOSTS = [‘۱.۲.۳.۴’] |
بهجای ۱.۲.۳.۴ باید آی پی آدرس سرور را بنویسید.
اگر میخواهید جنگو را روی دامنه deploy کنید، خط فوق را بهصورت زیر اصلاح کنید
ALLOWED_HOSTS = [‘۱.۲.۳.۴’,’example.com’] |
یا:
ALLOWED_HOSTS = [‘۱.۲.۳.۴’,’example.com’,’ww.example.com’] |
حالا باید فایل را ذخیره کنید.
آموزش تنظیم فایروال
کار را با دستور زیر آغاز کنید:
sudo firewall–cmd —zone=public —permanent —add–port=۸۰۰۰/tcp sudo firewall–cmd —reload |
آدرس زیر را در مرورگرتان باز کنید تا صفحه فرود پیشفرض جنگو به شما نمایش داده شود:
/http://1.2.3.4:8000
/http://example.com:8000
تصویر زیر چیزی است که خواهید دید:
برای دسترسی به بخش مدیریت هم باید از آدرسهای زیر استفاده کنید:
http://1.2.3.4:8000/admin
http://example.com:8000/admin
به تصویر زیر خواهید رسید:
بعد از لاگین کردن هم صفحه زیر را خواهید دید:
خطاهای احتمالی هنگام نصب Django روی Centos7
در این بخش، دو نوع خطای رایجتر را بررسی میکنیم:
مورد اول
اولین موردی که بررسی میکنیم، خطایی است که ممکن است هنگام اجرای دستور زیر، با آن مواجه شوید:
تصویر زیر، شکل خطا را نشان میدهد:
برای انجام این کار، میتوانید به سایت sqlite مراجعه کنید.
سپس از لینک بالا، فایل سورس با پسوند tar.gz را دانلود کنید. مطابق تصویر زیر:
ما در این آموزش، با استفاده از source code نصب نسخه جدید را انجام خواهیم داد:
cd /opt wget https://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz tar –xzf sqlite–autoconf–۳۳۶۰۰۰۰.tar.gz
cd sqlite–autoconf–۳۳۶۰۰۰۰ ./configure make install |
خب از آنجایی که Python repl همچنان از نسخه قدیمی استفاده میکند، دردی از ما دوا نمیشود! در ادامه از دستور زیر استفاده کنید:
python >>> import sqlite3 >>> sqlite3.sqlite_version ‘۳.۷.۱۷’ |
حالا با استفاده از کلیدهای ctlr+d از محیط پایتون خارج شوید. نکته مهم اینکه برای استفاده از مسیر جدید sqlite3، باید مجدداً پایتون را کامپایل کنید.
با استفاده از دستور زیر، میتوانید دستور sqlite را بررسی کنید:
در ادامه مراحل، باید نسخه پایتون را بهروزرسانی کنید. می توانید برای این کار میتوانید به سایت Python مراجعه کنید. سپس دستور زیر را اجرا کنید:
cd /opt/ cd /opt/Python–x.y.z LD_RUN_PATH=/usr/local/lib ./configure LD_RUN_PATH=/usr/local/lib make LD_RUN_PATH=/usr/local/lib make altinstall |
اکنون باید از نسخه بهروزشده استفاده کنید:
python3 Python ۳.۶.۸ (default, May ۸ ۲۰۲۰, ۱۱:۳۴:۵۳) [GCC ۴.۸.۵ ۲۰۱۵۰۶۲۳ (Red Hat ۴.۸.۵–۳۶)] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> import sqlite3 >>> sqlite3.sqlite_version ‘۳.۳۱.۱’ |
مجدداً به مسیر زیر رفته و دستوری که با خطا مواجه شده را وارد کنید:
Cd /root/my_django_app/mydjangoapp/ python manage.py migrate |
اگر خطا از بین نرفت، مراحل زیر را طی کنید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
cd /opt/ cp –rf /usr/lib64/libsqlite3.so.۰.۸.۶ /usr/lib64/libsqlite3.so.۰.۸.۶_bak cp –rf /usr/local/lib/libsqlite3.so.۰.۸.۶ /usr/lib64/libsqlite3.so.۰.۸.۶
python3 Python ۳.۷.۹ (default, Apr ۳۰ ۲۰۲۱, ۲۰:۱۱:۵۶) [GCC ۷.۳.۱ ۲۰۱۸۰۷۱۲ (Red Hat ۷.۳.۱–۱۲)] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> import sqlite3 >>> sqlite3.sqlite_version ‘۳.۳۶.۰’ |
کار در اینجا به اتمام رسیده و قاعدتاً باید خطا رفع شده باشد:
Cd /root/my_django_app/mydjangoapp/ python manage.py migrate |
خروجیای که دریافت میکنید، باید مشابه زیر باشد:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ |
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.۰۰۰۱_initial… OK Applying auth.۰۰۰۱_initial… OK Applying admin.۰۰۰۱_initial… OK Applying admin.۰۰۰۲_logentry_remove_auto_add… OK Applying admin.۰۰۰۳_logentry_add_action_flag_choices… OK Applying contenttypes.۰۰۰۲_remove_content_type_name… OK Applying auth.۰۰۰۲_alter_permission_name_max_length… OK Applying auth.۰۰۰۳_alter_user_email_max_length… OK Applying auth.۰۰۰۴_alter_user_username_opts… OK Applying auth.۰۰۰۵_alter_user_last_login_null… OK Applying auth.۰۰۰۶_require_contenttypes_0002… OK Applying auth.۰۰۰۷_alter_validators_add_error_messages… OK Applying auth.۰۰۰۸_alter_user_username_max_length… OK Applying auth.۰۰۰۹_alter_user_last_name_max_length… OK Applying sessions.۰۰۰۱_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 را آموزش دادیم. هرچیزی که لازم است در این رابطه بدانید، در این مقاله آمده است؛ حتی چگونگی رفع خطاهای احتمالی.
اگر سوالی در این زمینه دارید، حتماً در قسمت کامنتها بنویسید تا متخصصان ما پاسختان را بدهند.
با آروزی موفقیت برای شما.
[ad_2]