Хак Скрипт нативного обновление модулей

  • Автор темы Автор темы Amaini
  • Дата начала Дата начала

Amaini

Любитель Лапши
Команда форума
Moderator
Разрушитель (V)
Сообщения
404
Реакции
301
Баллы
20 400
Amaini разместил(а) новый ресурс:

Скрипт нативного обновление модулей - Скрипт нативного обновление модулей

Что делает скрипт?
Он позволяет скачать модули и дельта обновления к ним используя ключ битрикса.
Все обновления скачиваются в папку /bitrix/updates в особый формат ".upd"
Так как модуль и обновления это всего лишь файл его становиться легко переносить, передавать, делиться.
Но самое главное, что установка обновлений в скрипте происходит ТОЧНО так же как и в битриксе при использовании АКТИВНОГО КЛЮЧА.

Теперь все просто, достаточно нажать на кнопку установить напротив свеженького дельта...

Посмотреть страницу этого ресурса...
 
проблема не в скрипте а самом битриксе /web/crm/bitrix/modules/main/lib/session/legacy/healerearlysessionstart.php:21 ошибка модуле main самого ядра, просто Битрикс через опу перешел на 8.1 а вы хотите что он заработал нормально на 8.2 - и да разница очень существенная с точки зрения типизации передаваемых типов переменных в функциях.

В файле bitrix/modules/main/lib/session/legacy/healerearlysessionstart.php закомментировал 21ю строчку
// trigger_error($exception->getMessage(), E_USER_DEPRECATED);

Скрипт сработал.
Полагаю, тут проблема не в версии php, потому что на всех php не было сработки, а в версии модуля main, который патчит скрипт.
Скрипт пропатчил 2 файла:
/bitrix/modules/main/classes/general/update_client.php
/bitrix/modules/main/classes/general/update_client_partner.php

В данный момент версия модуля main 23.300.300
Если его обновить на более новый или может более новый, то скрипт сработает. Над проверять.

Но тут у меня возникла другая ошибка "Тип кодирования вашей копии не корректен (2)".
Думаю, что-то не так с лицензией, потому что переходил с лицензии на демо, потом обратно на лиценцию.
Буду копать дальше. Буду рад, если подскажите в какую сторону копать
 
Докопался до сути

PHP:
[ErrorException] E_USER_DEPRECATED
Attention! The session_start function was called before the Bitrix Kernel was started. The session will be closed to avoid errors. It's strongly recommended to avoid session usage before initializing the Bitrix Kernel. (0)
/web/crm/bitrix/modules/main/lib/session/legacy/healerearlysessionstart.php:21

Ошибка была связана не с версией PHP, а с тем, что у меня были прописаны дополнительные настройки в .settings_extra.php для вывода отладочной информации
PHP:
  'exception_handling' => array (
    'value' => array (
      'debug' => true,
      'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
      'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
      'ignore_silence' => false,
      'assertion_throws_exception' => true,
      'assertion_error_type' => 256,
      'log' => array (
        'settings' => array (
          'file' => 'bitrix/error.log',
          'log_size' => 1000000,
        )
      )
    ),
    'readonly' => false,
  ),

И при этом коде вылазила ошибка. Закомментировал и get_update заработал
И кстати на php 8.2 тоже

Осталось выяснить, почему при вводе лицензионного ключа в скрипт выдает ошибку "Тип кодирования вашей копии не корректен (2)"
 
Друзья, подскажите в чем может быть причина.
- установил локально демку битрикса
- поставил последний скрипт из этой ветки
- ввожу ключ - вижу модули для скачивания
Screenshot_2.png
- скачиваю, устанавливаю - в итоге у меня модули в Демо режиме!
Что делаю не так? Может из-за того что ключ NFR?
 
После установки всех обновлений ядра Битрикс, скрипт перестал запускаться. Выдает 500 ошибку, а в логах появляется 2 ошибки. Как исправить ?

[Fri Dec 22 22:36:40.307264 2023] [fcgid:warn] [pid 15797] [client мой айпи:63356] mod_fcgid: stderr: PHP Fatal error: Cannot declare class CUpdateSystem, because the name is already in use in /var/www/24b87960/data/www/мой сайт/bitrix/modules/main/classes/general/update_class.php on line 13
[Fri Dec 22 22:36:40.307286 2023] [fcgid:warn] [pid 15797] [client мой айпи:63356] mod_fcgid: stderr: PHP Fatal error: ob_start(): Cannot use output buffering in output buffering display handlers in /var/www/24b87960/data/www/мой сайт/bitrix/components/bitrix/ui.toolbar/class.php on line 53
 

