Correndo para problemas em um site executando o Magento 2.2.0-rc3.0 / PHP 7.0.23
O seguinte problema ocorre com todas as extensões de terceiros ativadas ou desativadas.
Ao adicionar um item à comparação da página de categoria ou produto ou ao enviar uma revisão da página do produto, obtemos o seguinte erro no navegador:
1 exception(s):
Exception #0 (InvalidArgumentException): Unable to unserialize value.
Exception #0 (InvalidArgumentException): Unable to unserialize value.
#0 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(157): Magento\Framework\Serialize\Serializer\Json->unserialize('[{\\"type\\":\\"su...')
#1 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(135): Magento\Theme\Controller\Result\MessagePlugin->getCookiesMessages()
#2 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(84): Magento\Theme\Controller\Result\MessagePlugin->getMessages()
#3 /home/___/public_html/lib/internal/Magento/Framework/Interception/Interceptor.php(146): Magento\Theme\Controller\Result\MessagePlugin->afterRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Magento\Framework\View\Result\Page\Interceptor), Object(Magento\Framework\App\Response\Http\Interceptor))
#4 /home/___/public_html/lib/internal/Magento/Framework/Interception/Interceptor.php(153): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#5 /home/___/public_html/generated/code/Magento/Framework/View/Result/Page/Interceptor.php(26): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array)
#6 /home/___/public_html/lib/internal/Magento/Framework/App/Http.php(139): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#7 /home/___/public_html/lib/internal/Magento/Framework/App/Bootstrap.php(256): Magento\Framework\App\Http->launch()
#8 /home/___/public_html/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#9 {main}
O erro não desaparece, a menos que você limpe os cookies, em particular o cookie de mensagens de imagem.
Qualquer assistência na solução desses erros é apreciada.
magento2
magento2.2-dev
unserialize
Mandril
fonte
fonte
Respostas:
Consegui resolver esse problema liberando meu cache Redis da CLI
Espero que isso ajude futuros usuários.
fonte
O problema está em /vendor/magento/framework/Serialize/Serializer/Json.php. Existe uma função unserialize ($ string) que fornece um erro de sintaxe se a string for serializada (não json, mas serialização php).
Existe uma solução alternativa - você pode verificar se a string é serializada (vs codificada por json) e, em seguida, usar serialize ($ string). Altere a desserialização para:
e adicione a função para verificar se a sequência é serializada:
Depois de salvar fe. categoria sem problema, você pode restaurar a classe para o padrão e não haverá esse problema no futuro.
fonte
Não edite os arquivos principais da solução. Substituir a seguinte maneira Basta colocar a seguinte linha no di.xml dentro do diretório etc
E dentro do espaço para nome \ ModuleName \ Serialize \ Serializer Directory: arquivo Json.php
Funciona perfeitamente
fonte
a:0:{}
para[]
No meu caso, fiz o patch da seguinte maneira para desserializar uma string serializada: File: /vendor/magento/framework/Serialize/Serializer/Json.php
Encontrar:
substituir por:
fonte
Após liberar o Redis, o problema foi resolvido. Obrigado Craig pela solução.
Estou usando a porta 6379 para cache, então executo o comando:
fonte
É principalmente relacionado ao cache Redis, então tente liberar isso com um simples comando no seu SSH
redis-cli flushall
fonte
Acabou sendo um problema de permissão, onde o magento estava definindo permissões para arquivos gerados que eram restritos neste servidor.
Resolvido criando o arquivo magento_umask no diretório raiz com o umask apropriado para o servidor.
Veja http://devdocs.magento.com/guides/v2.2/install-gde/install/post-install-umask.html para detalhes adicionais.
fonte
A resposta de Sameers acima funcionou para mim, embora eu tivesse que usar código diferente no bloco.
fonte
Diretório ROOT 1.
public_html/vendor/magento/framework/Serialize/Serializer/Json.php
Faça o download do JSON.php https://gist.github.com/manojind/9f18bbecaeb3e2bbfb056a634ade62a2
2. Apenas substitua a função abaixo (desserialize) e adicione uma nova função OU faça o download do arquivo anexado e substitua pelo padrão
3. Adicione uma nova função:
fonte
Pessoalmente, encontrei esse problema criado, ele executava o comando:
Após uma migração. Eu descobri que estava faltando a chave de hash " cripta " em
src/app/etc/env.php
:Verifique se isso não está vazio e, de preferência, corresponde aos outros ambientes de seus projetos!
fonte
Eu estava recebendo o erro em uma página do CMS no front-end.
Foi o código do widget Magento no conteúdo da página do CMS que estava causando o problema (que eu copiei de outra fonte). Excluí o código do widget e inseri o mesmo widget usando o botão Inserir widget na tela de edição da página do CMS e funcionou.
O processo acima formatou o código do widget de maneira diferente e cometeu o erro.
fonte
Eu descobri que dados serializados inteiros não podem ser ajustados em uma coluna da tabela MySQL do banco de
TEXT
dados com o tipo de dados.Acabei de encontrar a coluna
flag_data
valor da dasystem_config_snapshot
linha é aparado.Eu tive que mudar
MEDIUMTEXT
para esta colunaflag.flag_data
.fonte
Foi o mesmo erro. Quando tentou atualizar o banco de dados (versão 2.2.6) com um novo código (versão 2.3.2).
Para correção - executado
fonte
Esta não é a melhor maneira de executar o sql diretamente, mas fiz isso para economizar meu tempo. Basta executar esta consulta
fonte
Se você estiver na versão 2.3.0 ou superior, desejará usar a solução fornecida pelo MageLearner. A maneira mais antiga com instruções de caso é obsoleta. Se você não usar a solução do MageLearner na 2.3.0 ou superior; você encontrará todos os tipos de problemas com a visualização de dados de pedidos e produtos configuráveis.
fonte