W interfejsie administracyjnym Bitrix24 On-Premise możesz otrzymać następujące powiadomienie:
Co oznacza ten błąd
Wersja PHP 7.x została uznana za przestarzałą i nie jest już obsługiwana. Poprawki błędów funkcjonalnych i bezpieczeństwa również nie są już wydawane.
Nie będziesz mógł instalować aktualizacji dla wersji Bitrix24 On-Premise w celu naprawienia błędów i uzyskania nowych funkcji, dopóki nie zaktualizujesz PHP do wersji 8.1 w swoim środowisku serwerowym.
Co robić
Zaplanuj jak najszybszą aktualizację PHP do wersji 8.1.
Aktualizacja wersji PHP musi odbywać się etapami. W tym celu skontaktuj się z administratorem systemu lub pomocą techniczną swojej usługi hostingowej.
- Utwórz kopię zapasową instalacji. Może to być kopia zapasowa usług produktu lub pełna kopia zapasowa serwera, na przykład kopia zapasowa VMBitrix Virtual Appliance.
- Zaktualizuj jądro i wszystkie moduły produktu do najnowszych dostępnych wersji w Settings> Marketplace> Platform Update.
- Zaktualizuj wszystkie rozwiązania innych firm z Marketplace do najnowszych dostępnych wersji w Settings> Marketplace> Solution Update.
- Zaktualizuj PHP do wersji 8.1 na swoim serwerze.
- Sprawdź ponownie wszystkie wprowadzone ustawienia i zainstaluj wszystkie dostępne aktualizacje platformy i rozwiązań Marketplace.
Kto może pomóc, jeśli wystąpią błędy po aktualizacji do PHP 8.x
- Jeśli po aktualizacji PHP pojawią się jakiekolwiek błędy w standardowych modułach Bitrix24 On-Premise, skontaktuj się ze Wsparciem24.
- Skontaktuj się również ze Wsparciem24, jeśli w modułach Marketplace pojawią się błędy, które zawierają
bitrix.*
w nazwach.
bitrix.eshop bitrix.sitecommunity bitrix.sitecorporate bitrix.siteinfoportal bitrix.sitepersonal bitrix.learningtemplates
Przykłady typowych błędów i ich rozwiązania
Możliwe przyczyny błędów po aktualizacji do PHP 8.x- Przed aktualizacją do PHP 8.х jądro systemu i wszystkie moduły produktu nie zostały zaktualizowane do najnowszych dostępnych wersji w sekcji Settings> Marketplace> Platform Update.
- Przed przejściem do wersji PHP 8.х rozwiązania innych firm (mają kropkę w nazwie) nie zostały zaktualizowane w sekcji Settings> Marketplace> Solution Update.
- Deweloper nie zaktualizował modułu do obsługi PHP 8.
Podstawowe kroki rozwiązywania problemów po aktualizacji PHP do wersji 8.x
- Wróć do poprzedniej wersji PHP 7.x, kiedy wszystko działało, zaktualizuj komponenty systemu i moduły innych firm, a następnie ponownie zaktualizuj PHP do wersji 8.x.
- Jeśli poprzednie kroki nie naprawiły błędów, skontaktuj się z twórcą modułu - patrz sekcję Kto może pomóc, jeśli wystąpią błędy.
- Tymczasowo wyłącz moduł z błędem, przenosząc go z katalogu
/bitrix/modules
. - Usuń rozwiązanie innej firmy z błędem.
[Ux11] Błąd w opisie modułu "name.module". Brak połączenia z serwerem aktualizacji. [Ux11] Błąd w opisie modułu "name.module". (Cannot connect the update server)
Błąd może pojawić się po aktualizacji wersji PHP do wersji 8.1 i wyższej. Witryna nadal działa, ale nie można instalować ani aktualizować innych rozwiązań, dopóki błąd występuje.
Rozwiązanie problemu:
Aby naprawić błąd, wykonaj następujące czynności: w pliku /bitrix/modules/<nazwa modułu>/install/index.php
zamień kod:
function <nazwa.moduł>()zamień na:
function __construct()
Uruchamianie skryptu się nie powiodło (The script encountered an error and will be aborted). Włączyć szczegółowe komunikaty o błędach można w pliku ustawień .settings.php.
Rozwiązanie problemu:
Połącz się przez FTP/SFTP lub uzyskaj dostęp do panelu hostingu i włącz raportowanie błędów w pliku /bitrix/.settings.php
:
'debug' => true,
Następnie tekst błędu zostanie wyświetlony na stronie:
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
Przykład pokazuje, że błąd jest spowodowany przez metodę innej firmy CSuperModRep::checkBack()
rozwiązania super.mod.
Aby naprawić błąd, wykonaj następujące czynności: w kodzie checkBack()
musisz poprawnie zadeklarować funkcję statyczną:
function checkBack()zamień na:
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
Ten błąd może pojawić się po aktualizacji PHP do wersji 8.x, jeśli wszystkie dostępne aktualizacje platformy nie zostały zainstalowane w wersji PHP 7.x.
Rozwiązanie problemu:
Ten błąd został naprawiony w aktualizacji modułu głównego main 22.100.0
.
Dlatego cofnij wersję PHP do 7.x, zaktualizuj produkt i moduły do najnowszej dostępnej wersji. Dopiero potem zaktualizuj PHP do wersji 8.x.
[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)...
Ten błąd może pojawić się po aktualizacji wersji PHP do wersji 8, ale nie jest już tak oczywisty:
[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
Tekst błędu nie ujawnia od razu ścieżki modułu, ale ta metoda COMP\BXE\EventHandlers::AdminContextMenuShow()
należy do modułu innej firmy.
Rozwiązanie problemu:
Aby naprawić błąd, wykonaj następujące czynności: w kodzie AdminContextMenuShow()
poprawnie zadeklaruj funkcję statyczną:
function AdminContextMenuShow()zamień na:
public static function AdminContextMenuShow()
Biały ekran po aktualizacji wersji PHP do 8.x, ale wszystko działa na PHP 7.4
Ten błąd może się pojawić, ponieważ parametr short_open_tag = Off
jest ustawiony w ustawieniach PHP.
Rozwiązanie problemu:
- Musisz ustawić w pliku konfiguracyjnym PHP:
short_open_tag = On
. - Sprawdź pliki dziennika serwera WWW i popraw błędy.
- Możesz również wyświetlić błędy na stronie internetowej z białym ekranem: kliknij prawym przyciskiem myszy i wybierz Wyświetl źródło strony. Przewiń stronę w dół i sprawdź, czy nie ma błędów.