Tiny Tiny RSS Installation auf Webhosting

  • Hallo nochmal,


    ältere php Versionen habe ich versucht, die sind aber alle gescheitert daran:

    Code
    bash-4.4$ /usr/local/php71/bin/php reader.mydomain.de/tt-rss/update.php --update-schema
    
    Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.2.0". You are running 7.1.33. in /reader.mydomain.de/tt-rss/vendor/composer/platform_check.php on line 24


    Kein Wunder, denn in dem platform_check.php steht an der Stelle:

    Code
    if (!(PHP_VERSION_ID >= 70200)) {
    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.0". You are running ' . PHP_VERSION . '.';
    }


    Version 7.3 bringt dieses Problem:

    Code
    bash-4.4$ /usr/local/php73/bin/php reader.mydomain.de/tt-rss/update.php --update-schema
    <pre>Exception while creating PDO object:could not find driver</pre>bash-4.4$


    Version 7.4 und 8 laufen ohne Probleme durch. Rufe ich meine rss Seite auf, sehe ich aber dieses Problem:

    Code
    Exception while creating PDO object:could not find driver
    Code
    Exception while creating PDO object:could not find driver


    Hier wird noch beschrieben, wie man die Datenbank manuell verbindet:

    https://lifehacker.com/how-to-…er-with-tiny-tiny-5992404


    aber ein Blick in die Datei ttrss_schema_mysql.sql zeigt mir, dass diese leer ist :(


    Hat noch jemand eine Idee, wie ich das zum Laufen bekomme?

  • Wurde in der Datenbank etwas geschrieben? Vielleicht gibt es eine sql Datei welche man per phpMyAdmin einlesen könnte?

    Wenn es im SSH mit PHP7.4 und PHP8 durchläuft würde ich das Webhosting auch auf eines der beiden Version umstellen.

  • Naja, die Betreiber des Projekt geben ja bereits den Hinweis man soll Docker/Compose verwenden.


    Eine manuelle Installation mag funktionieren, setzt dann aber voraus, dass man mit der Materie PHP, MySQL, Git, etc. vertraut ist und sich durch den Blick in Logs, etc selbst zu helfen weiß.


    Gerade das Setup bei einem Massenhoster macht die Sache nicht einfacher (fehlende Module, spezielle Konfigurationen).


    Der Weg ist nicht unmöglich, aber jeder von uns müsste das Projekt ev selbst mal aufsetzen um helfen/genauere Anleitung geben zu können.


    Woher kommt den das Installationspaket? Direkt aus Git wie beschrieben?

    SQL Schema habe ich hier gefunden https://git.tt-rss.org/fox/tt-…ster/sql/mysql/schema.sql

  • bash-4.4$ /usr/local/php73/bin/php reader.mydomain.de/tt-rss/update.php --update-schema
    <pre>Exception while creating PDO object:could not find driver</pre>bash-4.4$

    Ich habe das eben mal nachgestellt und siehe an, die Werte in der Config sind case sensitive (siehe hier). Statt MYSQL musst du mysql eintragen, dann findet er auch den korrekten pdo-Treiber und legt das DB-Schema an.


    in der config.php muss es also konkret so heißen:

    putenv('TTRSS_DB_TYPE=mysql');


    Hier mein Test mit MYSQL:

    Code
    bash-4.4$ /usr/local/php74/bin/php ./update.php --update-schema
    <pre>Exception while creating PDO object:could not find driver</pre>bash-4.4$ ^C


    Und danach mit mysql:

    Code
    bash-4.4$ /usr/local/php74/bin/php ./update.php --update-schema
    [15:44:32/11112] Lock: update.lock
    [15:44:32/11112] Type 'yes' to continue.
    yes
    [15:44:35/11112] Loading base database schema...
    [15:44:36/11112] Migration finished, current version: 145

    Ist schon blöd, wenn selbst die offizielle ANleitung, trotz deprecated, hier zu ungenau ist.


    Der Rest sollte ja dann durchlaufen. Ansonsten nochmal Bescheid geben, noch hab ich die Testinstallation nicht gelöscht. :)

  • How cool is that? Das war es. Auch wenn ich mich mit dem Setzen eines One Time Passwords ausgesperrt habe beim Konfig anlegen: es funktioniert. Ich muss es halt nochmal installieren, aber es klappt. Vielen Dank für deine Hilfe.

  • Vielleicht könnt ihr mir nochmals kurz helfen, ich kann das OTP via eines SQL Kommandos zurücksetzen:

    SQL
    UPDATE ttrss_users SET otp_enabled = false WHERE login = 'you'

    Wie muss ich denn dieses Kommando absetzen, so dass es bei der richtigen Datenbank ankommt?

  • Danke nochmal DerRene, das hätte ich alleine nicht herausgefunden. Wie hast du das entdeckt, dass man das klein schreiben muss?


    Ich habe nun meine Feeds eingelesen. Das ging schnell. Das Wichtigste allerdings funktioniert nicht: Das Update der Feeds. Die werden einfach nicht geladen. Was ist das nun schon wieder?

  • OK, hier steht noch etwas dazu, wie man das Ganze Updated:

    click


    Ich habe das Kommando:

    Code
    php ./update_daemon2.php

    abgesetzt und die Aktualisierung ist erfolgt. Allerdings kommt das Kommando nicht zu ende. Ich nehme an, dass es ständig läuft, so wie dieser Text suggeriert:

    Script doesn’t daemonize (e.g. detach from the terminal).


    D. h., sobald ich die Shell schliesse oder den Rechner runterfahre, dann geht das Update nicht mehr, oder?


    Muss ich dann der Anleitung unter:

    Running under systemd

    folgen?

  • Wie hast du das entdeckt, dass man das klein schreiben muss?

    Die Fehlermeldung ist hier etwas schwach. Habe mir daher den Quellcode im tt-git angesehen und die Stelle rausgesucht, wo der Wert abgefragt wird (hab ich sogar extra verlinkt zum selber nachschlagen ^^ --> https://git.tt-rss.org/fox/tt-…r/classes/config.php#L558). Daraufhin genau so geschrieben, wie es im Quellcode steht und es funzte auf Anhieb.


    Running under systemd

    Auf systemd hast du im Webhosting keinen Zugriff, das wird also nichts.


    Die anderen beiden Punkte dürften aber sehr wohl zum Erfolg führen:

    "Periodical updating from crontab, using update script"

    Dafür könntest du im WCP einen Cronjob anlegen, ähnliche Syntax wie beim Install-Script.

    Siehe Netcup-Wiki: https://www.netcup-wiki.de/wik…g#Aufgabe_hinzuf.C3.BCgen


    Oder du aktivierst

    "Simple background updates"

    Dann wird es offenbar mit jedem Aufruf der Webseite getriggert. Besuchst du die Webseite länger nicht, gibts dann natürlich auch keine Updates. Ich würde die Cronjob-Variante wählen und z.B. alle 15 Minuten oder so updaten lassen.

  • OK, es läuft echt schon viel. Vielen Dank nochmal. Auf der tt-rss Seite werden meine Feeds angezeigt, ich bekomme aber immer die Meldung:


    Der Update-Daemon aktualisiert keine Feeds.


    Ich hatte ja auf der Konsole den Befehl

    Code
    php ./update_daemon2.php

    ausgeführt. Die Konsole ist mittlerweile geschlossen, aber scheinbar versucht die Webseite immer wieder etwas über den Dämon zu machen. Kann das sein? Kann ich das stoppen?


    Parallel dazu habe ich eine Aufgabe angelegt wie du empfohlen/verlinkt hast. Aktualisieren tut das aber meine Feeds nicht. Vielleicht hängt das aber auch mit den obigen Problem zusammen.

  • Im Verzeichnis lock steht etwas zu dem daemon. Meint ihr, ich soll das einfach löschen? Ist das das Problem, dass das Update über die Aufgabe nicht läuft, weil die Seite glaubt, der Dämon würde laufen?


  • Also der Daemon wird dich ja im Shared Hosting nicht weit bringen. Daher Cronjob einrichten mit zB


    Code
    Aufgabentyp: PHP-Skript ausführen
    Skriptpfad: pfad_zu_tinyrss/update.php
    mit Argumenten: '--feeds'
    Zu verwendende PHP-Version: 8.0
    Ausführen: Cron-Stil */15 * * * *

    Wichtig ist in der config.php ebenfalls die PHP Executable anzugeben:

    Code
    putenv('TTRSS_PHP_EXECUTABLE=/usr/local/php80/bin/php');

    TinyTinyRSS läuft hier im Webhosting ohne Probleme, wenn man Stolpersteine einmal umschifft hat.

  • Hallo,


    das ist es ja, den Cronjob habe ich gestartet. Davor hatte ich aber auf der Shell den Daemon gestartet und mich gefreut, dass es aktualisiert. Sobald die Shell zugemacht wurde, wurde nicht mehr aktualisiert, auch nicht über den Cron-Job. Meine Vermutung: das Starten des Dämons hat bei den Webscripten irgendeine Einstellung gesetzt, die es verhindert, dass das Update über den Cronjob funktioniert.


    Allerdings wird hier beschrieben (click), dass man den Dämon so stoppen soll:

    Code
    pgrep './update.php' | xargs kill -9


    Das ist denke ich das Gleiche, wie die ssh-Shell schliesen, oder?

    Hier wird es auch mit einem kill beschrieben (click:(

    Code
    *ExecStop=/bin/kill -15 $MAINPID*



    Vielleicht kennt sich jemand mit php Scripting aus und kann das update_daemon2.php Script mal kurz sichten, was da angelegt wird??? Mir fehlen die Programmierkenntnisse. Es ist hier zu finden:

    click

  • Also ich habs mir jetzt nicht bis ins letzte Detail angeschaut, aber soweit ich das sehe, verhindert die Existenz dieser Dateien im lock-Verzeichnis, dass ein weiterer Updateprozess parallel gestartet werden kann. Da die Dateien noch da sind und kein Prozess mehr läuft, dürfte es sicher nicht schaden, diese Dateien einfach mal zu löschen und es dann nochmal zu probieren.

  • Leider hat das Löschen nichts gebracht. Zwei Auffälligkeiten, die ich schwer einordnen kann, gibt es:


    1. Das Kommando auf der ssh-Shell erzeugt:

    2. Unabh. von der ssh-Shell wird auf dem Server ja eine eigene php Version hinterlegt. Gerade eben habe ich eine Email bekommen vom Netcup Server (wahrscheinlich ein zweites Problem):

    Code
    Composer detected issues in your platform:
    Your Composer dependencies require a PHP version ">= 7.2.0". You are running 7.0.33-0+deb9u10.
    PHP Fatal error:  Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.2.0". You are running 7.0.33-0+deb9u10. in /var/www/vhosts/hosting107088.a2f09.netcup.net/reader.bernd-dotterweich.de/tt-rss/vendor/composer/platform_check.php on line 24
    Composer detected issues in your platform: