Инструменты пользователя

Инструменты сайта


mp_doc:imain_install_deb13_web

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
mp_doc:imain_install_deb13_web [2026/08/25 03:51] zismp_doc:imain_install_deb13_web [2026/08/26 04:38] (текущий) zis
Строка 1: Строка 1:
-====== ЧЕРНОВИК Установка узла веб интерфейса (Debian 13) ====== +===== Установка узла веб интерфейса (Debian 13) ===== 
-1. Создадим пользователя mpweb (из под root): +Можно установить web приложения (webappна отдельный сервер (подготовить debian13 аналогично пп 1-4 [[imain_install_deb13_work|руководства]]) или использовать уже развернутый [[imain_install_deb13_kamailio|сервер kamaillio]]После этого сервер нужно подготовить (общие шаги для всех webapp).
-<code>adduser mpweb</code> +
-2. Создать каталог для ведения логов и назначить права (из под root): +
-<code>mkdir /var/log/mpweb && chown mpweb:adm /var/log/mpweb</code> +
-3. Установим зависимости (из под root)+
-<code>apt install subversion python3 python3-pip gettext default-libmysqlclient-dev +
-apt install pyenv python3-venv</code> +
-4. Добавим в конец /home/mpweb/.bashrc +
-<code>export PYTHONPATH=/usr/bin/python3 +
-export VIRTUALENVWRAPPER_PYTHON=$PYTHONPATH +
-export WORKON_HOME=$HOME/.virtualenvs +
-source /usr/local/bin/virtualenvwrapper.sh</code> +
-5. **Это важно!!!** ВОЙДЕМ под пользователем **mpweb**!\\ +
-\\ +
-6. Создадим виртуальное окружение: +
-<code>mkvirtualenv mpweb +
-workon mpweb +
-</code> +
- +
-проверить: +
-<code> +
-### под пользователем root ### +
- +
-# Добавим репозитарий +
-add-apt-repository ppa:deadsnakes/ppa +
- +
-# Установим python3.8 +
-apt install build-essential python3.8-dev python3.8-distutils python3.8 +
-# Устаонвим virtualenv +
-apt install python3-virtualenvwrapper bash-completion +
- +
-### под пользователем mpweb ### +
-# все делаем в базовом каталоге +
-cd ~ +
- +
-# настроим virtualenv +
-echo "export WORKON_HOME=\$HOME/.virtualenvs" >> ~/.bashrc +
-echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc +
-echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc +
-source ~/.bashrc +
- +
-# создадим виртуальное окружение +
-mkvirtualenv -p python3.8 mpweb +
-pip3 install setuptools==58.2.0 +
-установим зависимости +
-взять можно в репозитории minipbx_web/mpweb +
-pip3 install -r requirements.txt +
- +
-создадим egg для pserve  +
-cd minipbx_web +
-python3 ./setup.py install +
-# будет создан ~/.virtualenvs/mpweb/lib/python3.8/site-packages/mpweb-1.0-py3.8.egg  +
-# НО он скопирует туда исходный код, а нам такого не надо, поэтому для python 3.8 +
-# можно выполнить вместо запуска setup.py: +
-mkdir ~/.virtualenvs/mpweb/lib/python3.8/site-packages/mpweb-1.0-py3.8.egg +
-ln -s -T /home/mpweb/minipbx_web/mpweb.egg-info ~/.virtualenvs/mpweb/lib/python3.8/site-packages/mpweb-1.0-py3.8.egg/EGG-INFO+
  
 +Подготовка сервера к развертыванию web приложений, все действия выполнять из под root, если не указано иное:\\
 +1. Создадим пользователя mpweb, группу pyenv и включим нового пользователя в новую группу:
 +<code>adduser mpweb
 +addgroup pyenv
 +usermod -G pyenv mpweb
 </code> </code>
-=== Настройка интерфейса администратора === +2. Создать каталог для ведения логов и назначить права
-Все действия выполняем из под пользователя mpweb, если не указано иное.\\ +<code>mkdir /var/log/mpweb && chown mpweb:adm /var/log/mpweb</code> 
-1. Создадим скрипт (/home/mpweb/mpweb.sh) получения и обновления исходников: +3. Установим зависимости: 
-<code>#!/bin/sh +<code>apt install subversion python3 python3-pip gettext default-libmysqlclient-dev nginx pyenv python3-venv</code> 
- +4Добавить в ~/.bashrc
-+<code>export PYENV_ROOT=/opt/pyenv</code> 
-# Global +**Это важно!** Не забудьте выйти - войти пользователем!\\ 
-pth=/home/mpweb/minipbx_web +5Установим нужную версию python через pyenv
-user=XXX +<code>pyenv install 3.8.20</code> 
- +6Сделаем каталог доступный для пользователей группы pyenv
-# Checkout! +<code>chown root:pyenv -R $PYENV_ROOT</code> 
-#mkdir $pth +Тут требуется пояснение: идеология pyenv предполагает установку в домашний каталог пользователя (~/pyenv). Мне кажется такое избыточным, поэтому версия 3.8.20 установлена в систему как дополнительная версия python, доступная для всех (подобно, если бы установили ее через apt install python3.8).\\ 
-#svn checkout --username $user http://svn.minipbx.ru/minipbx_web/mpweb $pth +7. Добавим символические ссылки: 
- +<code>ln -s $PYENV_ROOT/versions/3.8.20/bin/python3.8 /usr/bin/python3.
-+ln -s $PYENV_ROOT/versions/3.8.20/bin/pip3.8 /usr/bin/pip3.8</code>
-# Update +
-svn update --username $user $pth</code> +
-2. Сделаем исполняемым: +
-<code>chmod +x /home/mpweb/mpweb.sh</code> +
-3. Первый раз делаем checkout, потом update. +
-4. Установим зависимости:  +
-<code>python3 ./setup.py install</code> +
-5Скопируем файл настроек и настроем его+
-<code>cp /home/mpweb/minipbx_web/development.ini.sample /home/mpweb/minipbx_web/development.ini +
-cp /home/mpweb/minipbx_web/production.ini.sample /home/mpweb/minipbx_web/production.ini +
-</code> +
-Настройка начинается с базы данных и секретных ключей+
-  * sqlalchemy.url - строка подключения к БД minipbx; +
-  * auth.secret секрет для авторизации; +
-  * session.key - ключ для передачи параметров сессии; +
-  * session.secret - секрет для передачи параметров сессии; +
-Для генерации случайных ключей воспользуйтесь командой: +
-<code>openssl rand -hex 32</code> +
-6Для тестирования иногда нужно запускать сервер в терминале. Для этого скопируем скрипт запуска (из под root)+
-<code>mkdir /home/mpweb/.local/bin +
-cp /home/mpweb/minipbx_web/scripts/run_mpweb /home/mpweb/.local/bin/</code> +
-7Для запуска в качестве службы скопируем systemd скрипт и включим его автоматический запуск (из под root)+
-<code>cp /home/mpweb/minipbx_web/scripts/mpweb.service  /lib/systemd/system/ +
-systemctl enable mpweb +
-systemctl start mpweb +
-systemctl status mpweb</code> +
-8. В каталоге minipbx_web выполнить **lcompile.sh**. Скрипт выполняет обновление перевода (ru\en)\\ +
-9. Не совсем правильная штука, но чтобы не выполнять при каждом обновлении setup.py, сделаем: +
-<code>cd /home/mpweb/.virtualenvs/mpweb/lib/python3.6/site-packages/mpweb-1.0-py3.6.egg +
-mv mpweb mpweb.1 +
-ln -s /home/mpweb/minipbx_web/mpweb mpweb +
-</code> +
-Каталог mpweb.1 можно удалить. +
-=== Настройка интерфейса пользователя === +
-Все действия выполняем из под пользователя mpweb, если не указано иное.\\ +
-1. Создадим скрипт (/home/mpweb/mpami.sh) получения и обновления исходников  (из под пользователя mpweb): +
-<code>#!/bin/sh +
- +
-+
-# Global +
-pth=/home/mpweb/minipbx_ami +
-user=XXX +
- +
-# Checkout! +
-#mkdir $pth +
-#svn checkout --username $user http://svn.minipbx.ru/minipbx_web/mpami $pth +
- +
-+
-# Update +
-svn update --username $user $pth</code> +
-2. Сделаем исполняемым+
-<code>chmod +x /home/mpweb/mpami.sh</code> +
-3. Первый раз делаем checkout, потом update.\\ +
-4Установим зависимости: +
-<code>bash /home/mpweb/minipbx_ami/setup.txt</code> +
-5. Скопируем файл настроек и настроем его: +
-<code>cp /home/mpweb/minipbx_ami/mpami.ini.sample /home/mpweb/minipbx_ami/mpami.ini</code> +
-Настройка начинается с базы данных и секретного ключа: +
-  * [DB].url - строка подключения к БД minipbx; +
-  * [MAIN].secret_key - ключ для шифрования JWT; +
-Для генерации случайных ключей воспользуйтесь командой: +
-<code>openssl rand -hex 32</code> +
-6. Для тестирования иногда нужно запускать сервер в терминале. Для этого скопируем скрипт запуска (из под root)+
-<code>mkdir /home/mpweb/.local/bin +
-cp /home/mpweb/minipbx_ami/bin/run_mpami /home/mpweb/.local/bin/</code> +
-7. Для запуска в качестве службы скопируем systemd скрипт и включим его автоматический запуск (из под root)+
-<code>cp /home/mpweb/minipbx_ami/bin/mpami.service  /lib/systemd/system/ +
-systemctl enable mpami +
-systemctl start mpami +
-systemctl status mpami</code> +
-8. В каталоге minipbx_ami выполнить **lcompile.sh**. Скрипт выполняет обновление перевода (ru\en)\\+
  
 +===== Разворачивание (deploy) веб приложения =====
 +  * [[imain_install_deb13_webapp_admin|Развертывание приложения веб интерфейса администратора]]
 +  * [[imain_install_deb13_webapp_user|Развертывание приложения веб интерфейса пользователя]]
mp_doc/imain_install_deb13_web.1787629896.txt.gz · Последнее изменение: zis

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki