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

В основном все наши сервера находятся на jino.ru. Быстрая техническая поддержка и удобная панель администрирования серверов.

И так приступим. 

Допустим у нас уже есть купленный сервер на Debian с базовой установкой. 

Создадим пользователя sudo

  1. Шаг 1: Логинимся под root (ssh root@ваш_ip_address.). 
  2. Шаг 2: Теперь добавим пользователя. Выполните команду adduser username
  3. Шаг 3: Добавим пользователя в группу. Выполните команды 
    usermod -aG sudo username
    getent group sudo

 

Пользователь создан, логинимся этим пользователем su — username.

Первоначальная настройка сервера на Debian для проектов Django.

Коннектимся на сервер и устанавливаем необходимые пакеты:

sudo apt-get update ; \

sudo apt-get install -y vim mosh tmux htop git curl wget unzip zip gcc build-essential make

Настройка SSH:

sudo vim /etc/ssh/sshd_config

    AllowUsers www

    PermitRootLogin no

    PasswordAuthentication no

Рестартt SSH sсервер, изменение пароля пользователя (в нашем случае имя пользователя www):

sudo service ssh restart

sudo passwd www

Must-have пакеты & ZSH

sudo apt-get install -y zsh tree redis-server nginx  libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-dev python-imaging python3-lxml libxslt-dev python-libxml2 python-libxslt1 libffi-dev libssl-dev python-dev gnumeric libsqlite3-dev libpq-dev libxml2-dev libxslt1-dev libjpeg-dev libfreetype6-dev libcurl4-openssl-dev supervisor

Установка oh-my-zsh:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Настраиваем необходимые aliases:

vim ~/.zshrc

    alias cls="clear"

Установка python 3.7

mkdir ~/code

Установка python 3.7 в папку  ~/.python:

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz ; \
tar xvf Python-3.7.* ; \ cd Python-3.7.3 ; \ mkdir ~/.python ; \ ./configure --enable-optimizations --prefix=/home/www/.python ; \ make -j8 ; \ sudo make altinstall

Теперь python3.7 в /home/www/.python/bin/python3.7. Обновим pip:

sudo /home/www/.python/bin/python3.7 -m pip install -U pip

Хорошо, теперь зальем наш проект, например с git. Создадим и актиыируем виртуальное окружение:

cd code

git pull project_git

cd project_dir

python3.7 -m venv env

. ./env/bin/activate

Установка и настройка PostgreSQL

Установим PostgreSQL 12 и настроим локали.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - ; \

RELEASE=$(lsb_release -cs) ; \

echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee  /etc/apt/sources.list.d/pgdg.list ; \

sudo apt update ; \

sudo apt -y install postgresql-12 ; \

sudo localedef ru_RU.UTF-8 -i ru_RU -fUTF-8 ; \

export LANGUAGE=ru_RU.UTF-8 ; \

export LANG=ru_RU.UTF-8 ; \

export LC_ALL=ru_RU.UTF-8 ; \

sudo locale-gen ru_RU.UTF-8 ; \

sudo dpkg-reconfigure locales

Добавьте локали в /etc/profile:

sudo vim /etc/profile

    export LANGUAGE=ru_RU.UTF-8

    export LANG=ru_RU.UTF-8

    export LC_ALL=ru_RU.UTF-8

Изменим postges пароль, создадим новую базу с именем dbms_db:

sudo passwd postgres su - postgres export PATH=$PATH:/usr/lib/postgresql/11/bin createdb --encoding UNICODE dbms_db --username postgres exit

Создадим пользователя и дадим ему привелегии на нашу базу:

sudo -u postgres psql

postgres=# ...

create user dbms with password 'some_password';

ALTER USER dbms CREATEDB;

grant all privileges on database dbms_db to dbms;

\c dbms_db

GRANT ALL ON ALL TABLES IN SCHEMA public to dbms;

GRANT ALL ON ALL SEQUENCES IN SCHEMA public to dbms;

GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to dbms;

CREATE EXTENSION pg_trgm;

ALTER EXTENSION pg_trgm SET SCHEMA public;

UPDATE pg_opclass SET opcdefault = true WHERE opcname='gin_trgm_ops';

\q

exit

Протестируем соединение. Создайте файл ~/.pgpass с логином и паролем к базе:

vim ~/.pgpass

        localhost:5432:dbms_db:dbms:some_password

chmod 600 ~/.pgpass

psql -h localhost -U dbms dbms_db

Если есть дамп, то теперь время его залить:

psql -h localhost dbms_db dbms  < dump.sql

Установка и настройка supervisor

Я рекомендую использовать systemd. Если вам нужен supervisor — тогда читай дальше:

sudo apt install supervisor
  vim /home/www/code/project/bin/start_gunicorn.sh         #!/bin/bash         source /home/www/code/project/env/bin/activate         source /home/www/code/project/env/bin/postactivate         exec gunicorn  -c "/home/www/code/project/gunicorn_config.py" project.wsgi   chmod +x /home/www/code/project/bin/start_gunicorn.sh   vim project/supervisor.salesbeat.conf         [program:www_gunicorn]         command=/home/www/code/project/bin/start_gunicorn.sh         user=www         process_name=%(program_name)s         numprocs=1         autostart=true         autorestart=true         redirect_stderr=true

Если вам нужен пример настройки Gunicorn — читай дальше:

command = '/home/www/code/project/env/bin/gunicorn'

pythonpath = '/home/www/code/project/project'

bind = '127.0.0.1:8001'

workers = 3

user = 'www'

limit_request_fields = 32000

limit_request_field_size = 0

raw_env = 'DJANGO_SETTINGS_MODULE=project.settings'

Комментарии ()

    Адрес веб студии
    Позвонить

    Городской: +7(8793)33-16-17
    Мобильный: +7(928)911-74-69

    email веб студии
    Написать

    manager@kmv-it.ru

    Доехать до веб студии
    Приехать

    г.Пятигорск переулок Первомайский 18

    Логотип Кухня сайтов