Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:middleware:installation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:middleware:installation [2019/04/09 14:59]
jau .conf entfernt
software:middleware:installation [2020/02/15 13:13] (aktuell)
tarts [Voraussetzungen]
Zeile 13: Zeile 13:
 Es eigenen sich hier Debian oder Ubuntu, sowie für den Raspberry Pi: Raspbian oder Raspbian Light.("​Buster"​-Version,​ oder "​Stretch"​ mit PHP Update)\\ Es eigenen sich hier Debian oder Ubuntu, sowie für den Raspberry Pi: Raspbian oder Raspbian Light.("​Buster"​-Version,​ oder "​Stretch"​ mit PHP Update)\\
 Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren:​ Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren:​
-<​code>​sudo apt-get install git-core php-cli php-mysql php-apcu ​mysql-server ​mysql-client php-xml php-mbstring ca-certificates ​+<​code>​sudo apt-get install git-core php-cli php-mysql php-apcu ​mariadb-server ​mariadb-client php-xml php-mbstring ca-certificates ​
 </​code>​ </​code>​
 bzw. für PostgreSQL ​ bzw. für PostgreSQL ​
Zeile 179: Zeile 179:
  
 ===== Webserver einrichten ===== ===== Webserver einrichten =====
 +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 (empfohlene Methode) ==== ==== PPM als Server (empfohlene Methode) ====
-Der PPM-Webserver auf Basis von PHP läuft wesentlich Performanter als Apache2 und ist gerade auf schwacher Hardware wie RaspberryPi zu empfehlen.+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 ''​sudo nano /​etc/​systemd/​system/​middleware.service''<​code>​   - Systemd Service einrichten ''​sudo nano /​etc/​systemd/​system/​middleware.service''<​code>​
Zeile 208: Zeile 209:
  
 ==== nginx als Proxy (empfohlene Methode) ==== ==== nginx als Proxy (empfohlene Methode) ====
-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ärtkompatibilität ​für bestehende Scripte und Anwendungen.+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.
  
 <​code>​ <​code>​
Zeile 223: Zeile 224:
 server { server {
   listen 80;   listen 80;
 +  listen [::]:80;
 +  server_name volkszaehler.org;​
  
   location / {   location / {
-    proxy_pass http://localhost:8080;+    proxy_pass http://127.0.0.1:8080;
     include /​etc/​nginx/​proxy_params;​     include /​etc/​nginx/​proxy_params;​
   }   }
Zeile 231: Zeile 234:
   location /middleware {   location /middleware {
     rewrite ^/​middleware(.php)?​(/​.*)?​ $2;     rewrite ^/​middleware(.php)?​(/​.*)?​ $2;
-    proxy_pass http://localhost:8080/;+    proxy_pass http://127.0.0.1:8080/;
   }   }
  
   location /api {   location /api {
     rewrite ^/api(/.*)? $1;     rewrite ^/api(/.*)? $1;
-    proxy_pass http://localhost:8080/;+    proxy_pass http://127.0.0.1:8080/;
   }   }
  
   location /frontend {   location /frontend {
     rewrite ^/​frontend/​(.*) $1;     rewrite ^/​frontend/​(.*) $1;
-    proxy_pass http://localhost:8080/;+    proxy_pass http://127.0.0.1:8080/;
   }   }
 +
 +# Konfigurationsbeispiel für eigene PHP-Scripte,​
 +# von nginx unter http://​127.0.0.1/​addapp/​ bereitgestellt,​ lokal unter /​var/​www/​html/​ abgelegt.
 +#
 +#  location /addapp/ {
 +#    alias /​var/​www/​html/;​
 +#    index index.nginx-debian.html;​
 +#      ​
 +#    location ~ \.php {
 +#      include snippets/​fastcgi-php.conf;​
 +#      fastcgi_param SCRIPT_FILENAME $request_filename;​
 +#      fastcgi_pass unix:/​var/​run/​php/​php7.3-fpm.sock;​
 +#    }
 +#  }
 } }
 </​code>​ </​code>​
 +<​note>​Möchte man eigene PHP-Scripte neben Volkszähler bereit stellen ist das das Paket php-fpm nötig.
 +
 +Installieren mit ''​sudo apt-get install php-fpm''​ und darauf achten das in der nginx-Konfiguration bei ''/​var/​run/​php/​php7.3-fpm.sock''​ auf die korrekte, vorhandene Datei verwiesen wird.</​note>​
 Damit der nginx die Config lädt: Damit der nginx die Config lädt:
 <​code>​ <​code>​
