Você deve ter notado tal aviso no painel de controle do seu Bitrix24 On-Premise:
O que significa isso?
A versão do PHP 7.x está agora desatualizada e não é mais suportada. Não haverá correções de bugs funcionais ou de segurança em nenhuma das versões do PHP 7. Portanto, não é recomendado usar qualquer versão do PHP abaixo de 8.
Você não poderá instalar nenhuma atualização da versão Bitrix24 On-Premise para obter novos recursos e corrigir erros até atualizar sua versão do PHP para pelo menos a versão 8.1 em seu ambiente de servidor.
O que fazer?
Você deve agendar uma atualização de sua versão do PHP para a versão 8.1 o mais rápido possível.
A atualização é realizada gradualmente. Entre em contato com o administrador do sistema ou com o provedor de serviços de hospedagem para obter assistência.
-
Certifique-se de fazer um backup da sua instalação. Você pode usar a ferramenta de backup integrada ou criar um backup no nível do servidor, por exemplo, da máquina virtual VMBitrix.
-
Instale todas as atualizações disponíveis em Control panel > Marketplace > Platform Update.
-
Atualize todas as soluções de terceiros do Marketplace para as versões mais recentes disponíveis em Control panel > Marketplace > Solution Update.
-
Atualize a versão do PHP para a versão 8.1 no seu servidor.
Se você usa o BitrixVM, pode atualizar o PHP manualmente por meio do item de menu do VMBitrix: 1. Manage servers in the pool - 8. Update PHP and MySQL. Leia mais detalhadamente neste curso. -
Verifique novamente as atualizações de plataforma e soluções disponíveis no Marketplace e certifique-se de instalar todas.
O que fazer em caso de erros ao atualizar a versão do PHP
-
Se houver erros na operação dos módulos padrão do Bitrix24 On Premises, entre em contato com Suporte Bitrix24.
Além disso, se as soluções de Market contiverem
bitrix.*
em seus nomes, entre em contato com o Suporte Bitrix24, por exemplo:bitrix.eshop bitrix.sitecommunity bitrix.sitecorporate bitrix.siteinfoportal bitrix.sitepersonal bitrix.learningtemplates
- Se houver erros na operação de módulos de terceiros instalados do Marketplace, entre em contato com o desenvolvedor do módulo. Você pode encontrar seus contatos na página deste módulo na guia Suporte.
Erros comuns e suas soluções
Possíveis razões de problemas após a atualização para o PHP 8.x:
- Você não instalou as atualizações disponíveis em Control panel > Marketplace > Platform Update antes de atualizar para o PHP 8.x.
- Você não instalou as atualizações disponíveis para soluções de terceiros no Marketplace em Control panel > Marketplace > Solution Update antes de atualizar para o PHP 8.x.
- O desenvolvedor não atualizou o módulo para suportar a versão PHP 8.
Como resolver problemas comuns após a atualização para o PHP 8.x?
- Faça o downgrade para a versão anterior PHP 7.x, instale todas as atualizações de componentes do sistema e módulos de terceiros e, em seguida, atualize novamente para o PHP 8.x.
- Se a instalação de atualizações não ajudar a corrigir os problemas, entre em contato com o desenvolvedor do módulo – siga as instruções na seção O que fazer em caso de erros ao atualizar a versão do PHP.
- Desative temporariamente o módulo que contém erros movendo-o para fora do diretório
/bitrix/modules
. - Remova a solução de terceiros que contém erros.
Observe que essas recomendações são fornecidas para resolver problemas na operação de um módulo específico. Cada erro deve ser revisado individualmente pelo desenvolvedor.
[Ux11] Error in the "#MODULE#" module description. Cannot connect the update server. [Ux11] Error in the "#MODULE#" module description.
Este erro pode aparecer após atualizar sua versão do PHP para 8.1 ou superior. Nesse caso, o site funciona corretamente, mas não é possível instalar ou atualizar qualquer outra solução até que o problema seja resolvido.
Solução:
Para corrigir o erro, abra o arquivo /bitrix/modules/<module_name>/install/index.php
e substitua o código:
function <module_name>()com outro código:
function __construct()
The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php.
Solução:
Conecte-se ao FTP/SFTP ou faça login no painel de controle de hospedagem e habilite a saída de erro no arquivo /bitrix/.settings.php
:
'debug' => true,
Depois disso, o texto de erro será exibido no site.
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
Neste exemplo, o erro é retornado pelo método de terceiros CSuperModRep::checkBack()
da solução super.mod.
Para corrigir o erro, no código checkBack()
você precisa declarar corretamente a função estática:
function checkBack()substitua com:
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
Este erro pode aparecer após atualizar o PHP para a versão 8.x se você não tiver instalado as atualizações de plataforma disponíveis na versão PHP 7.x.
Solução:
Este erro foi corrigido na atualização do módulo principal main 22.100.0
.
Portanto, faça o downgrade para o PHP 7.x, instale todas as atualizações recomendadas e atualize novamente para o 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)...
Este erro pode aparecer após a atualização do PHP para a versão 8, mas não é óbvio.
[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
O texto da mensagem de erro não mostra o diretório do módulo, mas este método COMP\BXE\EventHandlers::AdminContextMenuShow()
pertence ao módulo de terceiros.
Solução:
Para corrigir o erro, no código AdminContextMenuShow()
você precisa declarar corretamente a função estática:
function AdminContextMenuShow()substitua com:
public static function AdminContextMenuShow()
Tela branca após atualizar para o PHP 8.x (na versão PHP 7.4 tudo funciona)
Este erro pode aparecer devido à configuração do parâmetro short_open_tag = Off
.
Solução:
- No arquivo de configuração do PHP, defina o valor
short_open_tag = On
. - Nos logs do servidor web verifique possíveis erros e corrija-os.
- Além disso, você pode verificar erros na página do site com uma tela branca: clique com o botão direito do mouse na página e selecione Exibir código fonte da página, role para baixo e verifique se há algum erro.