Update Matomo 4.0x: Tonnen an Fehlermeldungen

Nach dem aktuellen Update auf die 4.0x Version wollte ich mich heute daran machen einige nicht mehr kompatible Plugins neu zu machen, weil es die Authoren der Plugins nicht mehr gibt. Dazu hab ich mich erst mal eingelesen, was es für die Plugin Entwicklung braucht und schon beim 2ten Aufruf der Console hagelte es die erste Fehlermeldung:

./console generate:plugin
Permission denied

Nachdem ich mehrere Matomo Installationen habe und der obige Fehler nur bei den neueren Installationen auftritt, lässt sich mit an Sicherheit grenzender Wahrscheinlichkeit sagen, dass die Datei Berechtigungen for console nicht mehr stimmen, wobei es keine Rolle spielt, ob der consolen Aufruf mit dem User Account erfolgt oder als root.

Nachdem ich die Datei Berechtigungen geändert hatte, ließ sich zwar der o.g. Consolen Aufruf durchführen, allerdings hagelte es danach Fehlermeldungen. Offenbar hat sich mit der aktuellen Version so einiges verschlimmbessert, zumal ich noch einiges mehr gefunden habe, aber nicht zu diesem Thema passt.

WARNING [2020-12-09 06:12:30] 11681  /home/xxxxxx/public_html/xxxxxx/pwk/vendor/composer/ClassLoader.php(444): Warning - include(/home/xxxxxx/public_html/xxxxxx/pwk/vendor/composer/../../plugins/ExamplePlugin/ExamplePlugin.php): failed to open stream: No such file or directory - Matomo 4.0.5 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already)
WARNING [2020-12-09 06:12:30] 11681  /home/xxxxxx/public_html/xxxxxx/pwk/vendor/composer/ClassLoader.php(444): Warning - include(): Failed opening '/home/xxxxxx/public_html/xxxxxx/pwk/vendor/composer/../../plugins/ExamplePlugin/ExamplePlugin.php' for inclusion (include_path='/home/xxxxxx/public_html/xxxxxx/pwk/vendor/pear/pear_exception:/home/xxxxxx/public_html/xxxxxx/pwk/vendor/pear/console_getopt:/home/xxxxxx/public_html/xxxxxx/pwk/vendor/pear/pear-core-minimal/src:/home/xxxxxx/public_html/xxxxxx/pwk/vendor/pear/archive_tar:.:/opt/cpanel/ea-php74/root/usr/share/pear') - Matomo 4.0.5 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already)
ERROR [2020-12-09 06:12:30] 11681  Uncaught exception: Error: Class 'Piwik\Plugins\ExamplePlugin\ExamplePlugin' not found in /home/xxxxxx/public_html/xxxxxx/pwk/plugins/CoreConsole/Commands/GeneratePlugin.php:45
Stack trace:
#0 /home/xxxxxx/public_html/xxxxxx/pwk/vendor/symfony/console/Symfony/Component/Console/Command/Command.php(257): Piwik\Plugins\CoreConsole\Commands\GeneratePlugin->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#1 /home/xxxxxx/public_html/xxxxxx/pwk/vendor/symfony/console/Symfony/Component/Console/Application.php(874): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#2 /home/xxxxxx/public_html/xxxxxx/pwk/vendor/symfony/console/Symfony/Component/Console/Application.php(195): Symfony\Component\Console\Application->doRunCommand(Object(Piwik\Plugins\CoreConsole\Commands\GeneratePlugin), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 [internal function]: Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /home/xxxxxx/public_html/xxxxxx/pwk/core/Console.php(130): call_user_func(Array, Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /home/xxxxxx/public_html/xxxxxx/pwk/core/Access.php(673): Piwik\Console->Piwik\{closure}()
#6 /home/xxxxxx/public_html/xxxxxx/pwk/core/Console.php(131): Piwik\Access::doAsSuperUser(Object(Closure))
#7 /home/xxxxxx/public_html/xxxxxx/pwk/core/Console.php(82): Piwik\Console->doRunImpl(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 /home/xxxxxx/public_html/xxxxxx/pwk/vendor/symfony/console/Symfony/Component/Console/Application.php(126): Piwik\Console->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 /home/xxxxxx/public_html/xxxxxx/pwk/console(32): Symfony\Component\Console\Application->run()
#10 {main}
Uncaught exception in /home/xxxxxx/public_html/xxxxxx/pwk/plugins/CoreConsole/Commands/GeneratePlugin.php line 45:
Class 'Piwik\Plugins\ExamplePlugin\ExamplePlugin' not found

