Partkeepr: A instalação falha ao aquecer o cache (erro de monolog)

Criado em 23 set. 2017  ·  20Comentários  ·  Fonte: partkeepr/PartKeepr

Informação do sistema

  • PartKeepr Versão: 1.3.0
  • PHP versão 7.2

Quando chego à última etapa, tenho o erro da imagem:

2017-09-22 15_28_28-partkeepr setup

move-to-wiki

Comentários muito úteis

Você pode consertar isso rápido e sujo:
vá para o arquivo -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

em torno da linha 594 comente ou remova a linha abaixo:

// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })

adicione a seguinte linha:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

o instalador terminará a instalação e você terá acesso ao aplicativo.

Todos 20 comentários

O inseto:

Invalid configuration for path "monolog.handlers.main": Warning: count(): Parameter must be an array or an object that implements Countable

é causado pelo PHP 7.2, a solução temporária é fazer o downgrade para o PHP 7.1.

O bug está no symfony upstream, consulte: https://github.com/symfony/monolog-bundle/issues/223

Alguma correção para isso? Estou trabalhando com o Linux Mint, e não sou um usuário experiente do Linux para instalar o php7.1 ... O Linux Mint oferece apenas o padrão 7.2 ...

Você pode consertar isso rápido e sujo:
vá para o arquivo -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

em torno da linha 594 comente ou remova a linha abaixo:

// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })

adicione a seguinte linha:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

o instalador terminará a instalação e você terá acesso ao aplicativo.

Esta ainda é a correção recomendada?

Sim, parece que sim.
A correção em symphony / monolog-bundle foi lançada na versão 3.1.2, e PartKeepr está usando 2.4.
Para poder usar a nova versão do monolog-bundle, o symphony teria que ser atualizado e isso não é facilmente factível (sem um grande investimento de tempo).
A solução alternativa de @erikvanberkum ainda é a melhor maneira de fazer isso.

Peguei vocês. Talvez tenha uma correção automática como parte do script de configuração?
Ou seja, uma correção automatizada que substitui essa linha.

Tive esse problema ao tentar instalar o Partkeepr em um Raspberry Pi 3+

Desisti e fiz um reflash limpo e reinstalei o sistema operacional e o Partkeepr do zero, seguindo
esta página- https://wiki.partkeepr.org/wiki/PartKeepr_on_Debian_%22Stretch%22

Defini o tempo limite para 130 em vez de 120 e, depois da página de parâmetros do banco de dados, segui esta página
https://wiki.partkeepr.org/wiki/APC_Metadata_Caching

para editar o yaml e continuar junto e ele instalou bem.

Qual de todos esses garfos é aquele com código funcional / mais recente?
Já experimentei 13 deles e ainda não consigo instalar :(
Usando CentOS.

Minha informação:

cat / etc / centos-release

CentOS Linux versão 7.6.1810 (Core)

uname -a

Linux xxx.org 3.10.0-957.12.2.el7.x86_64 # 1 SMP Ter 14 de maio 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux

php -v

PHP 7.2.19 (cli) (construído: 29 de maio de 2019 11:04:13) (NTS)
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

mysql --version

mysql Ver 15.1 Distrib 5.5.60-MariaDB, para Linux (x86_64) usando readline 5.1

httpd -v

Versão do servidor: Apache / 2.4.6 (CentOS)
Servidor construído: 24 de abril de 2019 13:45:48

Erros que recebo:

[Sáb 01 de junho 00: 22: 58.384109 2019] [php7: warn] [pid 13807] [cliente 155.4.14.39:56332] Aviso de PHP: require_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): falha ao abrir o stream: Nenhum arquivo ou diretório em /webdata1/partkeepr/web/app.php na linha 6, referenciador: http://partkeepr.ddns.net/setup/index.html
[Sáb 01 de junho 00: 22: 58.384190 2019] [php7: erro] [pid 13807] [cliente 155.4.14.39:56332] Erro fatal do PHP: require_once (): Falha ao abrir necessário '/webdata1/partkeepr/web/../ app / bootstrap.php.cache '(include_path ='.: / usr / share / pear: / usr / share / php ') em /webdata1/partkeepr/web/app.php na linha 6, referenciador: http: // partkeepr.ddns.net/setup/index.html
[Sáb 01 de junho 00: 22: 58.394956 2019] [php7: warn] [pid 13797] [cliente 155.4.14.39:56331] Aviso de PHP: require_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): falha ao abrir o stream: Não existe esse arquivo ou diretório em /webdata1/partkeepr/web/app.php na linha 6, referenciador: http://partkeepr.ddns.net/setup/index.html
[Sáb, 01 de junho 00: 22: 58.395025 2019] [php7: erro] [pid 13797] [cliente 155.4.14.39:56331] Erro fatal do PHP: require_once (): Falha ao abrir necessário '/webdata1/partkeepr/web/../ app / bootstrap.php.cache '(include_path ='.: / usr / share / pear: / usr / share / php ') em /webdata1/partkeepr/web/app.php na linha 6, referenciador: http: // partkeepr.ddns.net/setup/index.html
[Sáb 01 de junho 00: 22: 58.565949 2019] [php7: warn] [pid 13799] [cliente 155.4.14.39:56334] Aviso de PHP: require_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): falha ao abrir o stream: Não existe esse arquivo ou diretório em /webdata1/partkeepr/web/app.php na linha 6, referenciador: http://partkeepr.ddns.net/setup/index.html
[Sáb 01 de junho 00: 22: 58.566015 2019] [php7: erro] [pid 13799] [cliente 155.4.14.39:56334] Erro fatal do PHP: require_once (): Falha ao abrir necessário '/webdata1/partkeepr/web/../ app / bootstrap.php.cache '(include_path ='.: / usr / share / pear: / usr / share / php ') em /webdata1/partkeepr/web/app.php na linha 6, referenciador: http: // partkeepr.ddns.net/setup/index.html4

