Zum Inhalt der Seite gehen


Probleme mit Relay (und vermutlich weitere Noob-Schwierigkeiten)


!Friendica Support

Hello all (sofern hier gegrüßt wird). Schon jetzt vielen Dank für Verständnis und Geduld.

Ich habe eine eigene Friendica-Instanz aufgesetzt, weil ich mich in keiner existierenden wiedergefunden habe (und aus Interesse, da es ja nicht schwerer sein sollte als ein Wordpress zu installieren).

Es funktioniert soweit, allerdings kann ich keine relays hinzufügen. Ich komme mit der SSH auf den Server, aber schon "bin/console relay" liefert Fehlermeldungen. Vielleicht ist ein Anhaltspunkt, dass ich beim Aufruf eine "permission denied" bekomme, und erst bei 744 Berechtigungen für bin/console der Befehl ausgeführt wird.

Die Fehlermeldung entspricht dieser: https://github.com/friendica/friendica/issues/11499 , zuerst die deprecated und dann der Fatal error mit der selben line. Unterschiedliche PHP-Versionen scheinen aber keinen Unterschied zu machen bei mir.

Weitere Infos gerne - Merci schon einmal.

Friendica Support hat dies geteilt

Ah, I see the problem. In der Hosting-Oberfläche habe ich PHP7.4 eingestellt, aber php -v in der ssh gibt 8.1.7 (cli) zurück.

Friendica Support hat dies geteilt

Alright. Als Ahnungsloser habe ich einmal eine simple Version versucht, nämlich über alias + Pfad zu PHP Version die Version geändert. (php -v gibt andere Version aus)

Mit 8.02 und 7.4 kommen dieselben Fehlermeldungen. :/

Friendica Support hat dies geteilt

Ich schreibe die Schritte einmal genau:
Vorbereitung 1: alias php='/usr/local/php74/bin/php'
Vorbereitung 2: Über Filezilla die Berechtigung für bin/console auf 744 (sonst kommt "permission denied")

