Битрикс пишет ошибку в разделе обновлений: Нельзя не обновить, не произвести регистрацию продукта. |
|
Тема UP |
|
Проблема не решена. Никто не сталкивался? |
|
Вам нужно проверить чтобы класс модуля, находящийся в install/index.php, возвращал версию про обращении $module_example_class->MODULE_VERSION. У меня была проблема в том, что версия возвращалась только для первого экземпляра на странице (использовался include_once(‘version.php’) для файла версии). |
|
Пользователь 13856 Постоянный посетитель Сообщений: 123 |
#6 0 17.06.2011 11:30:28 Аналогичная проблема. Переменная должна возвращаться правильно:
Техдиректор — оперативная служба технической поддержки сайтов на Битриксе |
||
Пользователь 45913 Заглянувший Сообщений: 12 |
#7 0 24.06.2011 16:56:10 Проблема решается следующим образом:
Содержимое файла version.php:
|
||||
Нет, проблема решается после присваивания модулю своего именного пространства. То бишь: my_namespace.modulename . Тогда никаких проблем не будет. |
|
ошибка с Ux11 связана с тем, что система обновлений не может получить версию модуля. Причем, ошибка может быть в 2х местах — на странице обычных обновлений и на странице партнерских обновлений. В первом случае необходим корректный файл install/version.php, во втором, чтобы название класса модуля совпадало с названием самого модуля и в конструкторе класса были определены свойства класса MODULE_VERSION и MODULE_VERSION_DATE Руководитель службы технической поддержки |
|
Пользователь 6749 Заглянувший Сообщений: 7 |
#10 0 06.12.2011 01:04:42 Диалог с саппортом на эту тему ниже. По-моему исчерпывающее обсуждение.
|
||||||
При обновлении PHP до 8 версии в работе сторонних модулей 1С-Битрикс могут возникнуть ряд ошибок. Рассмотрим как их исправить:
Ошибка №1
[Ux11] Ошибка описания модуля "название.модуля".
Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля "название.модуля"
При возникновении данной ошибки нужно либо обновить модуль до последней версии, либо в файле /bitrix/modules/название.модуля/install/index.php заменить название функции function название_модуля() на function __construct() После этого ошибка должна уйти
Ошибка №2
Для исправления ошибки:
call_user_func_array(): Argument #1 ($function) must be a valid callback, non-static method НазваниеМодуля::МетодКласса() cannot be called statically (0)
Необходимо найти код данного модуля по следующему пути (/bitrix/modules/название.модуля), определиться с классом в котором возникает данная ошибка и к данному классу приписать служебное слово static, примерно так:
static function МетодКласса()
Чтобы [Ux11] Ошибка описания модуля исчезла ,необходимо пробежаться и проверить следующее:
1)У Вас есть файл /install/version.php с содержимым вида:
<?
$arModuleVersion = array(
«VERSION» => «11.0.4»,
«VERSION_DATE» => «2011-11-17 14:00:00»
);
?>
2)Папка в которой лежит модуль: vendor.modulename
в /install/index.php:
Class vendor_modulename extends CModule
{
var $MODULE_ID = ‘vendor.modulename’;
…
function vendor_modulename(){ … }
}
А так же в названии класса и в названии функции не должно быть заглавных букв.
3)В конструкторе класса установочного файла при подключении version.php используйте функцию include без суффикса _once, иначе информация о модуле не будет подгружаться в разделе «Обновление решений», что вызовет ошибку с кодом Ux11.
4) нужно удалить директорию .last_version из папки модуля
Если все сделано правильно тогда ошибка [Ux11] Ошибка описания модуля исчезнет
-
2023-02-19 - Оставлено
- Что это?
Битрикс
Битрикс обновление PHP 8 версия обязательна с февраля 2023 года. Битрикс очередной раз повышает требования к настройке Web сервера в связи с безопасностью своих продуктов. Битрикс обновленный до 1С-Битрикс: Управление сайтом 22.500.100 проблем с PHP8 PHP 8.1 не будет при условии что все модули и решение обновлены и имеют обновление до PHP8
Битрикс обновление PHP 8
настоятельно рекомендую использовать «сайт для разработки» и работать с настройкой вашего в отдельном виртуальном или VPS сервере.
При обновлении PHP до 8 версии в работе сторонних модулей 1С-Битрикс могут возникнуть ряд ошибок.
Рассмотрим как исправить сторонние модули Битрикс:
Ошибка №1[Ux11] Ошибка описания модуля "название.модуля".
Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля "название.модуля"
При возникновении данной ошибки нужно либо обновить модуль до последней версии, либо в файле /bitrix/modules/название.модуля/install/index.php заменить название функции function название_модуля() на function __construct() После этого ошибка должна уйти
Ошибка №2
Для исправления ошибки:
call_user_func_array(): Argument #1 ($function) must be a valid callback, non-static method НазваниеМодуля::МетодКласса() cannot be called statically (0)
Необходимо найти код данного модуля по следующему пути (/bitrix/modules/название.модуля), определиться с классом в котором возникает данная ошибка и к данному классу приписать служебное слово static, примерно так:
static function МетодКласса()
После необходимо проверить работу стороннего модуля как в Back-end’e так и Front-end’e
Если модуль платежной системы то стоит отключить его и получить обновленный платежный модуль у разработчика.
Кстати это не решение «костыль» а решение прошлых проблем. динамика сознает нагрузку. статичный метод меньше нагрузку, это можно заметить по индикатору производительности в back-end’e
В административном интерфейсе коробочных версий продуктов «1С-Битрикс» вы могли заметить такое уведомление:
С 01.02.2023 будет ограничена поддержка наших продуктов на PHP версии ниже 8.0. Рекомендуемая версии PHP – 8.1 или выше. Вы используете версию PHP 7.4.33. Пожалуйста, запланируйте обновление PHP или обратитесь в техническую поддержку вашего хостинга.
Почему важно обновить PHP
Версия PHP 7.х объявлена устаревшей и больше не поддерживается, для неё не выпускаются исправления функциональных ошибок и ошибок безопасности. Использование версий PHP ниже 8 крайне не рекомендовано.
Вы не сможете установить обновления коробочных версий продуктов «1С-Битрикс» для исправления ошибок и получения нового функционала, пока не обновите PHP до минимальной версии 8.0 или рекомендованной 8.1 в своем серверном окружении.
Запланируйте обновление PHP до минимальной версии 8.0 или до рекомендуемой PHP 8.1 в самое ближайшее время.
Как обновить PHP
Обновление версии PHP необходимо произвести поэтапно. Для этого обратитесь к вашему системному администратору или в техподдержку вашего хостинга.
-
Обязательно создайте резервную копию вашей установки. Это может быть как резервная копия средствами продукта, так и полностью всего сервера, например виртуальной машины VMBitrix.
-
Обновите ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.
-
Обновите все сторонние решения из Маркетплейса до последних доступных версий в разделе Настройки > Marketplace > Обновление решений.
-
Обновите версию PHP до минимальной 8.0 или рекомендованной 8.1 на своем сервере.
Если вы используете виртуальную машину VMBitrix, то обновить PHP можно через меню VMBitrix: 1. Manage servers in the pool — 8. Update PHP and MySQL. Подробнее читайте в отдельном курсе.
- Еще раз проверьте и установите все доступные обновления платформы и решений из Маркетплейса.
Куда обращаться в случае ошибок при обновлении версии PHP до 8.х
-
Если после обновлений PHP появятся ошибки в работе стандартных модулей продуктов «1С-Битрикс», то обратитесь в Поддержку24.
Также по модулям из Маркетплейса, в названия которых содержатся
bitrix.*
, нужно обращаться в Поддержку24, например:bitrix.eshop bitrix.sitecommunity bitrix.sitecorporate bitrix.siteinfoportal bitrix.sitepersonal bitrix.learningtemplates
-
По ошибкам в сторонних модулях из Маркетплейса обращайтесь к разработчикам модуля, их контакты указаны на странице этого модуля во вкладке «Поддержка».
Примеры частых ошибок и их решения
Возможные причины ошибок после обновления до PHP 8.х:
- До перехода на PHP 8.х не было обновлено ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.
- До перехода на PHP 8.х не были уставлены обновления сторонних решений (они в названии имеют точку) на странице Marketplace > Обновление решений.
- Разработчик не обновил модуль для поддержки PHP 8.
Основные действия по исправлению ошибок после обновления PHP до 8.х:
- Вернуться на предыдущую версию PHP 7.x, когда все работало, обновить компоненты системы и сторонние модули, а затем повторно обновить версию PHP до 8.х.
- Если предыдущие действия не исправили ошибки, то обратиться к разработчику модуля – смотрите раздел выше Куда обращаться в случае ошибок.
- Временно отключить модуль с ошибкой, переместив его из директории
/bitrix/modules
. - Удалить стороннее решение с ошибкой.
Стоить отметить, что в примерах даны лишь решения ошибок для конкретного модуля. Каждая ошибка должна рассматриваться разработчиком индивидуально.
[Ux11] Ошибка описания модуля «name.module». Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля «name.module».
Ошибка может появиться после повышения версии PHP до 8.0 и выше. Сайт при этом работает, но установить или обновить другие решения нельзя, пока сохраняется ошибка.
Решение проблемы:
Исправление в общем случае будет таким: в файле /bitrix/modules/<имя.модуля>/install/index.php
код:
function <имя.модуля>()
заменить на:
function __construct()
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php.
Решение проблемы:
Подключиться по FTP/SFTP или зайти в панель хостинга, включить вывод ошибок в файле /bitrix/.settings.php
:
'debug' => true,
После чего на сайте будет выведен текст ошибки:
Пример ошибки
Non-static method Super\Functions\CSuperModRep::checkBack() cannot be called statically (0) /home/bitrix/modules/super.mod/lib/functions/CSuperModRep.php:52 #0: Super\Functions\CSuperModRep::checkRepActive() /home/bitrix/modules/super.mod/classes/general/CModEvents.php:1621 #1: CModEvents::OnPageStartHandler() /home/bitrix/modules/main/classes/general/module.php:480 #2: ExecuteModuleEventEx(array) /home/bitrix/modules/main/include.php:163 #3: require_once(string) /home/bitrix/modules/main/include/prolog_before.php:14 #4: require_once(string) /home/bitrix/modules/main/include/prolog.php:10 #5: require_once(string) /home/bitrix/header.php:1 #6: require(string) /home/index.php:1
В примере видно, что ошибку отдает сторонний метод CSuperModRep::checkBack()
решения super.mod.
Исправление в общем случае будет таким: в коде checkBack()
нужно правильно объявить статическую функцию:
function checkBack()
заменить на:
public static function checkBack()
PHP Fatal error: $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /www/bitrix/modules/main/tools.php
Данная ошибка может появиться после повышения версии PHP до 8.x в случае, если не были установлены все доступные обновления платформы на версии PHP 7.x.
Решение проблемы:
Эта ошибка была исправлена в обновлении главного модуля main 22.100.0
.
Поэтому необходимо понизить версию PHP до 7.x, произвести обновление продукта и модулей до последней доступной версии. И только потом повысить версию PHP до 8.х.
[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMP\BXE\EventHandlers::AdminContextMenuShow() cannot be called statically (0)…
Эта ошибка может появиться после повышения версии PHP до 8, но уже не очень очевидна:
Пример ошибки
[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMP\BXE\EventHandlers::AdminContextMenuShow() cannot be called statically (0) /var/www//bitrix/modules/main/classes/general/module.php:480 #0: ExecuteModuleEventEx /var/www/bitrix/modules/main/interface/admin_ui_list.php:1983 #1: CAdminUiContextMenu->Show /var/www/bitrix/modules/main/interface/admin_ui_list.php:1168 #2: CAdminUiList->ShowContext /var/www/bitrix/modules/main/interface/admin_ui_list.php:630 #3: CAdminUiList->DisplayFilter /var/www/bitrix/modules/iblock/admin/iblock_element_admin.php:5217 #4: include(string) /var/www/bitrix/admin/cat_product_admin.php:3
Из текста ошибки сразу не узнать директорию модуля, но данный метод COMP\BXE\EventHandlers::AdminContextMenuShow()
принадлежит стороннему модулю.
Решение проблемы:
Исправление в общем случае будет таким: в коде AdminContextMenuShow()
нужно правильно объявить статическую функцию:
function AdminContextMenuShow()
заменить на:
public static function AdminContextMenuShow()
Белый экран после повышения версии PHP до 8.х, а на PHP 7.4 все работает
Такая ошибка может быть из-за того, что в настройках PHP установлен параметр short_open_tag = Off
.
Решение проблемы:
- Нужно задать в конфигурационном файле PHP:
short_open_tag = On
. - Проверить логи веб-сервера на предмет ошибок и устранить их.
- Также можно просмотреть ошибки на странице сайта с белым экраном: нажать правую кнопку мыши и выбрать Просмотр кода страницы, пролистать страницу вниз и проверить имеются ли ошибки на ней.
Спасибо, помогло!
Спасибо
Это не то, что я ищу
Написано очень сложно и непонятно
Есть устаревшая информация
Слишком коротко, мне не хватает информации
Мне не нравится, как это работает