Falls der gewählte Webhoster Plesk und SSH anbietet ist diese Anleitung passender: Volkszaehler bei einem Webhoster mit Plesk installieren
Nicht jeder hat vielleicht einen eigenen 24/7 Server für den Volkszähler zu Verfügung oder es nervt die Performance eines low-cost LAMP Ansatzes (z.B. auf RaspberryPi). Wer bei einer Monatsanzeige schon mal gefühlte Stunden gewartet hat, sehnt sich nach mehr Leistung. Ein Lösungsansatz kann eine Webhoster Implementierung sein. Für einen erträglichen Monatsbetrag (geht so ab 1,99€/Monat los) bekommt man eine eigene Domain und ein paar GigaByte Webspace. Diese preiswerten Angebote bieten allerdings keinen root- oder SSH-Zugang und somit ist die Einrichtung des Volkszählers nicht über den Standardweg zu erledigen. Mit ein paar Handmodifikationen lässt sich das aber in Griff kriegen.
Für unsere Installation auf dem Webhoster gelten die gleichen Bedingungen für den VZ wie für jeden anderen Server. Auf die folgenden Punkte sollte man bei der Auswahl des Hosters achten:
Das folgende Beispiel bezieht sich auf Hosteurope. Die folgenden Schritte beschreiben die Installation dort, ist aber sicher auch für andere Webhoster gültig.
Falls man nicht schon ein lauffähiges System am Start hat, sollte man z.B. über eine virtuelle Maschine den VZ gemäss der Anleitung installation aufsetzen. Schließlich haben wir auf dem Webhoster keinen root Zugang.
Besonders wichtig dabei ist, dass die von VZ verwendeten Bibliotheken einmalig lokal mittels
composer install
eingerichtet werden (dieser Schritt ist im Installationskript enthalten).
Läuft alles wie erwartet kann der Umzug losgehen.
Vorab: Sollte das System noch nicht laufen, kann man den Export mit Standardeinstellungen machen. Sollten aber schon Daten in die lokale DB geloggt werden empfiehlt sich folgendes:
Zunächst einmal legt man sich eine Datenbank über das Backend des Webhosters an, ggf. nutzt man die einzig vorhandene. Mit den zugehörigen Daten loggt man sich in das phpMyAdmin des Hosters (oder das selbst auf dem Webspace installierte) ein, um die Schemata einzuspielen. Am einfachsten geht dies, indem man mit dem phpMyAdmim folgende Schritte durchführt:
Das ganze dann noch einmal für die restlichen Tabellen, hier allerdings den Haken bei „Daten“ setzen!
Im phpMyAdmin des Hosters werden diese beiden Dateien dann importiert.
Vorbedingung ist hier ein entsprechendes angelegtes Verzeichnis:
/was/auch/immer/vz.domain.tld
und die darauf zeigende Subdomain http://vz.domain.tld/ → /was/auch/immer/vz.domain.tld
(Anmerkung: /was/auch/immer/
ist nicht notwendigerweise ein absoluter Pfad, sondern in der Regel relativ zum Root-Pfad des Webspace)
Hier machen wir es uns ganz einfach:
Wir kopieren per ftp-Befehl den gesamten Inhalt von /var/www/volkszaehler.org/
in ein Verzeichnis unserer Wahl beim Hoster (z.B. /was/auch/immer/vz.domain.tld/
)
Wir packen das Zeug per tar czf vz.tgz /var/www/volkszaehler.org/*
, laden diese Datei hoch und basteln uns eine zweite (PHP-)Datei (uncompress.php
), die per System Call das ganze wieder auspackt:
<?php echo '<pre>'; system('tar xvzf vz.tgz', $retval); echo '</pre>'; echo '<br/>'; echo '<br/>'; echo '<pre>'; echo 'Absoluter Pfad:'; echo '<br/>'; system('pwd', $retval); echo '</pre>'; ?>
Die können wir dann mit einem einfachen Browseraufruf http://vz.domain.tld/uncompress.php
aufrufen.
Die lokale Installation im Image nutzt den PPM als Webserver. Beim Hoster wird das nicht gehen und stattdessen Apache nutzen. Das heißt man muss die spezifischen Anpassungen rückgängig machen. Auch auf den Live-Server wird man eher keinen Zugriff haben (wollen).
title: 'Local (default)', url: 'api' //live: 8082
Proxy auskommentieren:
<IfModule mod_proxy.c> # RewriteEngine On # RewriteRule ^middleware(.php)?(/.*)? http://localhost:8080$2 [P] # RewriteRule ^api(/.*)? http://localhost:8080$1 [P] </IfModule>
... db: // Benutzername der Datenbank (wird vom Webhoster vergeben) user: webxxx; ... // zugehöriges Password password: password; ... // Name der Datenbank (auch vom Webhoster beim Anlegen vergeben) dbname: usr_webxxx_1; ... // das gleiche noch mal für Admin admin: user: webxxx password: password ...
Das Ergebnis ist dann über
http://vz.domain.tld/
erreichbar.
Fertig sind wir aber noch nicht. Jetzt folgt die Anpassung (bzw. Erstellung) der 'vzlogger.conf' auf dem System, das die Daten senden soll.
Falls der vzlogger
schon brav seinen Dienst verrichtet, braucht man lediglich in der Konfigdatei
"middleware": "http://localhost/middleware.php",
den Middlewarepfad auf http://vz.domain.tld/middleware.php
anpassen, den Prozess per systemd
stoppen und neu starten.
Ansonsten muss die ganz normale Einrichtung gemacht werden: Kanäle in der Middleware anlegen, UUIDs kopieren, in die Konfig eintragen, etc…
Was ist aber nun mit den alten Daten vom alten System? Nun: Hier bringt phpMyAdmin eine Nettigkeit mit:
Klickt im phpMyAdmin auf den Home-Button, dann auf den Reiter Gleiche ab
, wählt als Zieldatenbank Aktueller Server
und gebt bei Quell-Datenbank
die Daten der alten Datenbank an:
Voraussetzung ist natürlich ein (temporäres) Port-Forwarding von Port 3306 auf den alten Server, sofern der im Heimnetz steht…