Recentemente instalei o Partkeepr e não recebi esta mensagem. Portanto, estou fechando. Se alguém topar com isso, vamos reabrir.

@christianlupus Recebi o erro e a correção é # 1065 ...

Tenho esse problema. Corrigido com atualização para monolog-bundle> 3.1.0
composer requer symfony / monolog- bundle: 3.1. * consertou

@christianlupus Eu acho que este é um bom para ser adicionado à documentação :)

Posso colocá-lo nos documentos (pelo menos nos de teste), mas duvido que seja uma ideia realmente boa. Você está alterando parte do pacote de 2.7 para 3.1. Esta é uma alteração importante da versão e não tenho conhecimento de quaisquer efeitos colaterais que isso possa ter ou não ter.
Na verdade, você faz com que os usuários façam a atualização para o symphony 3 parcialmente. Tive uma experiência muito ruim com esses programas zumbis de versões mistas ... Pode não falhar agora, mas pode falhar a qualquer momento. Prefiro não dar o conselho oficial para colocar tanto em um sistema sobre o qual ambos não sabemos muito. Minha primeira verificação não resultou em nenhuma dependência quebrada, mas isso foi feito apenas de uma maneira manual rápida.

@baradhili Você tem mais informações ou conhecimento de que este é um conselho seguro?

@christianlupus ah não estou fazendo uma atualização do módulo .. mas o comentário de @erikvanberkum

<<
Você pode consertar isso rápido e sujo:
vá para o arquivo -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

em torno da linha 594 comente ou remova a linha abaixo:

// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })

adicione a seguinte linha:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

o instalador terminará a instalação e você terá acesso ao aplicativo.

>

Ahh, certo, entendo. Vou mantê-lo aberto até escrever na documentação.

Eu tenho o mesmo problema com isso .. e não consigo encontrar a maneira de instalar uma versão anterior do php ... ?? posso obter ajuda ..
o problema:

Configuração inválida para o caminho "monolog.handlers.main": Warning: count (): o parâmetro deve ser uma matriz ou um objeto que implementa Countable

Eu tentei consertar:

vá para o arquivo -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

em torno da linha 594 comente ou remova a linha abaixo:

// -> ifTrue (function ($ v) {return ('finger_crossed' === $ v ['type'] || 'buffer' === $ v ['type'] || 'filter' === $ v ['type']) && 1! == count ($ v ['handler']);})

adicione a seguinte linha:
-> ifTrue (function ($ v) {return ('finger_crossed' === $ v ['type'] || 'buffer' === $ v ['type'] || 'filter' === $ v ['tipo']) && (vazio ($ v ['manipulador']) ||! is_string ($ v ['manipulador']));})

mas apenas entenda este erro:
err

@stegl , abra um novo problema com a solicitação de Ajuda para não solucioná-lo aqui. Você pode criar um link para este, no entanto. Muito obrigado.

@christianlupus ah não estou fazendo uma atualização do módulo .. mas o comentário de @erikvanberkum

<<
Você pode consertar isso rápido e sujo:
vá para o arquivo -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

em torno da linha 594 comente ou remova a linha abaixo:

// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })

adicione a seguinte linha:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

o instalador terminará a instalação e você terá acesso ao aplicativo.

>

Tentei essa correção, mas recebo um erro diferente agora.

"Resposta inválida do servidor"

Esta correção ainda é válida?

@xadonxander o chamado "conserto" nunca foi um conserto. Ele está simplesmente invadindo o código de dependência, o que é um erro evidente.

Portanto, para deixar claro mais uma vez: Não altere nada na pasta /vendor .

A melhor correção enquanto isso é usar o PHP 7.0 ou 7.1. Então, o erro não deve aparecer. Além disso, definitivamente precisamos atualizar, consulte # 1083.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Gasman2014 picture Gasman2014  ·  26Comentários

mctomaszek picture mctomaszek  ·  20Comentários

michielbrink picture michielbrink  ·  7Comentários

baradhili picture baradhili  ·  17Comentários

Drachenkaetzchen picture Drachenkaetzchen  ·  11Comentários