wallabag auf shared hosting installieren

  • Hallo.

    Ich wollte nur kurz beschreiben, wie ich Wallabag auf dem netcup Webhosting (Shared Hosting) installiert habe. Es läuft bis jetzt ohne Probleme, soweit ich das sehen kann.

    Ich erstelle eine Subdomain (z.B. wallabag.mydomain.tld) und ein entsprechendes Let's Encrypt SSL-Zertifikat. Auf der Sudomain läuft i.M. PHP 7.3.15 (hab irgendwo gelesen, wallabag hätte noch Probleme mit PHP 7.4).

    Und im WCP noch eine mySQL-Datenbank für Wallabag erstellen.


    Im Shared Hosting sind Befehle wie make nicht verfügbar. Doch zum Glück bieten die Entwickler von Wallabag fertige binary Pakete an, die bereits alle ansonsten zusätzlich zu installierenden Abhängigkeiten beinhalten.
    Die normale URL zum aktuellen Paket https://wllbg.org/latest-v2-package scheint i.M. nicht zu funktionieren (SSL-Zertifikatsprobleme), aber es gibt noch eine andere:
    https://static.wallabag.org/releases

    Dort den Link zur aktuellsten Version (i.M. Version 2.3.8) kopieren und dann bei netcup :
    cd wallabag.mydomain.tld
    wget https://static.wallabag.org/releases/wallabag-release-2.3.8.tar.gz

    Entpacken mit --strip-components=1, um nicht in einen Unterordner zu entpacken.
    tar xvf wallabag-release-2.3.8.tar.gz --strip-components=1

    Dann z.B. mit nano eine .htaccess Datei erstellen (immer noch im Ordner wallabag.mydomain.tld) mit folgendem Inhalt:

    RewriteEngine On
    # Rewrite auf https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{ENV:HTTPS} !=on
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

    # wallabag Regeln
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /web/$1 [QSA,L]

    # Schutz für .htaccess Datei
    <Files ~ "^.*\.([Hh][Tt][Aa])">
    order allow,deny
    deny from all
    satisfy all
    </Files>
    Options -Indexes


    Dann z.B. mit nano die

    Parameter in der Datei app/config/parameters.yml anpassen.

    Den Werten, die ihr anpassen müsst, habe ich mal ein > vorangestellt:


    parameters:
    database_driver: pdo_mysql
    database_driver_class: null
    > database_host: 10.11.12.133
    > database_port: 3811
    > database_name: k12345_DATENBANKNAME
    > database_user: k12345_BENUTZERNAME
    > database_password: Datenbank-BenutzerPasswort
    database_path: null
    database_table_prefix: wallabag_
    database_socket: null
    database_charset: utf8mb4
    > domain_name: https://wallabag.mydomain.tld
    mailer_transport: smtp
    > mailer_host: mx1a2b.netcup.net
    > mailer_user: Mailkonto-Benutzername
    > mailer_password: Mailkonto-BenutzerPasswort
    locale: en
    > secret: hier_30-Zeichen-langes-Secret-wählen
    twofactor_auth: true
    > twofactor_sender: no-reply@mydomain.tld
    > fosuser_registration: false
    fosuser_confirmation: true
    > from_email: no-reply@mydomain.tld
    ...

    Dann im Ordner der Subdomain (wallabag.domain.tld) den wallabag-Installationsdialog starten mit

    php bin/console wallabag:install -e=prod


    Die Frage nach einem Datenbank-RESET und dem Erstellen eines Adminstrator-Benutzers mit YES beantworten.
    Für den Admin-Benutzer neuen Benutzernamen, Passwort und Emailadresse angeben. Sind nicht identisch mit irgendwelchen vorherigen Angaben.

    Dann vielleicht noch diesen Befehl ausführen (auch wenn ich nicht sicher bin, dass er unbedingt notwendig ist):
    php bin/console cache:warmup -e=prod


    Und jetzt kommts:

    Immer wenn ihr Änderungen an der Konfiguration vornehmt (z.B. in der Datei app/config/parameters.yml), müsst ihr anschließend den Cache löschen.


    Dafür gibt es zwar einen eigenen Befehl php bin/console cache:clear -e=prod,

    ABER anscheinend löscht der Befehl nicht oder nicht zuverlässig den Cache.


    Wenn der Cache aber mit
    rm -rf var/cache/*

    (ausgeführt im Ordner der Subdomain) gelöscht wird, funktioniert Wallabag.

    Das wars. :)

  • P.S. Damit beim Speichern der Artikel auch deren Bilder (lokal) gespeichert werden, in den Einstellungen des wallabag-Admin-Benutzers unter Internal Settings > Misc bei Download images locally eine 1 eintragen und die Änderung unten mit Save sichern.

  • Hey!


    Erst mal danke für die Anleitung, das hat mir sehr geholfen.
    Ich habe das den geschilderten Schritten entsprechend durchgeführt und die Werte in die parameters.yml geschrieben. Soweit, so gut.

    Allerdings bekomme ich dann beim Eingeben des neuen Benutzerpassworts folgende Meldung: "stty: Kommando nicht gefunden."

    Das Setup kann ich trotzdem erfolgreich abschließen. Jedoch bekomme ich beim Aufruf der entsprechenden Domain nur eine leere Seite. Auch die Umleitung wird nicht durchgeführt.

    Gab es das Problem auch bei Ihnen und falls ja, was war denn die Lösung?

    Danke und viele Grüße

    Fa

  • Hey @Fa!


    Ich erhielt damals andere Fehlermeldungen, die aber nicht so wichtig waren und die Funktion von wallabag auf netcup nicht beeinträchtig haben.

    Ohne zu wissen, welchen netcup Webhosting-Tarif du nutzt, fällt mir zu den beschriebenen "Symptomen" i.M. Folgendes ein:


    Bei mir haben zu lange PW oder solche mit Sonderzeichen bei der ein oder anderen Webanwendung schon mal Probleme verursacht. Meist nehme ich dann zunächst ein 20 Zeichen langes PW ohne Sonderzeichen. Falls das funktioniert, kann man sich ja immer noch an längere/komplexere PW herantasten.


    Ich gehe mal davon aus, daß PHP 7.3 für die wallabag Domain in WCP aktiviert wurde und die .htaccess 644 Rechte hat.

    Dann könnte die leere Seite mit dem Cache zusammenhängen. Einfach nochmal im Ordner, in dem wallabag liegt, den Befehl rm -rf var/cache/* ausführen, nachdem alle Änderungen an der Konfiguration abgeschlossen wurden.


    Viel Glück!

    Grüße


    N.

  • Habe festgestellt, dass beim Ausführen der php Befehle php in Version 7.2.x verwendet wird.
    Jedoch kann man auch spezielle Versionen ausführen, daher habe ich den Befehl entsprechend angepasst:

    Code
    1. /usr/local/php73/bin/php bin/console wallabag:install -e=prod

    Damit kam zwar immer noch der Fehler bei der Passwortabfrage, allerdings funktioniert es nun hinterher.

    Danke für die Hilfe!