Alex Keda писал(а):Источник цитаты так-то, в прошлом году, я на каждый коммит в релиз изменения заливал, когда активно фронт пилился
а версию не менял
Т.е. всё-таки биллинг при обновлении тянет текущую версию из ветки master в git. Просто делает это не средствами git, а своими методами. Правильно понял?
Просто, будучи авторизованным как админ перед обновлением файлов, открыть
https://bill.example.com/PatchesТак работает. Я вчера весь день обновлял так на разные версии. Текущая у меня 2.6.16. Пробовал и пошагово обновиться, и сразу до 2.7.0. Пока правда не добрался до победного. Там ещё предстоит написать патчи для миграции тарифов vps и хостинга. На vps у меня много индивидуальных, а на хостинге вообще 500 тарифов с шагом лимита в 1 веб-домен.
Alex Keda писал(а):Источник цитаты и смысл непонятен... если у вас есть парвки - присылайте, решаемо в общем-то
1. удобнее будет делиться правками, если сам их начну с git загонять, а не на коленке пилить
2. вот мне нужно например подправить патч обновления для миграции тарифов. Я его отдельной веткой на тестовом окружении написал, закоммитил, слил с мастером, обновил биллинг из своей ветки мастер. Тоже удобно. Если код пригоден для остальных, прислал пулл реквест Вам.
3. ну и некоторые моменты я только у себя переделал, которые другим скорее всего не интересны. Чуть переписал core/load.php . Заменил там eval на requere и ещё обернул в vqmod . Всякие правки в веб интерфейсе типа убрать лишние кнопки у пользователей чтоб не путались делал там. Местами есть ощущение, что просто закоммитить что-то в git было бы правильней.
4. Система переопределения классов в биллинге конечно работает. Я чуть переделывал под себя логику заведения пользователей в ispmanager (другим это точно не понадобится). Но вот переносить потом обновления класса ispmanager приходится руками. Мерджить через git это было бы удобнее.
Alex Keda писал(а):Источник цитаты на ёлку влезть и не ободраться - очень тяжело будет =)
Есть надежда, что урон от ободраться будет меньше чем от рутины ручных правок при обновлениях. )
Alex Keda писал(а):Источник цитаты на какой версии биллинга? я обновлял шифрование недавно совсем
Там не от версии биллинга зависит, а от версии openssl (у меня в ubuntu 22.04 она такая OpenSSL 3.0.2 15).
Ловил ошибку после обновления до 2.6.18 в Crypt.php
Код: Выделить всё
if(!$String = @OpenSSL_Decrypt($String,'des-ecb',$Key,OPENSSL_RAW_DATA | OPENSSL_NO_PADDING)){
Debug(print_r($String));
return ERROR | @Trigger_Error('[Crypt_Decode]: не удалось дешифровать данные');
}Функция декриптования возвращала false
Отловил причины вот так:
Код: Выделить всё
while ($msg = openssl_error_string()) {
echo "OpenSSL Error: " . $msg;
}Сейчас текстов ошибок под рукой нет. Скармливал их дипсику. Причины оказалось две:
1. openssl 3.0 не поддерживает по умолчанию старые алгоритмы шифрования. Нужно включать поддержку legacy алгоритмов. Лучше делать отдельны конфиг openssl для php. Если включить легаси глобально, могут поломаться другие сервисы типа nginx, dovecot и т.п.
2. openssl 3.0 более строг к длине ключа. Для des-ecb он должен быть 8 бит. У меня строка длиннее. Укоротил до 8 символов, стало работать. Пока ещё предстоит дальше разобраться, т.к. при смене алгоритма на aes ожидаю, что могут быть тоже ньюансы с openssl 3.0 в плане длине ключа. Скорее всего верну длинный ключ и добавлю в старые методы обрезание его до 8 символов.
[quote="Alex Keda"][post]9723[/post] так-то, в прошлом году, я на каждый коммит в релиз изменения заливал, когда активно фронт пилился
а версию не менял[/quote]
Т.е. всё-таки биллинг при обновлении тянет текущую версию из ветки master в git. Просто делает это не средствами git, а своими методами. Правильно понял?
[quote="Alex Keda"][post]9723[/post] а патчи как накатывать?[/quote]
Просто, будучи авторизованным как админ перед обновлением файлов, открыть https://bill.example.com/Patches
Так работает. Я вчера весь день обновлял так на разные версии. Текущая у меня 2.6.16. Пробовал и пошагово обновиться, и сразу до 2.7.0. Пока правда не добрался до победного. Там ещё предстоит написать патчи для миграции тарифов vps и хостинга. На vps у меня много индивидуальных, а на хостинге вообще 500 тарифов с шагом лимита в 1 веб-домен.
[quote="Alex Keda"][post]9723[/post] и смысл непонятен... если у вас есть парвки - присылайте, решаемо в общем-то[/quote]
1. удобнее будет делиться правками, если сам их начну с git загонять, а не на коленке пилить
2. вот мне нужно например подправить патч обновления для миграции тарифов. Я его отдельной веткой на тестовом окружении написал, закоммитил, слил с мастером, обновил биллинг из своей ветки мастер. Тоже удобно. Если код пригоден для остальных, прислал пулл реквест Вам.
3. ну и некоторые моменты я только у себя переделал, которые другим скорее всего не интересны. Чуть переписал core/load.php . Заменил там eval на requere и ещё обернул в vqmod . Всякие правки в веб интерфейсе типа убрать лишние кнопки у пользователей чтоб не путались делал там. Местами есть ощущение, что просто закоммитить что-то в git было бы правильней.
4. Система переопределения классов в биллинге конечно работает. Я чуть переделывал под себя логику заведения пользователей в ispmanager (другим это точно не понадобится). Но вот переносить потом обновления класса ispmanager приходится руками. Мерджить через git это было бы удобнее.
[quote="Alex Keda"][post]9723[/post] на ёлку влезть и не ободраться - очень тяжело будет =)[/quote]
Есть надежда, что урон от ободраться будет меньше чем от рутины ручных правок при обновлениях. )
[quote="Alex Keda"][post]9723[/post] на какой версии биллинга? я обновлял шифрование недавно совсем[/quote]
Там не от версии биллинга зависит, а от версии openssl (у меня в ubuntu 22.04 она такая OpenSSL 3.0.2 15).
Ловил ошибку после обновления до 2.6.18 в Crypt.php
[code] if(!$String = @OpenSSL_Decrypt($String,'des-ecb',$Key,OPENSSL_RAW_DATA | OPENSSL_NO_PADDING)){
Debug(print_r($String));
return ERROR | @Trigger_Error('[Crypt_Decode]: не удалось дешифровать данные');
}[/code]
Функция декриптования возвращала false
Отловил причины вот так:
[code] while ($msg = openssl_error_string()) {
echo "OpenSSL Error: " . $msg;
}[/code]
Сейчас текстов ошибок под рукой нет. Скармливал их дипсику. Причины оказалось две:
1. openssl 3.0 не поддерживает по умолчанию старые алгоритмы шифрования. Нужно включать поддержку legacy алгоритмов. Лучше делать отдельны конфиг openssl для php. Если включить легаси глобально, могут поломаться другие сервисы типа nginx, dovecot и т.п.
2. openssl 3.0 более строг к длине ключа. Для des-ecb он должен быть 8 бит. У меня строка длиннее. Укоротил до 8 символов, стало работать. Пока ещё предстоит дальше разобраться, т.к. при смене алгоритма на aes ожидаю, что могут быть тоже ньюансы с openssl 3.0 в плане длине ключа. Скорее всего верну длинный ключ и добавлю в старые методы обрезание его до 8 символов.