Versionstest (falls das was hilft) + Fehler:
bash-4.4$ php -v
PHP 7.4.30 (cli) (built: Jun 14 2022 12:37:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with the ionCube PHP Loader + ionCube24 v11.0.1, Copyright (c) 2002-2022, by ionCube Ltd.
    with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies

bash-4.4$ bin/console relay

Deprecated: Return type of Friendica\App\Page::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/App/Page.php on line 128

Deprecated: Return type of Friendica\App\Page::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/App/Page.php on line 145

Deprecated: Return type of Friendica\App\Page::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/App/Page.php on line 165

Deprecated: Return type of Friendica\App\Page::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/App/Page.php on line 182

Deprecated: Return type of Friendica\Model\Log\ParsedLogIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/Model/Log/ParsedLogIterator.php on line 205

Deprecated: Return type of Friendica\Model\Log\ParsedLogIterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/Model/Log/ParsedLogIterator.php on line 163

Deprecated: Return type of Friendica\Model\Log\ParsedLogIterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/Model/Log/ParsedLogIterator.php on line 194

Deprecated: Return type of Friendica\Model\Log\ParsedLogIterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/Model/Log/ParsedLogIterator.php on line 216

Deprecated: Return type of Friendica\Model\Log\ParsedLogIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /solchefreu.de/httpdocs/friendica/src/Model/Log/ParsedLogIterator.php on line 180

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /solchefreu.de/httpdocs/friendica/src/Database/Database.php on line 108

Fatal error: Uncaught Exception: Missing database structure config file static/dbstructure.config.php in /solchefreu.de/httpdocs/friendica/src/Database/DBStructure.php:306
Stack trace:
#0 /solchefreu.de/httpdocs/friendica/src/Database/Database.php(87): Friendica\Database\DBStructure::definition('/var/www/vhosts...', false)
#1 [internal function]: Friendica\Database\Database->__construct(Object(Friendica\Core\Config\ValueObject\Cache), Object(Friendica\Util\Profiler), Object(Psr\Log\NullLogger))
#2 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(132): ReflectionMethod->invokeArgs(Object(Friendica\Database\Database), Array)
#3 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(96): Dice\Dice->Dice\{closure}(Array, Array)
#4 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(247): Dice\Dice->create('Friendica\\Datab...', Array, Array)
#5 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(149): Dice\Dice->Dice\{closure}(Array, Array)
#6 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(96): Dice\Dice->Dice\{closure}(Array, Array)
#7 /solchefreu.de/httpdocs/friendica/bin/console.php(36): Dice\Dice->create('Psr\\Log\\LoggerI...')
#8 {main}
  thrown in /solchefreu.de/httpdocs/friendica/src/Database/DBStructure.php on line 306
#1 #2 #3 #4 #5 #6 #7 #8

Friendica Support hat dies geteilt

Aha, faszinierend! Nur noch der Fatal error übrig!

bash-4.4$ php bin/console.php relay

Fatal error: Uncaught Exception: Missing database structure config file static/dbstructure.config.php in /solchefreu.de/httpdocs/friendica/src/Database/DBStructure.php:306
Stack trace:
#0 /solchefreu.de/httpdocs/friendica/src/Database/Database.php(87): Friendica\Database\DBStructure::definition('/var/www/vhosts...', false)
#1 [internal function]: Friendica\Database\Database->__construct(Object(Friendica\Core\Config\ValueObject\Cache), Object(Friendica\Util\Profiler), Object(Psr\Log\NullLogger))
#2 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(132): ReflectionMethod->invokeArgs(Object(Friendica\Database\Database), Array)
#3 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(96): Dice\Dice->Dice\{closure}(Array, Array)
#4 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(247): Dice\Dice->create('Friendica\\Datab...', Array, Array)
#5 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(149): Dice\Dice->Dice\{closure}(Array, Array)
#6 /solchefreu.de/httpdocs/friendica/vendo in /solchefreu.de/httpdocs/friendica/src/Database/DBStructure.php on line 306
#1 #2 #3 #4 #5 #6

Friendica Support hat dies geteilt

PS: habe nachgeschaut, static/dbstructure.config.php existiert auf dem Server.

Friendica Support hat dies geteilt

My bad - done!

Friendica Support hat dies geteilt

Sorry, die unterschiedliche PHP-Version in der Shell geht auf das Konto des Hosters. Ich hatte alles auf 7.4 gesetzt, weil das mein Eindruck war, dass es da auf jeden Fall laufen sollte? Besser 8?

Friendica Support hat dies geteilt

Bin ich! Hm, dachte grade einen Moment, es könnte an der "Alias-Lösung" liegen, dass die ja den Ordner wechselt. Aber derselbe Fehler ist ja (zwischen den "deprecated") auch mit PHP 8.1 aufgetaucht.

Friendica Support hat dies geteilt

Ah, doch nicht, grade nochmal ausprobiert. Ich dachte, als ich alias php='/usr/local/php74/bin/php' probiert hätte, wäre ich am Ende im entsprechenden Ordner gewesen in der Shell, aber dem ist nicht so.

Friendica Support hat dies geteilt

... selbes Ergebnis. :(

Friendica Support hat dies geteilt

... ich habe einmal alles auf 7.4 gesetzt, weil es so klang dass das auf jeden Fall klappen sollte, aber 8 ebenfalls getestet.

Friendica Support hat dies geteilt

... d.h. der Zwischenstand ergibt: Ich habe vermutlich irgendwie ein Problem mit den Pfaden, und es hat überhaupt nichts mit den PHP-Versionen zu tun? Hätte jemand noch eine Idee, wo ich das Problem angehen könnte?

Friendica Support hat dies geteilt

php74 macht bei mir nichts. Wenn ich es richtig sehe, dann ist bei mir der Pfad auch der Befehl:
bash-4.4$ /usr/local/php74/bin/php -v führt zu
PHP 7.4.30 (cli) (built: Jun 14 2022 12:37:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with the ionCube PHP Loader + ionCube24 v11.0.1, Copyright (c) 2002-2022, by ionCube Ltd.
    with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies


Also mache ich:
bash-4.4$ /usr/local/php74/bin/php /solchefreu.de/httpdocs/friendica/bin/console.php relay

Und erhalte den Fehler.
Fatal error: Uncaught Exception: Missing database structure config file static/dbstructure.config.php in /solchefreu.de/httpdocs/friendica/src/Database/DBStructure.php:306
Stack trace:
#0 /solchefreu.de/httpdocs/friendica/src/Database/Database.php(87): Friendica\Database\DBStructure::definition('/var/www/vhosts...', false)
#1 [internal function]: Friendica\Database\Database->__construct(Object(Friendica\Core\Config\ValueObject\Cache), Object(Friendica\Util\Profiler), Object(Psr\Log\NullLogger))
#2 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(132): ReflectionMethod->invokeArgs(Object(Friendica\Database\Database), Array)
#3 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(96): Dice\Dice->Dice\{closure}(Array, Array)
#4 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(247): Dice\Dice->create('Friendica\\Datab...', Array, Array)
#5 /solchefreu.de/httpdocs/friendica/vendor/level-2/dice/Dice.php(149): Dice\Dice->Dice\{closure}(Array, Array)
#6 /solchefreu.de/httpdocs/friendica/vendo in /solchefreu.de/httpdocs/friendica/src/Database/DBStructure.php on line 306


Wenn ich einfach nur php nehme, dann zeigt die Version 8.1.7 UND es gibt weitere Fehlermeldungen ("Deprecated"), daher vermute ich eigentlich, dass hier schon php 7.4 läuft.

Friendica Support hat dies geteilt

Es kommt auch bei mir kein Ergebnis zurück. Habe auch sonst herumgesucht, aber finde nirgendwo falsche Pfade, auch wenn es danach riecht. Hach, ich hab einfach zu wenig Ahnung.

Friendica Support hat dies geteilt

Ich habe noch einmal etwas in den Configs herumgestochert und etwas ausprobiert: Der Basepath in der config/local.config.php enthält bei mir einen langen Provider-"Vorspann" (/var/www/vhosts....). Wenn ich diesen entferne, dann scheint die console.php zu funktionieren mit /usr/local/php74/bin/php bin/console.php - also ein Pfad-Problem, wie @Michael Vogel oben vermutet.

Dann zeigen sich nur zwei Folgeprobleme:
1. Zum einen funktioniert mit dem gekürzten Basedir die eigentliche Seite nicht mehr.

2. Zum anderen kann ich trotzdem keinen relayserver hinzufügen (z.B. /usr/local/php74/bin/php bin/console.php relay add https://relay.libranet.de/actor --> couldn't be added).

Friendica Support hat dies geteilt