Come potresti aver notato, c'è un avviso sul pannello di controllo del tuo Bitrix24 On-Premise:
Cosa significa questo?
La versione PHP 7.x è deprecata e non è più supportata. Non vengono rilasciate correzioni di bug funzionali o di sicurezza in nessuna delle versioni di PHP 7. Pertanto, non è consigliabile utilizzare alcuna versione di PHP inferiore alla 8.1.
Non è possibile installare alcun aggiornamento della versione On-Premise di Bitrix24 per ottenere nuove funzionalità, migliorare la sicurezza e le prestazioni del tuo sito Web finché non aggiorni la tua versione PHP almeno alla versione 8.1 nel tuo ambiente server virtuale.
Come aggiornare la versione PHP?
Bisogna pianificare un aggiornamento della tua versione PHP almeno alla versione 8.1 il prima possibile.
L'aggiornamento viene effettuato gradualmente. Contatta l'amministratore di sistema o il fornitore di servizi di hosting per assistenza.
-
Assicurati di aver eseguito il backup del tuo sito web. È possibile utilizzare lo strumento di backup integrato o creare un backup a livello di server.
-
Installa tutti gli aggiornamenti disponibili, fai clic su Control panel > Marketplace > Platform Update.
-
Aggiorna tutte le soluzioni di terze parti dal Marketplace alle ultime versioni disponibili nella sezione Control panel > Marketplace > Solution Update.
-
Aggiorna la tua versione PHP almeno alla versione 8.0 o alla versione consigliata 8.1
Se utilizzi BitrixVM, è possibile aggiornare PHP manualmente tramite la voce di menu: 1. Manage servers in the pool - 8. Update PHP and MySQL. Leggi di più in un corso singolo. - Controlla gli aggiornamenti disponibili della piattaforma e delle soluzioni Marketplace e assicurati di installarli tutti.
Cosa fare in caso di errori durante l'aggiornamento di PHP alla versione 8.x?
-
Se ci sono errori nel funzionamento dei moduli Bitrix24 standard On-Premise, si prega di contattare Supporto di Bitrix24.
Inoltre, se i moduli del Market contengono
bitrix.*
nei loro nomi, contatta il supporto di Bitrix24, ad esempio:bitrix.eshop bitrix.sitecommunity bitrix.sitecorporate bitrix.siteinfoportal bitrix.sitepersonal bitrix.learningtemplates
-
In caso di errori nel funzionamento dei moduli di terze parti installati dal Market, si prega di contattare lo sviluppatore del modulo. Puoi trovare i tuoi contatti nella scheda Supporto.
Errori comuni e loro soluzioni
Possibili cause di errori dopo l'aggiornamento a PHP 8.x:
- Non hai installato gli aggiornamenti disponibili nel Control panel > Marketplace > Platform Update prima di eseguire l'aggiornamento a PHP 8.x.
- Non hai installato gli aggiornamenti disponibili per le soluzioni di terze parti dal Market nel Control panel > Marketplace > Solution Update prima di eseguire l'aggiornamento a PHP 8.x.
- Lo sviluppatore non ha aggiornato il modulo per supportare la versione 8 di PHP.
Come risolvere i problemi comuni dopo l'aggiornamento a PHP 8.x?
- Passa alla versione precedente di PHP 7.x, installa tutti gli aggiornamenti consigliati e poi esegui nuovamente l'aggiornamento a PHP 8.x.
- Se l'installazione degli aggiornamenti non ti aiuta a risolvere i problemi, contatta lo sviluppatore del modulo – segui le istruzioni nella sezione Cosa fare in caso di errori?.
- Disabilita temporaneamente il modulo che contiene errori rimuovendolo dalla directory
/bitrix/modules
. - Rimuovi la soluzione di terze parti che contiene errori.
Si prega di notare che queste raccomandazioni sono fornite per risolvere i problemi nel funzionamento di un modulo specifico. Ogni bug viene esaminato individualmente dallo sviluppatore.
[Ux11] Error in the "#MODULE#" module description. Cannot connect the update server. [Ux11] Error in the "#MODULE#" module description.
Questo errore può apparire dopo l'aggiornamento della versione PHP a 8.1 o superiore. In questo caso, il sito Web funziona correttamente, ma non è possibile installare o aggiornare qualsiasi altra soluzione fino a quando il problema non viene risolto.
Soluzione:
Per correggere l'errore, apri il file /bitrix/modules/<module_name>/install/index.php
e sostituisci il codice:
function <module_name>()con un altro codice:
function __construct()
The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php.
Soluzione:
Connettiti a FTP/SFTP o accedi al pannello di controllo dell'hosting e abilita l'output di errore nel file /bitrix/.settings.php
:
'debug' => true,
Successivamente, il testo del messaggio di errore verrà visualizzato sul sito Web.
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
In questo esempio, l'errore viene restituito dal metodo di terze parti CSuperModRep::checkBack()
della soluzione super.mod.
Per correggere l'errore, nel codice checkBack()
è necessario dichiarare la funzione statica::
function checkBack()sostituire con:
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
Questo errore può apparire dopo l'aggiornamento di PHP alla versione 8.x se non sono stati installati gli aggiornamenti della piattaforma disponibili quando utilizzi la versione PHP 7.x.
Soluzione:
Questo bug è stato corretto nell'aggiornamento del modulo principale main 22.100.0
.
Passa alla versione precedente di PHP 7.x, installa tutti gli aggiornamenti consigliati e poi esegui nuovamente l'aggiornamento a PHP 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)...
Questo errore può apparire dopo aver aggiornato PHP alla versione 8, ma non è ovvio.
[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
Il testo del messaggio di errore non mostra la directory del modulo, ma questo metodo COMP\BXE\EventHandlers::AdminContextMenuShow()
appartiene al modulo di terze parti.
Soluzione:
Per correggere l'errore, nel codice AdminContextMenuShow()
è necessario dichiarare la funzione statica:
function AdminContextMenuShow()sostituire con:
public static function AdminContextMenuShow()
Una schermata vuota dopo l'aggiornamento a PHP 8.x (nella versione PHP 7.4 funziona tutto)
Questo errore può apparire a causa delle impostazioni dei parametri short_open_tag = Off
.
Soluzione:
- Nel file di configurazione PHP, imposta il valore
short_open_tag = On
. - Controlla i registri del server Web per eventuali errori e correggerli.
- Inoltre, è possibile controllare gli errori sulla pagina con la schermata vuota: Fare clic con il tasto destro sulla pagina e seleziona Visualizza il codice sorgente della pagina, scorri verso il basso e verifica se ci sono errori.