Веб-приложение на Python, virtualenv, Wagtail (Django), Gunicorn (WSGI HTTP Server), PostgreSQL (pip psycopg2).
Веб-приложение на Python, virtualenv, Wagtail (Django), Gunicorn (WSGI HTTP Server), PostgreSQL (pip psycopg2).
Для установки веб-приложения на Linux Debian из данного репозитория можно воспользоваться данной инструкцией:
sudo apt-get update
yes | sudo apt-get dist-upgrade
python -V # проверка версии python
python3 -V # проверка версии python3
yes | sudo apt-get install python3 # установка python3, если отсутствует
yes | sudo apt-get install python3-setuptools python3-dev # установка easy_install и python3-dev, если отсутствуют
sudo easy_install pip # установка pip, если отсутствует
pip -V # просмотр версии pip
sudo pip install --upgrade pip # обновление pip при необходимости
yes | sudo apt-get install libtiff5-dev libjpeg9-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk gcc libc-dev
Должно появится приглашение на подобие следующего:
sudo pip3 install virtualenv
sudo virtualenv /opt/artenv
cd /opt/artenv
source bin/activate
(myenv) art@local.develop.server:/opt/artenv$
sudo pip3 install wagtail gunicorn
wagtail start artblog # создание каркаса нашего приложения
git clone https://github.com/lnovus/webapp-blog-on-python.git # получение файлов
8. Заменить файлы в директории /opt/artenv/artblog файлами из репозитория (при скачивании находятся внутри webapp-blog-on-python/;
9. Перейти в основную папку проекта /opt/artenv/artblog и установить зависимости:
sudo pip install -r requirements.txt
10. Установить и настроить базу данных проекта (PostgreSQL):
sudo apt-get install libpq-dev postgresql postgresql-contrib
ps -ef | grep postgre # проверим работу базы данных
sudo pip install psycopg2 # установим утилиту для взаимодействия нашего приложения с базой данных
sudo su - postgres # заходим под стандартным пользователем postgresql
psql # запускаем консольную утилиту для связи с базой данных
CREATE DATABASE
CREATE USER
GRANT ALL PRIVILEGES ON DATABASE
\q
exit
sudo nano /opt/artenv/artblog/artblog/settings/base.py
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql_psycopg2’,
‘NAME’: ‘
‘USER’: ‘
‘PASSWORD’: ‘
‘HOST’: ‘localhost’,
‘PORT’: ‘’,
}
}
LANGUAGE_CODE = ‘ru-ru’
11. Изменим первую строку в файле manage.py для того, чтобы она указывала на python в нашем виртуальном окружении и выполним миграцию:
sudo nano /opt/artenv/artblog/manage.py # откроем в редакторе nano необходимый файл
cd /opt/artenv/artblog # перейдем в папку с нашим проектом
sudo python manage.py migrate # выполним миграцию
sudo python3.6 manage.py migrate # далее используем вместо python нашу версию python3.x
12. Создаем профиль администратора и запускаем наше приложение:
cd /opt/artenv/artblog # переходим в директорию нашего проекта
sudo python manage.py createsuperuser # создаем администратора нашего приложения, вводим логин, email, пароль
deactivate # отключим наше виртуальное окружение
python3.x manage.py runserver 0.0.0.0:8000 # запускаем приложение на 8000 порту для проверки и отладки
sudo nano /usr/local/lib/python3.x/dist-packages/django/conf/global_settings.py # в качестве примера
python3.x manage.py runserver 0.0.0.0:80 # запускаем наше приложение на 80-м порту
13. Если мы работаем на сервере, например, через ssh клиент (PuTTY или другой), то возможно нам понадобится запустить приложение через nohup с установкой процесса в качестве фонового (в конце команды &), чтобы веб-приложение продолжило свою работу после закрытия ssh-клиента:
cd /opt/artenv/artblog # переходим в директорию нашего проекта
nohup sudo python3.x manage.py runserver 0.0.0.0:80 & # запускаем приложение в виде фонового процесса (задания)
jobs -p # используем для просмотра наших заданий и их PID
ps -ef # также можно просмотреть все процессы (если мы перелогинились до этого)
sudo kill PID # для отключения нашего приложения используем данную команду (PID находим при помощи команд, указанных выше
14. Для удобной работы в консоли Linux Debian возможно понадобятся следующие команды:
history # история введенных нами команд (зависит от пользователя, под которым мы находимся)
!x # x - номер команды из истории, позволяет выполнить определенную команду, введенную ранее
!! # выполнить предыдущую команду
sudo !! # выполнить предыдущую команду от имени администратора
```