برای دیپلوی یک برنامه جنگو بر روی Almalinux 8.9، مراحل زیر را دنبال کنید:
۱. بروزرسانی سیستم
ابتدا با دستورات زیر مطمئن شوید که سیستم شما به روز است:
sudo dnf update -y
sudo dnf upgrade -y
۲. نصب وابستگیها
برنامه جنگو به پایتون، سرور وب (مانند Nginx یا Apache)، و پایگاهداده (مانند PostgreSQL یا MySQL) نیاز دارد. ابتدا وابستگیهای پایتون را نصب کنید:
sudo dnf install python3 python3-pip python3-devel gcc -y
۳. ایجاد یک محیط مجازی (Virtual Environment)
برای ایزوله کردن محیط پروژه، یک محیط مجازی ایجاد کنید:
python3 -m venv venv
source venv/bin/activate
۴. نصب جنگو
حالا جنگو را در محیط مجازی نصب کنید:
pip install django
۵. تنظیمات پایگاهداده
اگر از PostgreSQL استفاده میکنید، آن را نصب کنید:
sudo dnf install postgresql-server postgresql-contrib -y
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
یک دیتابیس برای پروژه جنگو ایجاد کنید. با کاربر postgres
وارد شوید و دستور زیر را اجرا کنید:
sudo -i -u postgres
psql
CREATE DATABASE mydb;
CREATE USER myuser WITH PASSWORD 'mypassword';
ALTER ROLE myuser SET client_encoding TO 'utf8';
ALTER ROLE myuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
\q
exit
سپس در فایل تنظیمات جنگو (settings.py
)، پایگاهداده را به این صورت تنظیم کنید:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
۶. مهاجرت پایگاهداده
برای اعمال تغییرات در پایگاهداده، از دستورات مهاجرت جنگو استفاده کنید:
python manage.py migrate
۷. تنظیمات فایلهای استاتیک
برای مدیریت فایلهای استاتیک (مانند CSS، JavaScript و تصاویر) تنظیمات زیر را در فایل settings.py
انجام دهید:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
سپس دستور زیر را اجرا کنید تا فایلهای استاتیک جمعآوری شوند:
python manage.py collectstatic
۸. تنظیمات سرور وب
شما میتوانید از Nginx یا Apache به عنوان سرور وب استفاده کنید.
نصب و تنظیم Nginx:
ابتدا Nginx را نصب کنید:
sudo dnf install nginx -y
sudo systemctl enable --now nginx
سپس فایل پیکربندی Nginx برای پروژه خود را به صورت زیر تنظیم کنید:
sudo nano /etc/nginx/conf.d/myproject.conf
و این محتوا را وارد کنید:
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
alias /path_to_your_project/static/;
}
}
پس از آن، Nginx را ریاستارت کنید:
sudo systemctl restart nginx
تنظیم UWSGI برای جنگو:
UWSGI یک اپلیکیشن سرور برای اجرای جنگو است. ابتدا آن را نصب کنید:
pip install uwsgi
سپس یک فایل کانفیگ برای UWSGI ایجاد کنید:
nano uwsgi.ini
و محتوای زیر را وارد کنید:
[uwsgi]
chdir = /path_to_your_project/
module = myproject.wsgi:application
env = DJANGO_SETTINGS_MODULE=myproject.settings
master = true
processes = 5
socket = 127.0.0.1:8000
vacuum = true
حالا UWSGI را اجرا کنید:
uwsgi --ini uwsgi.ini
۹. تنظیم فایروال
اگر فایروال روی سرور فعال است، باید پورت ۸۰ (و اگر SSL استفاده میکنید پورت ۴۴۳) را باز کنید:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
۱۰. تست نهایی
در مرورگر آدرس IP یا دامنه سرور خود را وارد کنید و مطمئن شوید که سایت جنگو با موفقیت بارگذاری میشود.
با این مراحل میتوانید جنگو را روی Almalinux 8.9 دیپلوی کنید.