جنگو (Django) یک فریم‌ورک وب مبتنی بر پایتون است که به توسعه‌دهندگان امکان می‌دهد تا برنامه‌های وب را به سرعت و به آسانی بسازند. در این مقاله، مراحل راه‌اندازی یک پروژه جنگو در سرور لینوکس را بررسی خواهیم کرد.

پیش نیازها

قبل از هر چیز، مطمئن شوید که موارد زیر را در سرور لینوکس خود نصب کرده‌اید:

  1. پایتون: حداقل نسخه 3.6
  2. pip: برای نصب بسته‌های پایتون
  3. Virtualenv: برای مدیریت محیط‌های مجازی
  4. Nginx یا Apache: برای خدمات وب (اختیاری، بسته به نیاز شما)

مراحل راه‌اندازی جنگو در سرور لینوکس

1. نصب جنگو

ابتدا باید یک محیط مجازی برای پروژه‌ی خود ایجاد کنید:

sudo apt update
sudo apt install python3-pip python3-dev libpq-dev nginx
pip3 install virtualenv

سپس یک دایرکتوری برای پروژه‌ی خود بسازید و به آن دایرکتوری بروید:

mkdir myproject
cd myproject

حال یک محیط مجازی بسازید و به آن فعال کنید:

virtualenv venv
source venv/bin/activate

حالا می‌توانید جنگو را نصب کنید:

pip install django

آموزش جنگو (رایگان)

2. ایجاد پروژه جنگو

با استفاده از دستور زیر یک پروژه جدید جنگو ایجاد کنید:

django-admin startproject myproject .

3. تنظیم پایگاه‌ داده

اگر می‌خواهید از PostgreSQL استفاده کنید، ابتدا باید PostgreSQL را نصب کنید:

sudo apt install postgresql postgresql-contrib

سپس یک پایگاه‌داده و کاربر ایجاد کنید:

sudo -u postgres psql
CREATE DATABASE mydatabase;
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 mydatabase TO myuser;
q

در فایل settings.py، تنظیمات پایگاه‌داده را به شرح زیر تغییر دهید:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '',
    }
}

4. اجرای migrations

اکنون می‌توانید migrations را اجرا کنید تا جداول پایگاه داده ایجاد شوند:

python manage.py migrate

5. روشن کردن سرور

برای تست پروژه، شما می‌توانید از سرور توسعه جنگو استفاده کنید:

python manage.py runserver ...:800

6. پیکربندی Nginx

اگر می‌خواهید از Nginx به عنوان وب سرور استفاده کنید، فایل پیکربندی جدیدی بسازید:

sudo nano /etc/nginx/sites-available/myproject

و افزودن متن زیر را انجام دهید:

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127...1:800;
        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;
    }
}

پس از آن، به لینک‌های موجود در sites-enabled ارتباط دهید و Nginx را راه‌اندازی کنید:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

نتیجه‌ گیری

حالا شما یک پروژه جنگو در سرور لینوکس خود دارید! با انجام مراحل بالا، می‌توانید پروژه‌های وب خود را توسعه دهید و به راحتی از آن‌ها بهره‌برداری کنید. با یادگیری بیشتر در مورد جنگو، می‌توانید قابلیت‌های بیشتری به برنامه‌های خود اضافه کنید.