Обновление 3.19: различия между версиями
Нет описания правки |
Нет описания правки |
||
(не показано 8 промежуточных версий 3 участников) | |||
Строка 8: | Строка 8: | ||
* В версии 3.19 мы очень много сделали для универсализации и индивидуализации системы. Теперь каждый клиент может отключить неиспользуемые разделы, создать совершенно произвольные разделы и сущности и оперировать ими, а также изменять наименование базовых терминов - таких как "Абоненты" | * В версии 3.19 мы очень много сделали для универсализации и индивидуализации системы. Теперь каждый клиент может отключить неиспользуемые разделы, создать совершенно произвольные разделы и сущности и оперировать ими, а также изменять наименование базовых терминов - таких как "Абоненты" | ||
* У нас появилась "[[Двухфакторная аутентификация]]". Не пренебрегайте безопасностью и используйте её. | * У нас появилась "[[Двухфакторная аутентификация (2FA)]]". Не пренебрегайте безопасностью и используйте её. | ||
* Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб. | * Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб. Также изменилось имя каталога, который должен быть корневым для web, на стандартное имя public. | ||
* Изменена маршрутизация страниц/ссылок системы | * Изменена маршрутизация страниц/ссылок системы | ||
Строка 23: | Строка 23: | ||
** "Интерфейс технической поддержки". В версии 3.20 раздел будет удалён | ** "Интерфейс технической поддержки". В версии 3.20 раздел будет удалён | ||
* [[ | * [[Обновление]]. '''Рекомендую иметь два инстанса системы'''. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать. | ||
* Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside | * Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside | ||
Строка 49: | Строка 49: | ||
* Перенесите/удалите посторонние файлы, каталоги и прочее из директории userside (/var/www/userside). Там должны находится только дистрибутивные файлы самой системы и файлы, которые система создает во время своей работы. Модули userside (usm) также не должны там хранится. Используйте отдельные каталоги для них (например, /opt/userside). Посторонние файлы из директории userside могут быть удалены в процессе обновления | * Перенесите/удалите посторонние файлы, каталоги и прочее из директории userside (/var/www/userside). Там должны находится только дистрибутивные файлы самой системы и файлы, которые система создает во время своей работы. Модули userside (usm) также не должны там хранится. Используйте отдельные каталоги для них (например, /opt/userside). Посторонние файлы из директории userside могут быть удалены в процессе обновления | ||
* Сохраните файлы userside3/main/config/custom_api.php | * Сохраните файлы ''(при их наличии)'' | ||
userside3/main/config/custom_api.php | |||
userside3/main/skins/user_style.css | |||
userside3/main/js/user_script.js | |||
Они могут пригодится в случае ошибок обновления и их удаления при этом. Если вы использовали собственные значки для типов сооружений связи и самостоятельно их загружали в какой-то каталог, что доступен из веб - то также их сохраните. | |||
* Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб. | * Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб. | ||
Строка 74: | Строка 79: | ||
</pre> | </pre> | ||
* В NGINX | * создайте новый каталог public внутри каталога userside (если у вас установлено в другом месте, отредактируйте команду перед выполнением): | ||
<pre> | |||
sudo mkdir -p /var/www/userside/public | |||
</pre> | |||
* В настройке NGINX-сервера (/etc/nginx/conf.d/userside.conf) измените пути к корневому каталогу. Строку: | |||
<pre> | |||
root /var/www/userside/userside3; | |||
</pre> | |||
Замените на: | |||
<pre> | |||
root /var/www/userside/public; | |||
</pre> | |||
* Там же измените <code>location /</code> целиком на следующий: | |||
<pre> | |||
location / { | |||
try_files $uri $uri/ /index.php$is_args$args; | |||
} | |||
</pre> | |||
* Там же для <code>location ~ \.php$</code> измените значение для fastcgi_pass с: | |||
fastcgi_pass unix:/run/php/php8.1-fpm.sock; | fastcgi_pass unix:/run/php/php8.1-fpm.sock; | ||
на | на | ||
fastcgi_pass unix:/run/php/php8.3-fpm.sock; | fastcgi_pass unix:/run/php/php8.3-fpm.sock; | ||
и перечитайте конфигурацию nginx: | и перечитайте конфигурацию nginx: | ||
sudo nginx -s reload | sudo nginx -s reload | ||
* | * Для websocket-пользователя (websock-user) брокера RabbitMQ необходимо изменить разрешения следующим образом: | ||
<pre> | <pre> | ||
sudo rabbitmqctl set_permissions -p "/" "websock-user" "^erp-stomp:id-.*" "" "^erp-stomp:id-.*" | |||
</pre> | </pre> | ||
Если имя вашего websocket-пользователя отличается от websock-user, то укажите его вместо websock-user в приведенных выше командах. | |||
* Обратите внимание, что при вызове команды <code>php</code> из командной строки, теперь будет вызываться php8.3, так как это последняя установленная версия. Если вы где-либо до сих пор используете php8.1, то вам нужно изменить вызов php в этих местах либо изменить альтернативную команду php, чтобы она запускала нужную вам версию. | * Обратите внимание, что при вызове команды <code>php</code> из командной строки, теперь будет вызываться php8.3, так как это последняя установленная версия. Если вы где-либо до сих пор используете php8.1, то вам нужно изменить вызов php в этих местах либо изменить альтернативную команду php, чтобы она запускала нужную вам версию. | ||
* USERSIDE 3.19 требует Python | * USERSIDE 3.19 ''требует Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "[https://devguide.python.org/versions/ Status of Python versions]". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать. Если у вас на хосте неподдерживаемая версия ("end-of-life"), то нужно обязательно [[Python-update|установить дополнительно]] более свежую версию Python.'' | ||
* С помощью автоматического [[Инсталлятор|инсталлятора]] выполните [[Обновление | * С помощью автоматического [[Инсталлятор|инсталлятора]] выполните [[Обновление|обновление]]: | ||
sudo -u www-data php userside_install.phar install | sudo -u www-data php userside_install.phar install | ||
Строка 121: | Строка 144: | ||
'''Список изменений:''' [[3.19|просмотреть]] | '''Список изменений:''' [[3.19|просмотреть]] | ||
'''Проведение обновления:''' [[Обновление | '''Проведение обновления:''' [[Обновление|инструкция]] |
Текущая версия от 12:46, 18 октября 2024
Версия: 3.19
Требуется версия: 3.10 и выше
Несколько слов от автора
- В версии 3.19 мы очень много сделали для универсализации и индивидуализации системы. Теперь каждый клиент может отключить неиспользуемые разделы, создать совершенно произвольные разделы и сущности и оперировать ими, а также изменять наименование базовых терминов - таких как "Абоненты"
- У нас появилась "Двухфакторная аутентификация (2FA)". Не пренебрегайте безопасностью и используйте её.
- Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб. Также изменилось имя каталога, который должен быть корневым для web, на стандартное имя public.
- Изменена маршрутизация страниц/ссылок системы
Было: /?core_section=customer&action=show&id=1234 Стало: /customer/1234
- В версии 3.19 объявляются устаревшими разделы:
- "Схема размещения строительных длин и смонтированных муфт для трасс кабельных линий". В версии 3.20 раздел будет удалён
- "Неизвестные MAC-адреса". В версии 3.20 раздел будет удалён
- "Интерфейс технической поддержки". В версии 3.20 раздел будет удалён
- Обновление. Рекомендую иметь два инстанса системы. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.
- Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside
Особенности в проведении обновления
При обновлении в Docker-окружении, обратитесь к инструкциям в репозитории Docker-бандла.
- Если вы обновляетесь с версии 3.10 - ознакомьтесь со страницей: Обновление 3.11
- Если вы обновляетесь с версии 3.11 и ранее - ознакомьтесь со страницей: Обновление 3.12
- Если вы обновляетесь с версии 3.12 и ранее - ознакомьтесь со страницей: Обновление 3.13
- Если вы обновляетесь с версии 3.13 и ранее - ознакомьтесь со страницей: Обновление 3.14
- Если вы обновляетесь с версии 3.14 и ранее - ознакомьтесь со страницей: Обновление 3.15
- Если вы обновляетесь с версии 3.15 и ранее - ознакомьтесь со страницей: Обновление 3.16
- Если вы обновляетесь с версии 3.16 и ранее - ознакомьтесь со страницей: Обновление 3.17
- Если вы обновляетесь с версии 3.17 и ранее - ознакомьтесь со страницей: Обновление 3.18
- Перенесите/удалите посторонние файлы, каталоги и прочее из директории userside (/var/www/userside). Там должны находится только дистрибутивные файлы самой системы и файлы, которые система создает во время своей работы. Модули userside (usm) также не должны там хранится. Используйте отдельные каталоги для них (например, /opt/userside). Посторонние файлы из директории userside могут быть удалены в процессе обновления
- Сохраните файлы (при их наличии)
userside3/main/config/custom_api.php userside3/main/skins/user_style.css userside3/main/js/user_script.js
Они могут пригодится в случае ошибок обновления и их удаления при этом. Если вы использовали собственные значки для типов сооружений связи и самостоятельно их загружали в какой-то каталог, что доступен из веб - то также их сохраните.
- Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб.
- Версия 3.19 требует PHP версии 8.3. Вы можете установить все необходимые пакеты дополнительно к уже существующей иной версии PHP. Если используете LDAP, то установите также php8.3-ldap. Если используете TurboSMS, то установите php8.3-soap.
sudo apt install -y php8.3-{fpm,cli,common,curl,intl,mbstring,opcache,pgsql,readline,xml,zip,snmp,gd}
- Если версия php8.3 отсутствует в вашем репозитории, то воспользуйтесь альтернативным репозиторием, например, deb.sury.org, добавив его в систему следующим образом и затем повторив команду установки PHP8.3 приведенную пунктом выше:
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' sudo apt update
- Измените конфигурацию PHP следующим образом и перезапустите службу php-fpm.
sudo sed -i "s@^;date.timezone.*@date.timezone = $(cat /etc/timezone)@" /etc/php/8.3/fpm/php.ini sudo sed -i "s@^;date.timezone.*@date.timezone = $(cat /etc/timezone)@" /etc/php/8.3/cli/php.ini sudo sed -i "s@;cgi.fix_pathinfo=1@cgi.fix_pathinfo=0@" /etc/php/8.3/fpm/php.ini sudo sed -i "s@post_max_size = 8M@post_max_size = 100M@" /etc/php/8.3/fpm/php.ini sudo sed -i "s@upload_max_filesize = 2M@upload_max_filesize = 100M@" /etc/php/8.3/fpm/php.ini sudo sed -i "s@max_execution_time.*@max_execution_time = 300@" /etc/php/8.3/fpm/php.ini sudo sed -i "s@max_input_time.*@max_input_time = 300@" /etc/php/8.3/fpm/php.ini sudo systemctl restart php8.3-fpm
- создайте новый каталог public внутри каталога userside (если у вас установлено в другом месте, отредактируйте команду перед выполнением):
sudo mkdir -p /var/www/userside/public
- В настройке NGINX-сервера (/etc/nginx/conf.d/userside.conf) измените пути к корневому каталогу. Строку:
root /var/www/userside/userside3;
Замените на:
root /var/www/userside/public;
- Там же измените
location /
целиком на следующий:
location / { try_files $uri $uri/ /index.php$is_args$args; }
- Там же для
location ~ \.php$
измените значение для fastcgi_pass с:
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
на
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
и перечитайте конфигурацию nginx:
sudo nginx -s reload
- Для websocket-пользователя (websock-user) брокера RabbitMQ необходимо изменить разрешения следующим образом:
sudo rabbitmqctl set_permissions -p "/" "websock-user" "^erp-stomp:id-.*" "" "^erp-stomp:id-.*"
Если имя вашего websocket-пользователя отличается от websock-user, то укажите его вместо websock-user в приведенных выше командах.
- Обратите внимание, что при вызове команды
php
из командной строки, теперь будет вызываться php8.3, так как это последняя установленная версия. Если вы где-либо до сих пор используете php8.1, то вам нужно изменить вызов php в этих местах либо изменить альтернативную команду php, чтобы она запускала нужную вам версию.
- USERSIDE 3.19 требует Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "Status of Python versions". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать. Если у вас на хосте неподдерживаемая версия ("end-of-life"), то нужно обязательно установить дополнительно более свежую версию Python.
- С помощью автоматического инсталлятора выполните обновление:
sudo -u www-data php userside_install.phar install
- Следующее действие нужно выполнять только если вы обновили Python. Если не обновляли, можно не выполнять:
cd /var/www/userside/microservice/poller sudo rm -rf venv sudo python3.11 -m venv venv
- Необходимо обновить (установить) зависимости для поллера:
cd /var/www/userside/microservice/poller sudo venv/bin/pip install --upgrade pip sudo venv/bin/pip install -U -r requirements.txt
- Переработан низкоуровневый опрос оборудования (PON, TDR).
- Система двух SNMP-community заменена на один SNMP-community. Этим одним SNMP-community будет то, которое было указано в поле rw-community. Если поле rw-community было пустое - то будет использовано значение поля ro-community
- Не забудьте обновить все модули на их свежие версии
- Если вы используете модуль usm_pon - перенастройте в системном cron его запуск на нужную частоту в зависимости от количества у вас OLT. Теперь модуль опрашивает только одно устройство за запуск (ранее опрашивались все устройства одновременно без возможности смягчения нагрузки и пропуска ненужных устройств). Устройства будут опрашиваться по очереди. При каждом запуске на опрос будет подаваться следующее устройство у которого включен такой опрос.
- Для разных типов задач теперь можно настраивать отдельные шаблоны по уведомлениям. Проверьте в ваших существующих шаблонах корректность миграций.
Список изменений: просмотреть
Проведение обновления: инструкция