howto:installation_auf_webhoster
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
howto:installation_auf_webhoster [2013/02/03 20:47] – Links to howto:getstarted changed to software:middleware:installation r00t | howto:installation_auf_webhoster [2022/03/14 16:06] (aktuell) – Rewrite statt Redirect jau | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== |
===== Motivation ===== | ===== Motivation ===== | ||
- | 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 IOMEGA ICONNECT). 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, | + | 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, |
- | Diese preiswerten Angebote bieten allerdings keinen root Zugang und somit ist die Einrichtung des Volkszählers nicht über den Standardweg zu erledigen. | + | Diese preiswerten Angebote bieten allerdings keinen root-Zugang und somit ist die Einrichtung des Volkszählers nicht über den Standardweg zu erledigen. |
+ | |||
+ | <note important> | ||
===== Voraussetzungen ===== | ===== Voraussetzungen ===== | ||
+ | Im folgendem wird die Einrichtung bei [[https:// | ||
+ | |||
+ | Passen die hier erwähnten Schritte nicht haben wir noch eine andere Anleitung für Hosts die mit weniger PHP-Memory und ohne SSH daher kommen: [[/ | ||
+ | |||
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: | 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: | ||
- | * PHP 5.3 (ganz wichtig!, die PHP Version kann zum Glück bei einigen | + | * PHP (auf die passende [[software/ |
* MySQL (mindestens eine Datenbank muss erlaubt sein) | * MySQL (mindestens eine Datenbank muss erlaubt sein) | ||
- | | + | * PHP Skript Memory Limit min. 512M (sonst gibt es bei composer Probleme) |
- | * mysqldumper (dann können wir vorhandene Datenbanken einfacher auf den oder vom Webhoster transferieren) | + | * SSH oder Composer über Plesk |
- | | + | |
- | Meine Wahl fiel auf das Starter XXL Paket von [[http:// | + | |
- | ===== Vorbereitungen | + | ===== Subdomain |
- | 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 | + | In der Regel wird man auf dem Host noch ein bisschen mehr liegen haben wie nur den Volkszaehler. Daher legen wir uns erstmal eine Subdomain an.\\ |
- | Läuft alles wie erwarten kann der Umzug losgehen. | + | {{: |
+ | * Den Dokumentenstamm lassen wir erstmal wie vorgeschlagen. | ||
+ | * SSL aktivieren, etliche Browser zeigen unverschlüsselte Seiten nicht mehr direkt an. Dazu brauchen wir aber auch ein gültiges Zertifikat. [[https:// | ||
+ | * Unterstützung für Git aktivieren, die URL zum VZ-Repositiry '' | ||
+ | Das Git wird geclont, die Subdomain angelegt.\\ | ||
+ | {{: | ||
+ | Von hier ab navigieren wir zu den meisten Einstellungen. | ||
- | === Umzug der Daten === | + | ===== PHP ===== |
- | Mit Hilfe von '' | + | Richten |
+ | {{: | ||
+ | * PHP aktivieren | ||
+ | * Version ruhig so hoch wie möglich wählen. Leider ist bei aktuellen Version kein FPM mehr möglich, bei FastCGI gab es schon Probleme beim Redirekt durch den Webserver. | ||
+ | * '' | ||
- | === Umzug der Skripte | + | ===== Composer ===== |
- | Bei alfahosting | + | Wir müssen Composer (Paketmanager für PHP) installieren und ausführen. Dafür |
- | * ''/ | + | |
- | * ''/ | + | |
- | * ''/ | + | |
- | * ''/ | + | |
- | * ''/ | + | |
- | * '' | + | |
- | ===== Anpassungen ===== | + | ==== Plesk ==== |
- | Nun ist ein bisschen Tipp-Arbeit an den Skripten erforderlich. | + | Wie schon erwähnt gib es teilweise schon die Möglichkeit Composer per Klick einzubinden.\\ |
- | == ''/ | + | < |
- | <code> | + | {{: |
- | ... | + | Ist ziemlich selbsterklärend, |
- | // Benutzername (wird vom Webhoster vergeben) | + | {{: |
- | $config[' | + | <note important> |
- | ... | + | |
- | // zugehöriges Password | + | ==== SSH Zugang ==== |
- | $config[' | + | Wir richten uns einen Nutzer für SecureShell ein.\\ |
- | ... | + | {{: |
- | // Name der Datenbank | + | |
- | $config[' | + | * Am Ende der Seite (auf dem Bild abgeschnitten) stehen die URL über man z.B. per [[https://www.putty.org|Putty]] Zugang bekommt. |
- | ... | + | {{: |
- | // das gleiche noch mal für Admin | + | * Die Zugangsdaten entsprechend eintragen, in dem Fall [[https:// |
- | $config[' | + | * Einloggen |
- | $config[' | + | * Composer installieren und ausführen: |
- | ... | + | <code bash> |
- | // den absoluten Pfad zum /html Verzeichnis gibt es auch vom Webhoster | + | cd /tmp |
- | $config[' | + | curl -sS https://getcomposer.org/installer | php |
- | $config[' | + | mkdir /composer |
- | ... | + | mv composer.phar |
+ | chmod +x /composer/composer.phar | ||
+ | cd /volkszaehler | ||
+ | php /composer/composer.phar install | ||
</ | </ | ||
- | == ''/ | + | ===== Datenbank ===== |
- | < | + | Richten wir nun die Datenbank ein.\\ |
- | // Old: Alias / | + | {{:howto: |
- | Alias / | + | * Name wählen, der vordere Teil ist vom Hoster fest definiert. |
+ | * IP notieren, die brauchen wir gleich noch (bei Netcup kann auf die dargestellte IP nur innerhalb der Serverfarm zugegriffen werden, für Zugang von außen die Doku sichten). | ||
+ | * Als zugehörige Website die Subdomain wählen | ||
+ | * Username wählen, auch hier ist ein Teil vom Hoster definiert | ||
+ | * sicheres Passwort wählen | ||
+ | * Zugriffsteuerung belassen. Schränkt man auf lokale Verbindungen ein ist bei Netcup gar kein Datenbankzugriff mehr möglich. | ||
+ | Der automatisch erstellte User hat vollen Schreib- und Lesezugriff auf die neue, ihm zugewiesene Datenbank.\\ | ||
+ | {{: | ||
+ | Falls ein Abzug einer vorherigen Datenbank verfügbar ist kann man den an der Stelle direkt hochladen und importieren. | ||
- | // Old: < | + | ===== Config ===== |
- | < | + | Ist die Datenbank eingerichtet passen wir die VZ-Konfiguration darauf an. Über den Dateimanager '' |
- | ... | + | {{: |
- | </ | + | * IP-Adresse des Datenbankserves eintragen |
+ | * vollständigen Usernamen eintragen | ||
+ | * Passwort im Klartext eintragen | ||
+ | * vollständigen Datenbanknamen eintragen | ||
+ | * selben User mit Passwort nochmal eintragen für administrative Schreib- und Löschzugriffe | ||
+ | * Datei speichern als '' | ||
+ | {{: | ||
- | == ''/ | + | ===== Datenbank erstellen ===== |
- | < | + | Ist keine Datensicherung einer vorhergegangen Datenbank vorhanden müssen wir die Struktur noch erstellen.\\ |
- | ... | + | Dazu nochmal per SSH einloggen und doctrine ausführen. |
- | // change VZ path | + | < |
- | // old: define(' | + | cd /volkszaehler |
- | define(' | + | php bin/doctrine orm:schema-tool: |
- | ... | + | |
</ | </ | ||
+ | Schlägt der Schritt fehl liegt ein Fehler in der zuvor erstellten Konfigurationsdatei vor. | ||
- | == ''/ | + | An der Stelle können wir auch direkt die Tabellen für die Aggregation anlegen lassen |
- | Der folgende Part muss auskommentiert werden, da ''/ | + | < |
- | Sonst gibt es Probleme bei der Erstellung neuer Kanäle. | + | php /volkszaehler/bin/aggregate run -m full -l day -l hour -l minute |
- | < | + | |
- | ... | + | |
- | public static function init() { | + | |
- | // if (is_readable(' | + | |
- | // | + | |
- | // | + | |
- | // } | + | |
- | ... | + | |
</ | </ | ||
+ | < | ||
- | == '' | + | ===== Stammverzeichnis ===== |
- | Falls '' | + | Zum Abschluss passen wir das Stammverzeichnis der Subdomain an unsere Verzeichnisstruktur an.\\ |
- | Datei: ''/ | + | {{: |
- | < | + | Das Frontend sollte nun zur Verfügung stehen |
- | ... | + | Erscheint stattdessen eine Fehlermeldung wie\\ |
- | define('CACHE_DIR', | + | {{:howto: |
- | define(' | + | ist [[howto: |
- | define('MBTTF_DIR', | + | |
- | ... | + | ===== Rewrite? ===== |
+ | Etwas Schwierigkeiten macht bei Hostern gerne der Rewrite, aus Sicherheitsgründen sind unsere Möglichkeiten da recht eingeschränkt. Ein Ansatz das in Griff zu bekommen war bei PHP den FPM statt FastCGI zu nutzen. Der ist allerdings aus der Mode gekommen und wird teils nicht mehr angeboten.\\ | ||
+ | Funktioniert der Rewrite also nicht wie gewünscht besteht die Möglichkeit die Middleware umzukonfiguriern das sie weitestgehend ohne auskommt. Dazu in ''/ | ||
+ | <code js | /volkszaehler/htdocs/js/options.js> | ||
+ | url: 'api' | ||
+ | </code> | ||
+ | ändern zu: | ||
+ | <code js> | ||
+ | url: ' | ||
</ | </ | ||
- | ===== Ergebnis | + | ===== vzlogger |
- | Das Ergebnis ist dann über | + | Jetzt folgt die Anpassung (bzw. Erstellung) der ' |
- | < | + | |
- | http://< | + | Falls der '' |
+ | < | ||
+ | den Middlewarepfad auf ''< | ||
+ | |||
+ | ===== Aggregation ===== | ||
+ | Auch wenn beim Hoster die erforderliche Leistung bei Anfragen über große Zeiträume kein Problem darstellt ist es dennoch nicht verkehrt die Aggregation der Middleware einzurichten.\\ | ||
+ | {{: | ||
+ | Die Anzahl der " | ||
+ | {{: | ||
+ | Benachrichtigung (Email) bei Fehler ist ratsam, sonst versickern Störungen unbemerkt im Logfile. | ||
+ | |||
+ | ===== Fehlersuche ===== | ||
+ | Wenn es nun doch nicht wie gewünscht funktioniert: | ||
+ | - An die URL das Unterverzeichnis '' | ||
+ | - Die Middleware ohne Einfluss von Frontend kann man über direkten Aufruf eines Kanal prüfen: z.B. [[http:// | ||
+ | - Ob die Middleware auf die Datenbank zugreifen kann prüft man mit einem Aufruf wie z.B. [[http:// | ||
+ | - Eine Antwort wie '' | ||
+ | - Sowas '' | ||
+ | - Bei '' | ||
+ | - Mit falschen Zugangsdaten bekommt man '' | ||
+ | - Zielführendere Diagnose bei DB-Zugriffsfehler erhält man auch wenn man die PHP-Fehlerausgabe über den http aktiviert und die Datenbank mit einem kurzen Skript direkt anspricht: | ||
+ | <code php> | ||
+ | <?php | ||
+ | $servername = " | ||
+ | $username = " | ||
+ | $password = " | ||
+ | $database = " | ||
+ | |||
+ | $conn = new PDO(" | ||
+ | |||
+ | $sql = (" | ||
+ | foreach ($conn-> | ||
+ | echo $row[' | ||
+ | } | ||
+ | ?> | ||
</ | </ | ||
- | erreichbar. Zur Vereinfachung kann man eine Sub-Domain anlegen (lassen), die direkt auf '' | + | |
- | + | ===== Update ===== | |
+ | Die Aktualisierung aus dem Git über einen der Knöpfe im Webhostingportal anstoßen.\\ | ||
+ | {{:howto:webhoster1_x_gitupdate.jpg? | ||
+ | Danach den Composer aktualisieren. Dabei immer bei dem Weg bleiben den man bei der Installation gewählt hatte. Also entweder per Knopfdruck | ||
+ | <code bash> | ||
+ | cd / | ||
+ | php / | ||
+ | </ | ||
+ |
howto/installation_auf_webhoster.1359920878.txt.gz · Zuletzt geändert: 2013/02/03 20:47 von r00t