f.haeder.net

cp hoelzchen friendica (via ActivityPub)

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.
This entry was edited (6 months ago)
cp hoelzchen friendica (via ActivityPub)
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
#5 #2 #1 #3 #4 #6
This entry was edited (6 months ago)
@cp hoelzchen Oh, bitte editiere deinen Post und Kommentar und verwende den code-Tag, um Logbuchmeldungen zu formatieren.
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
My bad - done!
Friendica Support reshared this.
Michael Vogel friendica (via ActivityPub)
Dann stimmt etwas mit Deinen Pfaden nicht. Bist Du im Ordner /solchefreu.de/httpdocs/friendica wenn Du es aufrufst?
This entry was edited (3 months ago)
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
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 reshared this.
Michael Vogel friendica (via ActivityPub)
Was wechselt den Ordner?
This entry was edited (3 months ago)
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
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 reshared this.
Michael Vogel friendica (via ActivityPub)
Du kannst auch auch /usr/local/php74/bin/php console.php versuchen.
This entry was edited (3 months ago)
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
... selbes Ergebnis. :(
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
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.
This entry was edited (6 months ago)
Michael Vogel friendica (via ActivityPub)
Im Moment unterstützen wir bis 8.0.
This entry was edited (3 months ago)
cp hoelzchen friendica (via ActivityPub)
PS: habe nachgeschaut, static/dbstructure.config.php existiert auf dem Server.
cp hoelzchen friendica (via ActivityPub)
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
#5 #2 #1 #3 #4 #6 #7 #8
This entry was edited (6 months ago)
Michael Vogel friendica (via ActivityPub)
Mach mal php bin/console.php relay
This entry was edited (3 months ago)
cp hoelzchen friendica (via ActivityPub)
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. :/
This entry was edited (6 months ago)
Friendica Support reshared this.
Michael Vogel friendica (via ActivityPub)
Dann poste hier mal genau die Fehlermeldungen.
This entry was edited (3 months ago)
Michael Vogel friendica (via ActivityPub)
Welche PHP-Version benutzt Du auf der Kommandozeile?
This entry was edited (3 months ago)
@cp hoelzchen Bitte habe immer nur EINE PHP-Version installiert, das macht das Debuggen einfacher. Ja, manchmal muss noch alte Software alte PHP-Versionen benutzen und neue Software laeuft mit der alten Version von PHP nicht mehr. :-(
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
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 reshared this.
@cp hoelzchen Ah, das ist Mist, dass du es nicht wirklich beeinflussen kannst. Ich selber habe PHP 8 nicht, sondern 7:

Server: PHP 7.3.29-1~deb10u1 (cli)
Home: PHP 7.4.21 (cli)

Meine Erfahrung bis jetzt hat gezeigt, dass zu neue Major-Releases (5/7/8) einfach noch zu neu sind und oefters ich besser mit einer etwas aelteren Version bedient war. :-)

Und um deine Frage zu beantworten: Ja, unter 7.4 sollte es definitiv klappen.
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
... 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 reshared this.
cp hoelzchen friendica (via ActivityPub)
... 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 reshared this.
@cp hoelzchen Wenn ich es richtig verfolgt habe, zeigt php auf eine 8er Version? Da kannst du mit einem Alias auch wenig machen. Die meisten Linux-Distributionen haben dann Versionsnummern im Dateinamen mit drinne, also musst du mit [cdoe]php7.4 ./bin/console relay[/code] aufrufen (falls es den Namen gibt). Bei mir z.B. gibt es php7.3.
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
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.
This entry was edited (6 months ago)
Friendica Support reshared this.
@cp hoelzchen Bitte gucke mal folgenden Wert nach:
SELECT `v` FROM `config` WHERE `cat`='system' AND `k`='basepath'
Falls da eine Zeile kommt, ist diese eventuell falsch gesetzt. Bitte dann diese einfach loeschen. Bei mir kommt kein Ergebnis und der Basispfad wird auch sauber erkannt.

Ich wollte hiermit nur eine weitere Fehlerquelle ausklammern, dass in der Datenbank noch ein alter/falscher Wert steht.
Friendica Support reshared this.
cp hoelzchen friendica (via ActivityPub)
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 reshared this.
cp hoelzchen friendica (via ActivityPub)
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 reshared this.
@cp hoelzchen@Michael Vogel Ich denke mal, dass dein Hoster wo Mist gebaut hat. Es kann nicht sein, dass wenn du ueberall 7.4 einstellst, dennoch 8.x kommt. Aber irgendwie muessen wir das geloest bekommen.
Friendica Support reshared this.