Partkeepr: L'installation échoue lors du préchauffage du cache (erreur monologue)

Créé le 23 sept. 2017  ·  20Commentaires  ·  Source: partkeepr/PartKeepr

Informations système

  • Version de PartKeepr : 1.3.0
  • PHP version 7.2

Lorsque j'arrive à la dernière étape, j'ai l'erreur de l'image :

2017-09-22 15_28_28-partkeepr setup

move-to-wiki

Commentaire le plus utile

Vous pouvez résoudre ce problème rapidement et salement :
allez dans le fichier -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

autour de la ligne 594 commentez ou supprimez la ligne ci-dessous :

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

ajoutez la ligne suivante :
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

le programme d'installation terminera ensuite l'installation et vous aurez accès à l'application.

Tous les 20 commentaires

L'insecte:

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

est causé par PHP 7.2, la solution de contournement temporaire passe à PHP 7.1.

Le bug est en amont de symfony, voir : https://github.com/symfony/monolog-bundle/issues/223

Un correctif pour cela ? Je travaille avec linux Mint, et je ne suis pas un utilisateur expert de linux pour installer php7.1... Linux Mint n'offre que la norme 7.2...

Vous pouvez résoudre ce problème rapidement et salement :
allez dans le fichier -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

autour de la ligne 594 commentez ou supprimez la ligne ci-dessous :

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

ajoutez la ligne suivante :
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

le programme d'installation terminera ensuite l'installation et vous aurez accès à l'application.

Est-ce toujours le correctif recommandé?

Oui, ça y ressemble.
Le correctif dans symphony/monolog-bundle a été publié dans la version 3.1.2, et PartKeepr utilise 2.4.
Pour pouvoir utiliser la nouvelle version de monolog-bundle, symphony devrait être mis à jour et ce n'est pas facilement faisable (sans un investissement en temps assez important).
La solution de contournement de @erikvanberkum est toujours la meilleure façon de le faire.

Je t'ai eu. Peut-être avez-vous un correctif automatisé dans le cadre du script d'installation ?
C'est-à-dire un correctif automatisé qui remplace cette ligne.

J'ai eu ce problème en essayant d'installer Partkeepr sur un Raspberry Pi 3+

J'ai abandonné et fait un reflashage propre et réinstallé le système d'exploitation et Partkeepr à partir de zéro après
cette page - https://wiki.partkeepr.org/wiki/PartKeepr_on_Debian_%22Stretch%22

J'ai mis le délai d'attente à 130 au lieu de 120, puis après la page des paramètres de la base de données, j'ai suivi cette page
https://wiki.partkeepr.org/wiki/APC_Metadata_Caching

pour éditer le yaml et la suite et tout s'est bien installé.

Laquelle de toutes ces fourchettes est celle dont le code fonctionne/le plus récent ?
J'en ai maintenant essayé 13 et je ne peux toujours pas l'installer :(
Utilisation de CentOS.

Mes infos :

cat /etc/centos-release

CentOS Linux version 7.6.1810 (Core)

uname -a

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

php -v

PHP 7.2.19 (cli) (construit : 29 mai 2019 11:04:13) (NTS)
Copyright (c) 1997-2018 Le Groupe PHP
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

mysql --version

mysql Ver 15.1 Distrib 5.5.60-MariaDB, pour Linux (x86_64) en utilisant readline 5.1

httpd -v

Version du serveur : Apache/2.4.6 (CentOS)
Serveur construit : 24 avril 2019 13:45:48

Erreurs que j'obtiens :

[Sam 01 juin 00:22:58.384109 2019] [php7:warn] [pid 13807] [client 155.4.14.39:56332] Avertissement PHP : require_once(/webdata1/partkeepr/web/../app/bootstrap.php.cache ): échec de l'ouverture du flux : aucun fichier ou répertoire de ce type dans /webdata1/partkeepr/web/app.php à la ligne 6, référent : http://partkeepr.ddns.net/setup/index.html
[Sam 01 juin 00:22:58.384190 2019] [php7:error] [pid 13807] [client 155.4.14.39:56332] Erreur fatale PHP : require_once () : Échec de l'ouverture requise '/webdata1/partkeepr/web/../ app/bootstrap.php.cache' (include_path='.:/usr/share/pear:/usr/share/php') dans /webdata1/partkeepr/web/app.php à la ligne 6, référent : http:// partkeepr.ddns.net/setup/index.html
[Sam 01 juin 00:22:58.394956 2019] [php7:warn] [pid 13797] [client 155.4.14.39:56331] Avertissement PHP : require_once(/webdata1/partkeepr/web/../app/bootstrap.php.cache ): échec de l'ouverture du flux : aucun fichier ou répertoire de ce type dans /webdata1/partkeepr/web/app.php à la ligne 6, référent : http://partkeepr.ddns.net/setup/index.html
[Sam 01 juin 00:22:58.395025 2019] [php7:error] [pid 13797] [client 155.4.14.39:56331] Erreur fatale PHP : require_once () : Échec de l'ouverture requise '/webdata1/partkeepr/web/../ app/bootstrap.php.cache' (include_path='.:/usr/share/pear:/usr/share/php') dans /webdata1/partkeepr/web/app.php à la ligne 6, référent : http:// partkeepr.ddns.net/setup/index.html
[Sam 01 juin 00:22:58.565949 2019] [php7:warn] [pid 13799] [client 155.4.14.39:56334] Avertissement PHP : require_once(/webdata1/partkeepr/web/../app/bootstrap.php.cache ): échec de l'ouverture du flux : aucun fichier ou répertoire de ce type dans /webdata1/partkeepr/web/app.php à la ligne 6, référent : http://partkeepr.ddns.net/setup/index.html
[Sam 01 juin 00:22:58.566015 2019] [php7:error] [pid 13799] [client 155.4.14.39:56334] Erreur fatale PHP : require_once () : Échec de l'ouverture requise '/webdata1/partkeepr/web/../ app/bootstrap.php.cache' (include_path='.:/usr/share/pear:/usr/share/php') dans /webdata1/partkeepr/web/app.php à la ligne 6, référent : http:// partkeepr.ddns.net/setup/index.html4

J'ai récemment installé Partkeepr et je n'ai pas reçu ce message. Ainsi, je le ferme. Si quelqu'un tombe dessus, nous rouvrirons.

@christianlupus j'ai eu l'erreur et le correctif est #1065 ...

J'ai ce problème. Corrigé avec la mise à jour vers monolog-bundle >3.1.0
composer nécessite symfony/monolog- bundle:3.1. * corrigé

@christianlupus je pense que c'est un bon à ajouter à la doc :)

Je peux le mettre dans les docs (au moins ceux de mise en scène) mais je doute que ce soit une très bonne idée. Vous changez une partie du bundle de 2.7 à 3.1. Il s'agit d'un changement de version majeur et je ne suis pas au courant des effets secondaires que cela pourrait avoir ou non.
En fait, vous obligez les utilisateurs à faire eux-mêmes la mise à jour vers symphony 3 en partie. J'ai eu une très mauvaise expérience avec de tels programmes zombies de versions mixtes... Cela pourrait ne pas échouer maintenant, mais cela pourrait échouer à tout moment. Je préfère ne pas donner le conseil officiel de foutre autant dans un système que nous ne connaissons pas tous les deux. Ma première vérification n'a donné aucune dépendance brisée, mais cela n'a été fait que de manière manuelle rapide.

@baradhili Avez-vous plus d'informations ou

@christianlupus ah ne fait pas de mise à niveau de module .. mais le commentaire de @erikvanberkum

<<
Vous pouvez résoudre ce problème rapidement et salement :
aller au fichier -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

autour de la ligne 594 commentez ou supprimez la ligne ci-dessous :

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

ajoutez la ligne suivante :
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

le programme d'installation terminera ensuite l'installation et vous aurez accès à l'application.

>

Ahh, d'accord, je vois. Je le garderai ouvert jusqu'à ce que je l'écrive aux docs.

J'ai le même problème avec ça... et je ne trouve pas le moyen d'installer une ancienne version de php... ?? puis-je obtenir de l'aide..
le problème:

Configuration non valide pour le chemin "monolog.handlers.main": Avertissement : count() : le paramètre doit être un tableau ou un objet qui implémente Countable

j'ai essayé de le réparer en :

allez dans le fichier -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

autour de la ligne 594 commentez ou supprimez la ligne ci-dessous :

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

ajoutez la ligne suivante :
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v ['type']) && (vide($v['handler']) || !is_string($v['handler'])); })

mais obtenez juste cette erreur:
err

@stegl s'il vous plaît ouvrez un nouveau problème avec une demande d'aide pour ne pas hoqueter ce problème ici. Vous pouvez néanmoins créer un lien vers celui-ci. Merci beaucoup.

@christianlupus ah ne fait pas de mise à niveau de module .. mais le commentaire de @erikvanberkum

<<
Vous pouvez résoudre ce problème rapidement et salement :
aller au fichier -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

autour de la ligne 594 commentez ou supprimez la ligne ci-dessous :

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

ajoutez la ligne suivante :
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

le programme d'installation terminera ensuite l'installation et vous aurez accès à l'application.

>

J'ai essayé ce correctif mais j'obtiens une erreur différente maintenant.

"Réponse invalide du serveur"

Ce correctif est-il toujours valable ?

@xadonxander le "correctif" nommé n'a jamais été un correctif. Il s'agit clairement de pirater le code de dépendance, ce qui est une erreur évidente.

Donc, pour que ce soit clair une fois de plus : ne modifiez rien dans le dossier /vendor .

La meilleure solution en attendant est d'utiliser PHP 7.0 ou 7.1. Ensuite, l'erreur ne devrait pas apparaître du tout. En dehors de cela, nous devons absolument mettre à jour, voir #1083.

Cette page vous a été utile?
0 / 5 - 0 notes