Вложения

  • Opera Снимок_2023-12-22_225747.png
    Opera Снимок_2023-12-22_225747.png
    14,1 КБ · Просмотры: 2
После установки всех обновлений ядра Битрикс, скрипт перестал запускаться. Выдает 500 ошибку, а в логах появляется 2 ошибки. Как исправить ?

[Fri Dec 22 22:36:40.307264 2023] [fcgid:warn] [pid 15797] [client мой айпи:63356] mod_fcgid: stderr: PHP Fatal error: Cannot declare class CUpdateSystem, because the name is already in use in /var/www/24b87960/data/www/мой сайт/bitrix/modules/main/classes/general/update_class.php on line 13
[Fri Dec 22 22:36:40.307286 2023] [fcgid:warn] [pid 15797] [client мой айпи:63356] mod_fcgid: stderr: PHP Fatal error: ob_start(): Cannot use output buffering in output buffering display handlers in /var/www/24b87960/data/www/мой сайт/bitrix/components/bitrix/ui.toolbar/class.php on line 53
нужно будет исправить теперь нельзя делать переопределение системного класса.
 
нужно будет исправить теперь нельзя делать переопределение системного класса.
Будем ждать, потому что скрипт не работает, а модули нужны. Причем очень странно все, при переустановке сервера на хостинге - скрипт отрабатывает, далее через примерно неделю - начинает выдавать 500 ошибку как я писал, причем ни обновлений, ни изменений в php не производилось. На VPS все работает как и работало, может это какие-то лимиты на php или скрипты у хостера ? Просто первый раз с таким сталкиваюсь, не пойму что в поддержку написать им или лучше не стоит ?)

P.S. Начал проверять ошибки, влияние модулей и приложений, оказывается Веб-мессенджер (im) влияет на скрипт, при его удалении все заводится, это касается редакции Битрикс24 (ИМ+CRM), потратил на все месяц работы и два переноса сервера, а оказалось вот оно что...Если возможно как-то поправить скрипт, чтобы все работало без удаления модуля мессенджера, потому как он важен для CRM, через него выводится чат и коммуникация сотрудников в целом.

Пока лайфхак для данной редакции такой, удалить модуль мессенджера - поставить нужные модули с форума через скрипт - установить мессенджер обратно - профит
 
Последнее редактирование:
Что произошло, все публичные репозитории скрипта были заблокированны.
Стабильно работающая версия под PHP8 была только от @maxisoft

Прошу выложить версию как есть, поместим ее в шапку
1704680994032.png
Либо пользуемся решенеим колег от BXPROJECT
 
Последнее редактирование:
Что произошло, все публичные репозитории скрипта были заблокированны.
Стабильно работающая версия под PHP8 была только от @maxisoft

Прошу выложить версию как есть, поместим ее в шапку
Посмотреть вложение 7583
Либо пользуемся решенеим колег от BXPROJECT
Скрытое содержимое. Вам нужно войти или зарегистрироваться.
 
А устанавливая решения таким способом и прописывая их в файл not_mine.php стучалки в самих решениях ведь никуда не деваются и данные как отправлялись так и отправляются? Правильно понимаю, что not_mine.php нужен просто для скрытия решения от инсталятора битрикс, чтобы не слетала возможность обновления ядра?
 
А устанавливая решения таким способом и прописывая их в файл not_mine.php стучалки в самих решениях ведь никуда не деваются и данные как отправлялись так и отправляются? Правильно понимаю, что not_mine.php нужен просто для скрытия решения от инсталятора битрикс, чтобы не слетала возможность обновления ядра?
Здравствуйте, все правильно поняли. В каждом решении стучалки надо блокировать отдельно.
 
А устанавливая решения таким способом и прописывая их в файл not_mine.php стучалки в самих решениях ведь никуда не деваются и данные как отправлялись так и отправляются? Правильно понимаю, что not_mine.php нужен просто для скрытия решения от инсталятора битрикс, чтобы не слетала возможность обновления ядра?
стучалки как были так и остаются
 
Назад
Верх