Hallo,

Wenn du ein Plugin entwickeln willst, empfehle ich sehr stark nicht die normale matomo.zip zu verwenden, sondern wie in https://developer.matomo.org/guides/getting-started-part-1 beschrieben die Version von git zu nehmen.

In der Release-Version fehlen einige Dateien, die für die Plugin-Entwicklung (oder zumindest für das automatische Generieren der Vorlage) benötigt werden.

Du hast aber natürlich recht, dass da keine unklare Fehlermeldung, sondern eine ordentliche Erklärung kommen sollte:

Okay, das erklärt natürlich einiges, sodass der Fehlerhagel schon seinen Grund hat. Vielleicht so als Anregung, wenn man diese Info in Doku aufnehmen könnte?

Danke Dir!

Hallo,

Wo in der Dokumentation würdest du empfehlen (abgesehen von der Fehlermeldung wie oben beschrieben)?

Ich hab mir die von Dir verlinkte Seite nochmal angesehen. Wenn man vom Anfang bis Ende genau das macht, was dort geschrieben steht, tritt der Fehler natürlich nicht auf. Von daher würde auch nichts fehlen, bis eben der Zusatz, dass man das normale Release eben nicht verwenden soll, wenn es um Plugin Entwicklung geht, weil darin was dafür fehlt. Letzteres wäre dann die entscheidende Ergänzung. :slight_smile:

1 Like

Ich hab mir jetzt das Dev Release installiert und was soll ich sagen. Was in dem einen fehlt, ist beim anderen vorhanden und umgekehrt. Das Dev Release ist, sorry, wenn ich das so sage, auch nicht das Gelbe vom Ei. Die Datei Berechtigungen stimmen auch beim Dev Release nicht für console…

Die Dateiberechtigungen sind genau so, wie du sie setzt. Der Nutzer, der git clone ausführt, dem gehören die Dateien und der kann dann auch mit console neue Dateien hinschreiben. Auch sollte console standardmäßig executable (+x) sein, wodurch du es direkt mit ./console ausführen kannst.

Ich will Dir da nicht widersprechen. Es wundert mich nur deswegen, weil ich wie schon erwähnt mehrere Matomo Installationen betreibe, aber je nach Alter der Installation aber gleicher Version sind die Berechtigungen unterschiedlich. Wobei es mir aber neu ist, dass man die Rechte für console explizit vergeben muss. Das Problem mit den Berechtigungen mit console tritt ja nicht generell auf, sondern nur, wenn man die console in Zusammenhang mit der Entwicklung aufruft. Meine Crons laufen alle, ohne dass ich explizit etwas ändern musste.

Nur der Vollständigkeit halber, wobei ich vielleicht ein neues Thema aufmachen sollte, sofern für eine Plugin Entwicklung oder auch für andere Zwecke das Plugin VisitorGenerator installiert und auch ausgeführt wird und man außerdem ModSecurity am Laufen hat, dann in ModSecurity zwingend eine Ausnahme Regel erstellen. Andernfalls läuft man Gefahr, dass man vom eigenen Server ausgesperrt wird.

@Lukas

Es liegt an Dir, ob Du das ggf. Deine geistigen Vordenker als Hinweis weitergibst.

Hallo,

Prinzipiell wird das Verwenden von mod_security mit Matomo überhaupt nicht unterstützt, da es immer Regeln geben kann, die bestimmte Requests blockieren ohne, dass man es mitbekommt.

Aber ich habe einen Satz in die Anleitung hinzugefügt:

Das war nicht als Kritik zu verstehen falls das so rübergekommen sein sollte. Wenn Sicherheit im Spiel ist und das unabhängig von ModSecurity kann es immer mal zu Falsch Positiven Vorfällen kommen. Gut ist es aber trotzdem, wenn man es vorher schon weiß.

1 Like

Kein Problem, ist nicht so angekommen :slight_smile:

[Update]

In meinem Eingangsthread hatte ich als erstes das Problem mit den Permissions angegeben und dachte eigentlich, dass die mangelnden Permissions sich nur auf das Erstellen eines Plugins beschränken würde, was offenbar nicht der Fall ist. Ich wollte heute weitere benutzerdefinierte Dimensionen hinzufügen, aber egal ob ich den Consolen Aufruf

./console customdimensions:add-custom-dimension --scope=action --count=5

als root oder mit dem Nutzer mache, bekomme ich die gleiche Meldung zurück:

Permission denied

Was ist das Problem?

Klopf! Klopf! Alle schon im Lockdown?