software:middleware:installation
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
software:middleware:installation [2019/03/25 11:57] – --static-dir zu middleware.json jau | software:middleware:installation [2019/08/27 15:10] – [nginx] Zugriffpfad und Ablageort jau | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
* MySQL, MariaDB, PostgreSQL oder SQLite + PDO Treiber | * MySQL, MariaDB, PostgreSQL oder SQLite + PDO Treiber | ||
* APC (optional, aber empfohlen) | * APC (optional, aber empfohlen) | ||
- | * Apache | + | * nginx, |
Es eigenen sich hier Debian oder Ubuntu, sowie für den Raspberry Pi: Raspbian oder Raspbian Light.(" | Es eigenen sich hier Debian oder Ubuntu, sowie für den Raspberry Pi: Raspbian oder Raspbian Light.(" | ||
Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren: | Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren: | ||
- | < | + | < |
</ | </ | ||
bzw. für PostgreSQL | bzw. für PostgreSQL | ||
- | < | + | < |
Für die manuelle Installation wird zudem " | Für die manuelle Installation wird zudem " | ||
+ | < | ||
==== Vollautomatisiert mit Ansible und DebOps ==== | ==== Vollautomatisiert mit Ansible und DebOps ==== | ||
Zeile 25: | Zeile 26: | ||
- | ===== Install-Skript (empfohlene | + | ===== Install-Skript (empfohlene |
< | < | ||
wget https:// | wget https:// | ||
Zeile 177: | Zeile 178: | ||
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 '' | ||
Zeile 187: | Zeile 191: | ||
[Service] | [Service] | ||
- | ExecStart=/ | + | ExecStart=/ |
ExecReload=/ | ExecReload=/ | ||
StandardOutput=journal | StandardOutput=journal | ||
Zeile 196: | Zeile 200: | ||
- Server Konfiguration anpassen | - Server Konfiguration anpassen | ||
- '' | - '' | ||
- | - ändern: ''" | ||
- ändern: ''" | - ändern: ''" | ||
- Middleware Weiterleitung '' | - Middleware Weiterleitung '' | ||
Zeile 205: | Zeile 208: | ||
- Systemd Service starten '' | - Systemd Service starten '' | ||
- | ==== Alternative: | + | ==== nginx als Proxy (empfohlene Methode) ==== |
- | * Pakete installieren '' | + | Nginx ist ein schlanker Webserver/Proxy dessen Konfiguration sehr zentral erfolgt, was der Performance zu gute kommt. Er ist als Proxy für den Betrieb eines Volkszählers nicht zwingend nötig (PPM kann das gut alleine), bietet aber Abwärtskompatibilität für bestehende Scripte und Anwendungen. |
- | * mod_rewrite aktivieren: '' | + | |
- | * Default VirtualHost bearbeiten: '' | + | |
- | ' | + | |
< | < | ||
- | /var/www/volkszaehler.org/htdocs/ | + | sudo apt install nginx |
+ | sudo rm /etc/nginx/sites-enabled/default | ||
+ | sudo nano /etc/ | ||
</ | </ | ||
- | + | In diese wird eingefügt: | |
- | * Apache Config bearbeiten um Rewrite zu erlauben: '' | + | |
- | * In der Datei den Abschnitt suchen: | + | |
< | < | ||
- | < | + | # Volkszaehler |
- | Options Indexes FollowSymLinks | + | |
- | AllowOverride None | + | |
- | Require all granted | + | |
- | </ | + | |
- | </ | + | |
- | * in '' | + | |
- | Nach dem editieren und abspeichern der Datei '' | + | include / |
- | Sollte es zu einem PHP Fehler beim Anlegen der Datenbank kommen versucht mal Doctrine per Hand zu Installieren. | + | server { |
+ | listen 80; | ||
+ | listen [::]:80; | ||
+ | server_name volkszaehler.org; | ||
- | ===== Manuelle Installation ===== | + | location / { |
+ | proxy_pass http:// | ||
+ | include / | ||
+ | } | ||
- | === Download der volkszaehler.org Skripte === | + | location /middleware { |
- | Download der Skripte aus dem git Repository: | + | |
- | < | + | proxy_pass http://127.0.0.1:8080/; |
- | git clone git://github.com/volkszaehler/volkszaehler.org.git ~/ | + | } |
- | sudo ln -sf ~/volkszaehler.org | + | |
- | sudo chown -R www-data /var/www/volkszaehler.org | + | location |
- | </code> | + | rewrite ^/api(/.*)? $1; |
+ | | ||
+ | } | ||
- | === Apache konfigurieren === | + | location /frontend { |
- | * mod_rewrite aktivieren: | + | |
- | < | + | proxy_pass http:// |
- | sudo a2enmod rewrite | + | } |
+ | |||
+ | # 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:/ | ||
+ | # } | ||
+ | # } | ||
+ | } | ||
</ | </ | ||
+ | < | ||
- | * Default VirtualHost bearbeiten: | + | Installieren mit '' |
+ | Damit der nginx die Config lädt: | ||
< | < | ||
- | /etc/apache2/sites-enabled/000-default: | + | sudo ln -s /etc/nginx/sites-available/volkszaehler |
- | DocumentRoot | + | |
</ | </ | ||
- | + | Dann nur noch Starten und in Bootprozess einbinden: | |
- | * unter < | + | |
< | < | ||
- | AllowOverride FileInfo Limit Options Indexes Authconfig | + | sudo systemctl start nginx |
+ | sudo systemctl enable nginx | ||
</ | </ | ||
- | === Alternativ: nginx konfigurieren | + | ==== Alternativ: nginx als Server |
+ | < | ||
< | < | ||
server { | server { | ||
Zeile 272: | Zeile 292: | ||
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: Apache als Server (unter Debian " | ||
+ | < | ||
+ | * Pakete installieren '' | ||
+ | * mod_rewrite aktivieren: '' | ||
+ | * Default VirtualHost bearbeiten: '' | ||
+ | ' In der Datei, neben ''< | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | * Apache Config bearbeiten um Rewrite zu erlauben: '' | ||
+ | * In der Datei den Abschnitt suchen: | ||
+ | < | ||
+ | < | ||
+ | Options Indexes FollowSymLinks | ||
+ | AllowOverride None | ||
+ | Require all granted | ||
+ | </ | ||
+ | </ | ||
+ | * in '' | ||
+ | |||
+ | Nach dem editieren und abspeichern der Datei '' | ||
+ | |||
+ | Sollte es zu einem PHP Fehler beim Anlegen der Datenbank kommen versucht mal Doctrine per Hand zu Installieren. | ||
+ | |||
+ | ==== Alternativ: Apache als Proxy ==== | ||
+ | Auch Apache kann auf die Weiterleitung zum PPM reduziert werden. | ||
+ | < | ||
+ | sudo a2enmod proxy_http | ||
+ | nano ~/ | ||
+ | Die Kommentarzeichen vor den Zeilen entfernen: | ||
+ | < | ||
+ | < | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^middleware(.php)? | ||
+ | RewriteRule ^api(/.*)$ http:// | ||
+ | </ | ||
+ | </ | ||
+ | Dann den Apache nur noch neu starten | ||
+ | < | ||
+ | |||
+ | |||
+ | ===== 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 304: | Zeile 375: | ||
< | < | ||
cd / | cd / | ||
- | cp volkszaehler.conf.template.php volkszaehler.conf.php | + | cp config.dist.yaml config.yaml |
- | edit volkszaehler.conf.php: | + | </ |
- | | + | edit config.yaml: |
- | | + | < |
- | | + | db: |
- | | + | |
+ | port: 3306 | ||
+ | | ||
+ | password: demo | ||
+ | dbname: volkszaehler | ||
</ | </ | ||
Zeile 378: | Zeile 453: | ||
mysqladmin reload -p | mysqladmin reload -p | ||
</ | </ | ||
+ | |||
+ | === Webserver === | ||
+ | Wie bereits [[/ | ||
====== Aktualisierung der Middleware einschließlich des Frontends ====== | ====== Aktualisierung der Middleware einschließlich des Frontends ====== | ||
Zeile 387: | Zeile 465: | ||
====== phpMyAdmin installieren ====== | ====== phpMyAdmin installieren ====== | ||
+ | < | ||
<note important> | <note important> | ||
MySQL-Superuser ist: '' | MySQL-Superuser ist: '' |
software/middleware/installation.txt · Zuletzt geändert: 2023/03/27 21:14 von joha