software:middleware:installation
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:middleware:installation [2019/03/28 07:32] – config.yaml jau | software:middleware:installation [2024/05/03 12:52] (aktuell) – [Voraussetzungen] PHP-Version jau | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | |||
====== Installation der Middleware ====== | ====== Installation der Middleware ====== | ||
Zeile 5: | Zeile 4: | ||
===== Voraussetzungen ===== | ===== Voraussetzungen ===== | ||
- | * PHP 7.1 (nicht verfügbar in Raspbian Stretch!) | + | * PHP 7.4 (z.B. debian ab Buster (10)) |
* Doctrine 2.5 | * Doctrine 2.5 | ||
- | * MySQL, MariaDB, PostgreSQL oder SQLite | + | * MySQL, MariaDB + PDO Treiber |
* APC (optional, aber empfohlen) | * APC (optional, aber empfohlen) | ||
- | * Apache | + | * Apache, nginx (optional) |
- | Es eigenen | + | Es eignen |
Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren: | Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren: | ||
- | < | + | < |
</ | </ | ||
- | bzw. für PostgreSQL | ||
- | < | ||
Für die manuelle Installation wird zudem " | Für die manuelle Installation wird zudem " | ||
Zeile 25: | Zeile 22: | ||
- | ===== Install-Skript (empfohlene | + | ===== Install-Skript (empfohlene |
< | < | ||
wget https:// | wget https:// | ||
Zeile 34: | Zeile 31: | ||
Das sollte dann ablaufen: | Das sollte dann ablaufen: | ||
+ | [Bitte unbedingt ein Passwort für den vz-admin-User vergeben!] | ||
< | < | ||
Zeile 140: | Zeile 138: | ||
create volkszaehler.org database and admin user? [y] | create volkszaehler.org database and admin user? [y] | ||
creating database volkszaehler... | creating database volkszaehler... | ||
+ | Enter password: {root password (raspberry)} | ||
creating db user vz-admin... | creating db user vz-admin... | ||
+ | Enter password: {root password (raspberry)} | ||
creating database schema... | creating database schema... | ||
~/ | ~/ | ||
Zeile 177: | Zeile 177: | ||
Das Script fragt, was es wohin installieren soll. | Das Script fragt, was es wohin installieren soll. | ||
- | ==== Webserver | + | ===== Webserver |
- | Der PPM-Webserver auf Basis von PHP läuft wesentlich Performanter als Apache2 und ist gerade auf schwacher Hardware wie RaspberryPi zu empfehlen. | + | Im Folgenden sind 3 mögliche Serverkonfigurationen beschrieben. Für Kompatibiltät mit alten Scripts und Konfigurationen empfehlen wir bei PPM zusätzlich einen Proxy einzurichten. |
+ | |||
+ | ==== PPM als Server | ||
+ | Der PPM-Webserver auf Basis von PHP läuft wesentlich Performanter als Apache2 und ist gerade auf schwacher Hardware wie RaspberryPi zu empfehlen. In Standardkonfiguration bedient er Anfragen auf Port 8080. | ||
- Systemd Service einrichten '' | - Systemd Service einrichten '' | ||
[Unit] | [Unit] | ||
Description=Volkszaehler.org Middleware | Description=Volkszaehler.org Middleware | ||
- | After=syslog.target network.target | + | After=syslog.target network.target |
Requires= | Requires= | ||
[Service] | [Service] | ||
- | ExecStart=/ | + | ExecStart=/ |
ExecReload=/ | ExecReload=/ | ||
StandardOutput=journal | StandardOutput=journal | ||
Zeile 196: | Zeile 199: | ||
- Server Konfiguration anpassen | - Server Konfiguration anpassen | ||
- '' | - '' | ||
- | - ändern: ''" | ||
- ändern: ''" | - ändern: ''" | ||
- Middleware Weiterleitung '' | - Middleware Weiterleitung '' | ||
Zeile 205: | Zeile 207: | ||
- Systemd Service starten '' | - Systemd Service starten '' | ||
- | ==== Alternative: Apache | + | <note important> |
- | * Pakete installieren '' | + | ==== Apache als Proxy (empfohlene Methode) ==== |
+ | Dazu Apache auf die Weiterleitung zum PPM reduzieren. | ||
+ | - Module aktivieren< | ||
+ | sudo a2enmod proxy | ||
+ | sudo a2enmod proxy_http | ||
+ | sudo a2enmod rewrite</ | ||
+ | - Rewrite-Proxy aktivieren, '' | ||
+ | < | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^middleware(.php)? | ||
+ | RewriteRule ^api(/.*)? http:// | ||
+ | RewriteRule (.*) http:// | ||
+ | </ | ||
+ | </ | ||
+ | - Default VirtualHost bearbeiten: '' | ||
+ | DocumentRoot / | ||
+ | </ | ||
+ | - Apache | ||
+ | < | ||
+ | Options Indexes FollowSymLinks | ||
+ | AllowOverride None | ||
+ | Require all granted | ||
+ | </ | ||
+ | </ | ||
+ | - Dann den Apache nur noch neu starten '' | ||
+ | |||
+ | ==== Alternativ: nginx als Proxy ==== | ||
+ | Nginx ist ein schlanker Webserver/ | ||
+ | |||
+ | < | ||
+ | sudo apt install nginx | ||
+ | sudo rm / | ||
+ | sudo nano / | ||
+ | </ | ||
+ | In diese wird eingefügt: | ||
+ | < | ||
+ | # Volkszaehler | ||
+ | |||
+ | include / | ||
+ | |||
+ | server { | ||
+ | listen 80; | ||
+ | listen [::]:80; | ||
+ | server_name volkszaehler.org; | ||
+ | |||
+ | location / { | ||
+ | proxy_pass http:// | ||
+ | include / | ||
+ | } | ||
+ | |||
+ | location /middleware { | ||
+ | rewrite ^/ | ||
+ | proxy_pass http:// | ||
+ | } | ||
+ | |||
+ | location /api { | ||
+ | rewrite ^/api(/.*)? $1; | ||
+ | proxy_pass http:// | ||
+ | } | ||
+ | |||
+ | location /frontend { | ||
+ | rewrite ^/ | ||
+ | proxy_pass http:// | ||
+ | } | ||
+ | |||
+ | # Konfigurationsbeispiel für eigene PHP-Scripte, | ||
+ | # von nginx unter http:// | ||
+ | # | ||
+ | # location /addapp/ { | ||
+ | # alias / | ||
+ | # index index.nginx-debian.html; | ||
+ | # | ||
+ | # location ~ \.php { | ||
+ | # include snippets/ | ||
+ | # fastcgi_param SCRIPT_FILENAME $request_filename; | ||
+ | # fastcgi_pass unix:/ | ||
+ | # } | ||
+ | # } | ||
+ | } | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | Installieren mit '' | ||
+ | Damit der nginx die Config lädt: | ||
+ | < | ||
+ | sudo ln -s / | ||
+ | </ | ||
+ | Dann nur noch Starten und in Bootprozess einbinden: | ||
+ | < | ||
+ | sudo systemctl start nginx | ||
+ | sudo systemctl enable nginx | ||
+ | </ | ||
+ | |||
+ | ==== Alternativ: Apache als Server | ||
+ | < | ||
+ | * Pakete installieren '' | ||
* mod_rewrite aktivieren: '' | * mod_rewrite aktivieren: '' | ||
* Default VirtualHost bearbeiten: '' | * Default VirtualHost bearbeiten: '' | ||
Zeile 229: | Zeile 326: | ||
Sollte es zu einem PHP Fehler beim Anlegen der Datenbank kommen versucht mal Doctrine per Hand zu Installieren. | Sollte es zu einem PHP Fehler beim Anlegen der Datenbank kommen versucht mal Doctrine per Hand zu Installieren. | ||
- | ===== Manuelle Installation ===== | + | ==== Alternativ: nginx als Server |
- | + | <note>Möchte man von PPM auf nginx als Server umstellen sind auch die Änderungen an der Middleware-Konfiguration für PPM zurück zu nehmen: '' | |
- | === Download der volkszaehler.org Skripte === | + | |
- | Download der Skripte aus dem git Repository: | + | |
- | <code> | + | |
- | git clone git:// | + | |
- | sudo ln -sf ~/ | + | |
- | sudo chown -R www-data / | + | |
- | </ | + | |
- | + | ||
- | === Apache konfigurieren === | + | |
- | * mod_rewrite aktivieren: | + | |
- | < | + | |
- | sudo a2enmod rewrite | + | |
- | </ | + | |
- | + | ||
- | * Default VirtualHost bearbeiten: | + | |
- | < | + | |
- | / | + | |
- | DocumentRoot / | + | |
- | </code> | + | |
- | + | ||
- | * unter < | + | |
- | < | + | |
- | AllowOverride FileInfo Limit Options Indexes Authconfig | + | |
- | </ | + | |
- | + | ||
- | === Alternativ: nginx konfigurieren === | + | |
< | < | ||
server { | server { | ||
Zeile 272: | Zeile 343: | ||
location ~ \.php { | location ~ \.php { | ||
include snippets/ | include snippets/ | ||
- | # # With php5-cgi alone: | + | # # With php7-cgi alone: |
# | # | ||
- | # With php5-fpm: | + | # With php7-fpm: |
- | fastcgi_pass unix:/ | + | fastcgi_pass unix:/ |
} | } | ||
} | } | ||
</ | </ | ||
+ | < | ||
- | Wichtig ist dass in der config in der Zeile " | + | Wichtig ist dass in der config in der Zeile " |
+ | ==== Alternativ: Lighttpd als Server ==== | ||
+ | Notwendige Rewrite-Regeln: | ||
+ | < | ||
+ | url.rewrite-if-not-file = ( | ||
+ | " | ||
+ | " | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Manuelle Installation ===== | ||
+ | |||
+ | === Download der volkszaehler.org Skripte === | ||
+ | Download der Skripte aus dem git Repository: | ||
+ | < | ||
+ | git clone git:// | ||
+ | sudo ln -sf ~/ | ||
+ | sudo chown -R www-data / | ||
+ | </ | ||
=== Installation der benötigten Module === | === Installation der benötigten Module === | ||
Zeile 319: | Zeile 410: | ||
=== Datenbank konfigurieren === | === Datenbank konfigurieren === | ||
- | * Datenbank-User anlegen: | + | * Datenbank |
+ | < | ||
+ | mysql: | ||
+ | CREATE DATABASE `volkszaehler`; | ||
+ | |||
+ | oder phpmyadmin: | ||
+ | Home -> " | ||
+ | </ | ||
+ | * Datenbank-User anlegen: | ||
< | < | ||
- | phpmyadmin: | + | mysql: |
+ | GRANT ALL ON volkszaehler.* to ' | ||
+ | CREATE USER ' | ||
+ | GRANT USAGE ON volkszaehler.* TO ' | ||
+ | GRANT SELECT, UPDATE, INSERT ON volkszaehler.* TO ' | ||
+ | |||
+ | oder phpmyadmin: | ||
+ | Home -> " | ||
+ | Benutzername: | ||
+ | Host: localhost | ||
+ | Passwort: < | ||
+ | Vollzugriff (Grant All) auf DB volkszaehler erlauben. | ||
+ | -> ok | ||
Home -> " | Home -> " | ||
Benutzername: | Benutzername: | ||
Zeile 329: | Zeile 440: | ||
keine globalen Rechte vergeben! | keine globalen Rechte vergeben! | ||
-> ok | -> ok | ||
- | oder: | ||
- | CREATE USER ' | ||
</ | </ | ||
- | * Datenbank anlegen: | + | * Tabellen anlegen: |
- | < | + | |
- | phpmyadmin | + | |
- | Home -> " | + | |
- | oder: | + | |
- | CREATE DATABASE `volkszaehler`; | + | |
- | </ | + | |
- | + | ||
- | * Tabellen anlegen: | + | |
< | < | ||
# cd / | # cd / | ||
Zeile 382: | Zeile 483: | ||
mysqladmin reload -p | mysqladmin reload -p | ||
</ | </ | ||
+ | |||
+ | === Webserver === | ||
+ | Wie bereits [[/ | ||
====== Aktualisierung der Middleware einschließlich des Frontends ====== | ====== Aktualisierung der Middleware einschließlich des Frontends ====== | ||
- | Nachdem Volkszähler im Zuge der Installation eine Kopie des git Repositories erstellt, | + | Wenn nur die '' |
- | Eine Beschreibung findet sich im Kapitel zu [[/ | + | Nachdem Volkszähler im Zuge der Installation eine Kopie des git Repositories erstellt, kann die Installation aber auch aus diesem Repository aktualisiert werden. |
====== phpMyAdmin installieren ====== | ====== phpMyAdmin installieren ====== | ||
+ | < | ||
<note important> | <note important> | ||
MySQL-Superuser ist: '' | MySQL-Superuser ist: '' |
software/middleware/installation.1553754757.txt.gz · Zuletzt geändert: 2019/03/28 07:32 von jau