-sudo ln -s /​etc/​nginx/​sites-available/​volkszaehler.conf /​etc/​nginx/​sites-enabled/​volkszaehler+sudo ln -s /​etc/​nginx/​sites-available/​volkszaehler /​etc/​nginx/​sites-enabled/​volkszaehler
 </​code>​ </​code>​
-Dann nur noch bei Starten und in Bootprozess einbinden:+Dann nur noch Starten und in Bootprozess einbinden:
 <​code>​ <​code>​
 sudo systemctl start nginx sudo systemctl start nginx
Zeile 256: Zeile 276:
  
 ==== Alternativ: nginx als Server ==== ==== 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: ''​url:​ '​api'​ ''​.</​note>​
 <​code>​ <​code>​
 server { server {
Zeile 274: Zeile 295:
         #       ​fastcgi_pass 127.0.0.1:​9000;​         #       ​fastcgi_pass 127.0.0.1:​9000;​
                 # With php7-fpm:                 # With php7-fpm:
-                fastcgi_pass unix:/​var/​run/​php7-fpm.sock;​+                fastcgi_pass unix:/​var/​run/php/php7.3-fpm.sock;
         }         }
 } }
 </​code>​ </​code>​
 +<​note>​Darauf achten das in der nginx-Konfiguration bei ''/​var/​run/​php/​php7.3-fpm.sock''​ auf die korrekte, vorhandene Datei verwiesen wird.</​note>​
  
-Wichtig ist dass in der config in der Zeile "​location ~ \.php {" kein $-Zeichen hinter dem PHP steht. Siehe [[http://​volkszaehler.org/​pipermail/​volkszaehler-dev/​2011-June/​000925.html|Mail Archiv]]+Wichtig ist dass in der config in der Zeile "​location ~ \.php {" kein $-Zeichen hinter dem PHP steht. Siehe [[https://lists.volkszaehler.org/​pipermail/​volkszaehler-dev/​2011-June/​000925.html|Mail Archiv]]
  
 ==== Alternativ: Apache als Server (unter Debian "​Stretch"​) ==== ==== Alternativ: Apache als Server (unter Debian "​Stretch"​) ====
-  ​* Pakete installieren ''​sudo apt-get install apache2 libapache2-mod-php7.1''​+<​note>​Möchte man von PPM auf Apache als Server umstellen sind auch die Änderungen an der Middleware-Konfiguration für PPM zurück zu nehmen: ''​url:​ '​api'​ ''</​note>​ 
 +  ​* Pakete installieren ''​sudo apt-get install apache2 libapache2-mod-php7.3''​
   * mod_rewrite aktivieren: ''​sudo a2enmod rewrite''​   * mod_rewrite aktivieren: ''​sudo a2enmod rewrite''​
   * Default VirtualHost bearbeiten: ''​sudo nano /​etc/​apache2/​sites-enabled/​000-default.conf''​   * Default VirtualHost bearbeiten: ''​sudo nano /​etc/​apache2/​sites-enabled/​000-default.conf''​
Zeile 443: Zeile 466:
  
 ====== phpMyAdmin installieren ====== ====== phpMyAdmin installieren ======
 +<​note>​Statt phpMyAdmin empfehlen wir derzeit einen lokalen Client wie z.B. [[https://​www.heidisql.com|HeidiSQL]]</​note>​
 <note important>​Für Vollzugriff auf die Volkszählerdatenbank über phpMyAdmin haben wir den User ''​vz-admin''​. Standardpasswort:​ ''​secure''</​note>​ <note important>​Für Vollzugriff auf die Volkszählerdatenbank über phpMyAdmin haben wir den User ''​vz-admin''​. Standardpasswort:​ ''​secure''</​note>​
 MySQL-Superuser ist: ''​root''​ und das Standardpasswort:​ ''​raspberry''​\\ MySQL-Superuser ist: ''​root''​ und das Standardpasswort:​ ''​raspberry''​\\
software/middleware/installation.1554814752.txt.gz · Zuletzt geändert: 2019/04/09 14:59 von jau