1. Установка Python3.8 (не на замену основному)
скачивание архива
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
распаковка
tar xzf Python-3.8.0.tgz
установка зависимостей для сборки из бинарников:
sapt-get install build-essential checkinstall
apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev \
zlib1g-dev
установка Python3.8 в систему
cd Python-3.8.0
sudo ./configure --enable-optimizations
sudo make altinstall
2. Установка uwsgi
uwsgi необходим для обработки питоном запросов на сервер. Устанавливается он так:
python3.8 -m pip install --upgrade pip
python3.8 -m pip install uwsgi
Проверить работоспособность uwsgi можно следующим образом: создаётся файл test.py
# test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"allo, eba, eto ti?"] # python3
#return ["allo, eba, eto ti?"] # python2
И выполняется команда:
uwsgi --http :8000 --wsgi-file test.py
Если uwsgi работает корректно, то браузером (или curl) можно получить ответ "allo,eba, eto ti?" по порту :8000
Конфиг для uwsgi и ofty (ofty_uwsgi.ini)
# ofty_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /zlab/dist/ofty
# Django's wsgi file
module = ofty.wsgi:application
# the virtualenv (full path)
home = /zlab/venv
env = DJANGO_SETTINGS_MODULE=ofty.settings
env = LANG=en_US.UTF-8
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = 127.0.0.1:8001
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
Конфиг для nginx и ofty (ofty_nginx.conf)
# ofty_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /zlab/dist/ofty
# Django's wsgi file
module = ofty.wsgi:application
# the virtualenv (full path)
home = /zlab/venv
env = DJANGO_SETTINGS_MODULE=ofty.settings
env = LANG=en_US.UTF-8
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = 127.0.0.1:8001
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
3. Установка в автозапуск nginx+uwsgi
uwsgi может работать в режиме imperror (он тогда следит за конфигами и автоматически запускает приложения). Чтобы это произошло необходимо создать папки в /etc/uwsgi и "положить" туда файлы с конфигами
# create a directory for the vassals
sudo mkdir /etc/uwsgi
sudo mkdir /etc/uwsgi/vassals
# symlink from the default config directory to your config file
sudo ln -s /path/to/your/mysite/mysite_uwsgi.ini /etc/uwsgi/vassals/
# run the emperor
uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data
Проверить, что imperror работает можно командой:
uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data
После чего добавить его в автозапуск. Для этого в файл /etc/rc.local
добавляется строка:
/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data --daemonize /var/log/uwsgi-emperor.log
Перед строкой exit 0.
Установка прав доступа на базу (и вообще на контент):
sudo chown www-data .
Комментарии
Отправить комментарий