Настройте Django на Debian 8

В этом руководстве объясняется, как настроить Django в Debian 8 (jessie). Я покажу, как использовать Python 2 и 3, а также Nginx и PostgreSQL.

Все что сделано в этом уроке сделано как root.

Установить пакеты

Для начала нам нужно установить несколько пакетов.

Для Python 2:

apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

Для Python 3:

apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

Настройка баз данных

Сначала мы входим в пользователя postgres.

sudo -u postgres -s

Далее мы создаем новую базу данных. Имя базы данных может быть любым, каким вы хотите ( dbnameздесь используется), но вы должны соответствовать остальной части настройки.

createdb dbname

Создайте пользователя для новой базы данных. Опять же, это может быть то, что вы хотите, но я использовал dbuser. Это также попросит вас установить пароль.

createuser -P dbuser

Теперь пользователю должен быть предоставлен доступ к базе данных. Просто убедитесь, что используете правильное имя базы данных и имя пользователя.

psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q

Выход в root.

exit

Включить и запустить PostgreSQL:

systemctl enable postgresql
systemctl start postgresql

Настройте виртуальную среду

Вместо того, чтобы просто использовать глобальные файлы Python, мы будем использовать виртуальную среду. Мы начнем с создания каталога, который будет содержать все это.

mkdir -p /opt/project

Теперь мы создаем окружающую среду. Это отличается для пользователей Python 2 и 3.

Для Python 2:

virtualenv . -p python

Для Python 3:

virtualenv . -p python3

Войдите в виртуальную среду.

source bin/activate

Установите Django, gunicorn и psycopg2.

pip install django
pip install gunicorn
pip install psycopg2

Если вам нужна конкретная версия Django, измените команду установки в соответствии с приведенным ниже форматом. Этот пример устанавливает 1.7.8.

pip install django==1.7.8

Сейчас мы закончили с этим, поэтому мы можем деактивировать нашу виртуальную среду.

deactivate

Загрузка проекта и настройка

Это время, когда мы загружаем наш проект на сервер, и мы проверяем, что все его настройки верны. Вы можете использовать любой метод для этого. FTP, SFTP, git и т. Д. - все это можно сделать. Если вы используете git для отслеживания кода проекта, вы можете просто клонировать его на сервер. Эта команда git клонирует проект на сервер и помещает его в /opt/project/project/.

git clone http://example.com:project.git

Откройте settings.pyфайл в любом текстовом браузере.

Перво-наперво, режим отладки должен быть выключен. Найдите DEBUG = Trueстроку и измените Trueна False. После этого убедитесь, что вы ALLOWED_HOSTSустановили какое-то значение.

ALLOWED_HOSTS = ['*']

Ищите DATABASESсловарь, и он должен выглядеть так:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'dbuser',
        'PASSWORD': 'password you set',
        'HOST': 'localhost',
        'PORT': ''
    }
}

Последний шаг здесь - установить статический корень. Поместите следующее непосредственно ниже STATIC_URL.

STATIC_ROOT = '/opt/project/static/'

Выйдите из файла и создайте статический корневой каталог.

mkdir -p /opt/project/static

Теперь перенесите базу данных, создайте суперпользователя и соберите все статические файлы.

cd /opt/project/project
../bin/python manage.py makemigrations
../bin/python manage.py migrate
../bin/python manage.py createsuperuser
../bin/python manage.py collectstatic

Настроить Gunicorn

Gunicorn - это сервер WSGI, который мы будем использовать. Поскольку Debian 8 поставляется с systemd, мы воспользуемся преимуществами systemd для запуска и остановки сервера.

Создайте файл /etc/systemd/system/django.serviceи добавьте следующий контент.

[Unit]
Description=Django with Gunicorn
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/opt/project
ExecStart=/opt/project/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 project.wsgi

[Install]
WantedBy=multi-user.target

Включите и запустите созданный нами сервис.

systemctl enable django.service
systemctl start django.service

Nginx

Вы , возможно, заметили , что мы связаны сервера gunicorn к 127.0.0.1. Теперь нам нужен способ доступа к нему извне сервера. Это где Nginx приходит.

Создайте новый файл /etc/nginx/sites-available/djangoи добавьте следующее. domain.example.comЧасть может быть установлена на все , что нужно, чтобы это было.

server {
        listen 80;
        server_name domain.example.com;
        access_log off;

        location /static/ {
                alias /opt/project/static/;
        }

        location / {
                proxy_pass http://127.0.0.1:8000;
        }
}

Создайте символическую ссылку, чтобы включить этот сайт.

ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django

Включите и запустите Nginx.

systemctl enable nginx
systemctl start nginx

Заключение

Поздравляем, теперь у вас есть рабочий сайт Django на вашем Debian VPS.

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше