Partkeepr: Setup schlägt beim Aufwärmen des Caches fehl (Monolog-Fehler)

Erstellt am 23. Sept. 2017  ·  20Kommentare  ·  Quelle: partkeepr/PartKeepr

System Information

  • PartKeepr-Version: 1.3.0
  • PHP-Version 7.2

Wenn ich den letzten Schritt erreiche, habe ich den Fehler aus dem Bild:

2017-09-22 15_28_28-partkeepr setup

move-to-wiki

Hilfreichster Kommentar

Sie können dies schnell und schmutzig beheben:
gehe zu Datei -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

um Zeile 594 auskommentieren oder die folgende Zeile entfernen:

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

füge die folgende Zeile hinzu:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

Das Installationsprogramm beendet dann die Installation und Sie haben Zugriff auf die Anwendung.

Alle 20 Kommentare

Der Fehler:

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

wird durch PHP 7.2 verursacht, vorübergehende Problemumgehung ist ein Downgrade auf PHP 7.1.

Der Fehler ist in Upstream-Symfony, siehe: https://github.com/symfony/monolog-bundle/issues/223

Irgendeine Lösung dafür? Ich arbeite mit Linux Mint und bin kein erfahrener Linux-Benutzer, um php7.1 zu installieren ... Linux Mint bietet nur 7.2 Standard ...

Sie können dies schnell und schmutzig beheben:
gehe zu Datei -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

um Zeile 594 auskommentieren oder die folgende Zeile entfernen:

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

füge die folgende Zeile hinzu:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

Das Installationsprogramm beendet dann die Installation und Sie haben Zugriff auf die Anwendung.

Ist das immer noch die empfohlene Lösung?

Ja, es scheint so.
Der Fix in symphony/monolog-bundle wurde in Version 3.1.2 veröffentlicht und PartKeepr verwendet 2.4.
Um die neue Version von monolog-bundle nutzen zu können, müsste symphony aktualisiert werden und das ist nicht ohne weiteres (ohne großen Zeitaufwand) machbar.
Der Workaround von @erikvanberkum ist immer noch der beste Weg.

Erwischt. Vielleicht haben Sie einen automatisierten Fix als Teil des Setup-Skripts?
Das heißt, ein automatisierter Fix, der diese Zeile ersetzt.

Ich hatte dieses Problem, als ich versuchte, Partkeepr auf einem Raspberry Pi 3+ zu installieren

Ich gab auf und machte einen sauberen reflash und installierte OS und Partkeepr von Grund auf neu
diese Seite- https://wiki.partkeepr.org/wiki/PartKeepr_on_Debian_%22Stretch%22

Ich habe das Timeout auf 130 statt auf 120 gesetzt und dann nach der Seite mit den Datenbankparametern dieser Seite gefolgt
https://wiki.partkeepr.org/wiki/APC_Metadata_Caching

um die yaml zu bearbeiten und die Fortsetzung entlang und es installiert gut.

