Обновление 3.19: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
 
(не показано 11 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Upgrade_3.19|en]] | [[Обновление_3.19|ru]]
Версия: '''[[3.19]]'''
Версия: '''[[3.19]]'''


Строка 6: Строка 8:
* В версии 3.19 мы очень много сделали для универсализации и индивидуализации системы. Теперь каждый клиент может отключить неиспользуемые разделы, создать совершенно произвольные разделы и сущности и оперировать ими, а также изменять наименование базовых терминов - таких как "Абоненты"
* В версии 3.19 мы очень много сделали для универсализации и индивидуализации системы. Теперь каждый клиент может отключить неиспользуемые разделы, создать совершенно произвольные разделы и сущности и оперировать ими, а также изменять наименование базовых терминов - таких как "Абоненты"


* Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб.
* У нас появилась "[[Двухфакторная аутентификация (2FA)]]". Не пренебрегайте безопасностью и используйте её.
 
* Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб. Также изменилось имя каталога, который должен быть корневым для web, на стандартное имя public.


* Изменена маршрутизация страниц/ссылок системы
* Изменена маршрутизация страниц/ссылок системы
Строка 19: Строка 23:
** "Интерфейс технической поддержки". В версии 3.20 раздел будет удалён
** "Интерфейс технической поддержки". В версии 3.20 раздел будет удалён


* [[Обновление (инсталлятор)|Обновление]]. '''Рекомендую иметь два инстанса системы'''. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.
* [[Обновление]]. '''Рекомендую иметь два инстанса системы'''. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.


* Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside
* Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside
Строка 43: Строка 47:
* Если вы обновляетесь с версии 3.17 и ранее - ознакомьтесь со страницей: [[Обновление 3.18]]
* Если вы обновляетесь с версии 3.17 и ранее - ознакомьтесь со страницей: [[Обновление 3.18]]


* Перенесите/удалите свои файлы, каталоги и прочее из домашней директории userside. Там должны находится только дистрибутивные файлы самой системы. Модули userside также не должны там хранится. Используйте отдельные каталоги для них. Посторонние файлы из домашней директории userside могут быть удалены в процессе обновления
* Перенесите/удалите посторонние файлы, каталоги и прочее из директории userside (/var/www/userside). Там должны находится только дистрибутивные файлы самой системы и файлы, которые система создает во время своей работы. Модули userside (usm) также не должны там хранится. Используйте отдельные каталоги для них (например, /opt/userside). Посторонние файлы из директории userside могут быть удалены в процессе обновления


* Сохраните файлы userside3/main/config/custom_api.php и userside3/main/skins/user_style.css ''(при их наличии)''. Они могут пригодится в случае ошибок обновления и их удаления при этом.
* Сохраните файлы ''(при их наличии)''
userside3/main/config/custom_api.php  
userside3/main/skins/user_style.css
userside3/main/js/user_script.js
 
Они могут пригодится в случае ошибок обновления и их удаления при этом. Если вы использовали собственные значки для типов сооружений связи и самостоятельно их загружали в какой-то каталог, что доступен из веб - то также их сохраните.


* Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб.
* Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб.


* Версия 3.19 требует PHP версии 8.3, но также будет работать и на 8.1. Однако, мы рекомендуем перейти на 8.3. Вы можете установить все необходимые пакеты дополнительно к уже существующей иной версии PHP. Если используете LDAP, то установите также php8.3-ldap. Если используете TurboSMS, то установите php8.3-soap.
* Версия 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}
  sudo apt install -y php8.3-{fpm,cli,common,curl,intl,mbstring,opcache,pgsql,readline,xml,zip,snmp,gd}


Строка 70: Строка 79:
</pre>
</pre>


* В NGINX измените используемую версию PHP для обновляемой копии USERSIDE. Если вы следовали инструкциям по установке системы, то в файле /etc/nginx/conf.d/default.conf или userside.conf или в другом, который вы использовали для настройки userside, измените строку:
* создайте новый каталог 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


* В NGINX измените основной <code>location /</code> целиком на следующий:
* Для websocket-пользователя (websock-user) брокера RabbitMQ необходимо изменить разрешения следующим образом:
<pre>
<pre>
location / {
sudo rabbitmqctl set_permissions -p "/" "websock-user" "^erp-stomp:id-.*" "" "^erp-stomp:id-.*"
    try_files $uri $uri/ /index.php$is_args$args;
}
</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 версии 3.9 или новее. Если ваша версия ниже 3.9, то вам [[Python-update|обязательно нужно будет установить более новую версию]], прежде чем продолжить. Желательно испльзовать 3.11.7.
* 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


Строка 117: Строка 144:
'''Список изменений:''' [[3.19|просмотреть]]
'''Список изменений:''' [[3.19|просмотреть]]


'''Проведение обновления:''' [[Обновление (инсталлятор)|инструкция]]
'''Проведение обновления:''' [[Обновление|инструкция]]

Текущая версия от 12:46, 18 октября 2024

en | ru

Версия: 3.19

Требуется версия: 3.10 и выше

Несколько слов от автора

  • В версии 3.19 мы очень много сделали для универсализации и индивидуализации системы. Теперь каждый клиент может отключить неиспользуемые разделы, создать совершенно произвольные разделы и сущности и оперировать ими, а также изменять наименование базовых терминов - таких как "Абоненты"
  • Большинство файлов из веб-директории userside с целью безопасности изменили своё местоположение на несколько уровней выше и теперь недоступны через веб. Также изменилось имя каталога, который должен быть корневым для web, на стандартное имя public.
  • Изменена маршрутизация страниц/ссылок системы
Было: /?core_section=customer&action=show&id=1234
Стало: /customer/1234
  • В версии 3.19 объявляются устаревшими разделы:
    • "Схема размещения строительных длин и смонтированных муфт для трасс кабельных линий". В версии 3.20 раздел будет удалён
    • "Неизвестные MAC-адреса". В версии 3.20 раздел будет удалён
    • "Интерфейс технической поддержки". В версии 3.20 раздел будет удалён
  • Обновление. Рекомендую иметь два инстанса системы. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.

Особенности в проведении обновления

При обновлении в 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. Теперь модуль опрашивает только одно устройство за запуск (ранее опрашивались все устройства одновременно без возможности смягчения нагрузки и пропуска ненужных устройств). Устройства будут опрашиваться по очереди. При каждом запуске на опрос будет подаваться следующее устройство у которого включен такой опрос.
  • Для разных типов задач теперь можно настраивать отдельные шаблоны по уведомлениям. Проверьте в ваших существующих шаблонах корректность миграций.

Список изменений: просмотреть

Проведение обновления: инструкция