PHP 7

Meu cliente migrou o servidor para o PHP 7, e o nosso aplicativo ao não encontrou algumas bibliotecas e deu a seguinte mensagem:

[Tue Mar 28 14:33:00.068892 2017] [:error] [pid 31750] [client 10.21.8.24:55097] PHP Fatal error: Uncaught Error: Call to undefined function mb_convert_encoding() in /var/www/sertaoempreendedor/_lib/lib/php/nm_utf8.php:71\nStack trace:\n#0 /var/www/sertaoempreendedor/menu/index.php(332): sc_convert_encoding(’,’, ‘ISO-8859-1’, ‘UTF-8’)\n#1 /var/www/sertaoempreendedor/menu/index.php(3429): menu_class->menu_menu()\n#2 {main}\n thrown in /var/www/sertaoempreendedor/_lib/lib/php/nm_utf8.php on line 71

[Tue Mar 28 14:33:00.656812 2017] [:error] [pid 31751] [client 10.21.8.24:55098] PHP Fatal error: Uncaught Error: Call to undefined function mb_convert_encoding() in /var/www/sertaoempreendedor/_lib/lib/php/nm_utf8.php:71\nStack trace:\n#0 /var/www/sertaoempreendedor/menu/index.php(332): sc_convert_encoding(’,’, ‘ISO-8859-1’, ‘UTF-8’)\n#1 /var/www/sertaoempreendedor/menu/index.php(3429): menu_class->menu_menu()\n#2 {main}\n thrown in /var/www/sertaoempreendedor/_lib/lib/php/nm_utf8.php on line 71

ALGUEM PODE ME AJUDAR?

O que diz a documentação do SC?

Não sei se produção do sc 8.1 funciona com php 7.

Rode o diagnosis.php no ambiente.

Me parece que faltam extensões aí, principalmente a mbstring.

É obrigatório seguir esta tabela, se não seu sistema não vai funcionar:

scriptcase 5 -> php 5.2
scritpcase 6 -> php 5.3
scriptase <= 7.0.013 -> php 5.3
scriptcase >= 7.0.014 -> php 5.4
scriptcase 8.0.xxx -> php 5.4
scriptcase 8.1.xxx -> php 5.4 ou php 5.6

Volta correndo isso para o PHP 5.6 se estiver usando o SC 8.1, ou seu sistema vai ficar parado.

esta tabelinha é lei

Essa regra é para funcionar a IDE, mas em produção não sei se aplica, inclusive tive discutindo com o Alexandre hoje a respeito, e estou para testar a produção do SC8.1 em php 7.

Só vou usar o PHP 7 com a V9.

Tem que ver se as funções do mbstring estão ativas:
mb_convert_encoding()
mb_convert_encoding()
fazem parte das funções mbstring -> http://php.net/manual/pt_BR/book.mbstring.php
Eu sei que no Debian tem que fazer apt-get install php-mbstring no stretch e no sid.
PS: no jessie se estiver usando o dotdeb faça apt-get install php-mbstring

Sim, Jailton.

Mas para transição da produção do sc8.1 para o sc9 ter os 2 php (5.6 e 7) no mesmo servidor é ruim apesar de ser possível.

Apesar de eu sempre demorar muito para migrar meu projeto de versões do SC, dessa vez vou ser radical, quero migrar o mais rápido possível.

Mas

Sim aqui vou ter + 1 servidor extra só para o PHP 7 com tudo atualizado CENTOS, MariaDB, etc, vou converter todos os projetos no SC para ficarem convertidos pela IDE,
mas os clientes que ainda vão continuar com o SC 8.1, se pedirem alguma alteração tenho que fazer 2 vezes uma na original que esta rodando o SC 8.1 e outra manualmente
na que esta convertida na V9, e ai vou migrando os projetos pequenos para a V9 primeiro, e dando certo, vou excluindo eles manualmente da V8.1, ai com o passar do tempo
a migração vai sendo feito sem estresse para os clientes, até zerar todos os projetos restantes na SC 8.1

Nós temos um servidor local e uma máquina dedicada (cujo a atenção técnica é feita pelo Alexandre).

Na local temos o sc8.1 ambiente de desenvolvimento e o mariadb que é slave do nosso servidor nas nuvens.

Nas nuvens temos somente produção mas com um ambiente de desenvolvimento step para uma emergência.

Vou montar uma VM para fazer os testes da V9.

Grato por enquanto senhores.
Vou ver com o cliente as configurações do Linux e versão e seguir as orientações.

Valew…

Olha! Se colocar no google: php 7 PHP Notice: Array to string conversion in
Verá que muitas outras pessoas estão nesta situação.
É uma mudança no PHP 7 -> http://php.net/manual/en/language.types.string.php
Aconselho a migrar para o 9 assim que ele sair se você vai usar o php 7.

PS: Olhe sua sintaxe também.

Obrigado Alexandre…