Welche von all diesen Gabeln ist die mit funktionierendem / neuestem Code?
Ich habe jetzt 13 davon ausprobiert und kann es immer noch nicht einmal installieren :(
CentOS verwenden.

Meine Information:

Katze /etc/centos-release

CentOS Linux-Version 7.6.1810 (Kern)

uname -a

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

php -v

PHP 7.2.19 (cli) (erstellt: 29.05.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, für Linux (x86_64) mit readline 5.1

httpd -v

Serverversion: Apache/2.4.6 (CentOS)
Server gebaut: 24.04.2019 13:45:48

Fehlermeldungen, die ich erhalte:

[Sa Jun 01 00:22:58.384109 2019] [php7:warn] [pid 13807] [client 155.4.14.39:56332] PHP-Warnung: require_once(/webdata1/partkeepr/web/../app/bootstrap.php.cache ): Stream konnte nicht geöffnet werden: No such file or directory in /webdata1/partkeepr/web/app.php in Zeile 6, Referer: http://partkeepr.ddns.net/setup/index.html
[Sa Jun 01 00:22:58.384190 2019] [php7:error] [pid 13807] [client 155.4.14.39:56332] PHP Fatal error: require_once(): Fehler beim Öffnen erforderlich '/webdata1/partkeepr/web/../ app/bootstrap.php.cache' (include_path='.:/usr/share/pear:/usr/share/php') in /webdata1/partkeepr/web/app.php in Zeile 6, Referer: http:// partkeepr.ddns.net/setup/index.html
[Sa Jun 01 00:22:58.394956 2019] [php7:warn] [pid 13797] [client 155.4.14.39:56331] PHP-Warnung: require_once(/webdata1/partkeepr/web/../app/bootstrap.php.cache ): Stream konnte nicht geöffnet werden: No such file or directory in /webdata1/partkeepr/web/app.php in Zeile 6, Referer: http://partkeepr.ddns.net/setup/index.html
[Sa Jun 01 00:22:58.395025 2019] [php7:error] [pid 13797] [client 155.4.14.39:56331] PHP Fatal error: require_once(): Fehler beim Öffnen erforderlich '/webdata1/partkeepr/web/../ app/bootstrap.php.cache' (include_path='.:/usr/share/pear:/usr/share/php') in /webdata1/partkeepr/web/app.php in Zeile 6, Referer: http:// partkeepr.ddns.net/setup/index.html
[Sa Jun 01 00:22:58.565949 2019] [php7:warn] [pid 13799] [client 155.4.14.39:56334] PHP-Warnung: require_once(/webdata1/partkeepr/web/../app/bootstrap.php.cache ): Stream konnte nicht geöffnet werden: No such file or directory in /webdata1/partkeepr/web/app.php in Zeile 6, Referer: http://partkeepr.ddns.net/setup/index.html
[Sa Jun 01 00:22:58.566015 2019] [php7:error] [pid 13799] [client 155.4.14.39:56334] PHP Fatal error: require_once(): Fehler beim Öffnen erforderlich '/webdata1/partkeepr/web/../ app/bootstrap.php.cache' (include_path='.:/usr/share/pear:/usr/share/php') in /webdata1/partkeepr/web/app.php in Zeile 6, Referer: http:// partkeepr.ddns.net/setup/index.html4

Ich habe Partkeepr vor kurzem installiert und diese Meldung nicht erhalten. Daher schließe ich es. Wenn jemand darauf stößt, werden wir wieder öffnen.

@christianlupus Ich habe den Fehler und die Lösung ist #1065 ...

Habe dieses Problem. Behoben mit Update auf Monolog-Bundle >3.1.0
Composer benötigen symfony/monolog- bundle:3.1. * repariert

@christianlupus Ich denke, dies ist eine gute Ergänzung zu den Dokumenten :)

Ich kann es in die Dokumentation einfügen (zumindest die Staging-Dateien), aber ich bezweifle, dass dies eine wirklich gute Idee ist. Sie ändern einen Teil des Pakets von 2.7 auf 3.1. Dies ist eine größere Versionsänderung und mir sind keine Nebenwirkungen bekannt, die dies haben könnte oder nicht.
Tatsächlich lässt man die User das Update auf Symphony 3 teilweise selbst durchführen. Ich habe sehr schlechte Erfahrungen mit solchen Zombie-Programmen in gemischten Versionen gemacht.... Es kann jetzt nicht scheitern, aber es kann jederzeit scheitern. Ich würde lieber nicht den offiziellen Rat geben, so viel in ein System einzudringen, von dem wir beide nicht viel wissen. Meine erste Überprüfung ergab keine unterbrochenen Abhängigkeiten, aber dies geschah nur in einer schnellen manuellen Weise.

@baradhili Haben Sie weitere Informationen oder wissen Sie, dass dies ein sicherer Rat ist?

@christianlupus macht kein Modul-Upgrade.. aber @erikvanberkum 's Kommentar

<<
Sie können dies schnell und schmutzig beheben:
gehe zu Datei -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

um Zeile 594 auskommentieren oder die folgende Zeile entfernen:

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

füge die folgende Zeile hinzu:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

Das Installationsprogramm beendet dann die Installation und Sie haben Zugriff auf die Anwendung.

>

Ahh, okay, ich verstehe. Ich werde es offen halten, bis ich es in die Dokumente geschrieben habe.

Ich habe das gleiche Problem mit diesem .. und kann den Weg nicht finden, eine ältere Version von PHP zu installieren ...?? kann ich Hilfe bekommen..
das Problem:

Ungültige Konfiguration für Pfad "monolog.handlers.main": Warnung: count(): Parameter muss ein Array oder ein Objekt sein, das Countable implementiert

Ich habe versucht, es zu beheben, indem ich:

gehe zu Datei -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

um Zeile 594 auskommentieren oder die folgende Zeile entfernen:

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

füge die folgende Zeile hinzu:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v ['type']) && (leer($v['handler']) || !is_string($v['handler'])); })

aber bekomme nur diesen Fehler:
err

@stegl bitte öffnen Sie ein neues Problem mit Hilfe Anfrage nicht hier , um dieses Problem zu Schluckauf. Sie können trotzdem auf diesen verlinken. Vielen Dank.

@christianlupus macht kein Modul-Upgrade.. aber @erikvanberkum 's Kommentar

<<
Sie können dies schnell und schmutzig beheben:
gehe zu Datei -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php

um Zeile 594 auskommentieren oder die folgende Zeile entfernen:

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

füge die folgende Zeile hinzu:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })

Das Installationsprogramm beendet dann die Installation und Sie haben Zugriff auf die Anwendung.

>

Ich habe diesen Fix versucht, aber jetzt erhalte ich einen anderen Fehler.

"Ungültige Antwort vom Server"

Ist dieser Fix noch gültig?

@xadonxander der genannte "Fix" war nie ein Fix. Es hackt sich eindeutig in den Abhängigkeitscode ein, was ein klarer Fehler ist.

Um es noch einmal klarzustellen: Ändern Sie nichts im Ordner /vendor .

Die beste Lösung in der Zwischenzeit ist die Verwendung von PHP 7.0 oder 7.1. Dann sollte der Fehler gar nicht erscheinen. Ansonsten müssen wir unbedingt updaten, siehe #1083.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

olewolf picture olewolf  ·  18Kommentare

mctomaszek picture mctomaszek  ·  20Kommentare

HolgerHeckeroth picture HolgerHeckeroth  ·  4Kommentare

JoarGjersund picture JoarGjersund  ·  12Kommentare

baradhili picture baradhili  ·  17Kommentare