PHP7.1 unter Docker mit der DS Webstation!
Kurz erklärt: Ich hab PHP7.1 über Docker bereitgestellt, mit allen Modulen, um das über eine custom config für die Webstation unter NGINX erreichbar zumachen. Eigentlich sehr simpel!
Wie du als root user an die Konsole kommst das weißt du, zusätzlich musst du jetzt noch den Editor VI oder
NANO nutzen!
Voraussetzung: Docker und Nano ist installiert und gestartet über das Paketzentrum.
Es geht los als root user, wir laden das Docker Image und erstellen den Container:
Rich (BBCode):
docker run --name=php7 --net=host --restart=always -d -v /volume1/web:/var/www/html:rw eboost/php7fpm
Du erhältst den Hinweis:
Unable to find image 'eboost/php7fpm:latest' locally
Jetzt abwarten bis das downlaod/extract fertig ist:
Status: Downloaded newer image for eboost/php7fpm:latest
Jetzt müssen wir in den Container um ein paar Änderungen vorzunehmen:
Rich (BBCode):
docker exec -it php7 /bin/bash
Um Zugriffsfehler zu vermeiden brauchst einen User 1:1 zur Webstation
Rich (BBCode):
adduser --system --uid 1023 http --no-create-home
Rich (BBCode):
addgroup --system --gid 1023 http
Dieser muss jetzt zum ausführen von PHP noch hinterlegt werden;
dazu wird folgende Datei angepasst:
Rich (BBCode):
nano /usr/local/etc/php-fpm.d/www.conf
Suche folgenden Teil, hier sollte der User www-data eingetragen sein,
das muss geändert werden:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = http
group = http
mit
STRG + O speicherst du ab
RETURN bestätigt
STRG + X beendet nano
jetzt den Container verlassen
und durchstarten
Nun fehlt noch die Webserver config um PHP7 auch nutzen zu können:
Rich (BBCode):
nano /etc/nginx/sites-enabled/dockerPHP.conf
server {
listen 80;
listen 443 ssl;
server_name diskstation;
root root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404; }
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Abspeichern nicht vergessen! Meine lautet test.conf - hier muss die Dateiendung stimmen - dockerPHP.conf ist also auch OK.
Jetzt noch den Webserver durchstarten:
Rich (BBCode):
synoservicectl --restart nginx
Fertig!
------------------------------------------------------------------------------------------------------------------------
Mögliche Hilfe; sofern erforderlich:
Es erscheint
„Primary script unknown" wenn die config vom nginx auf das root share /volume1/web zeigt!
Oder Zugriffsfehler auftreten; Achte darauf das alle Daten im root share /volume1/web für den user http erreichbar sind:
Rich (BBCode):
chown -R http:http /volume1/web
Logs vom Webserver der DS kannst du dir live ausgeben lassen:
Rich (BBCode):
tail -f /var/log/nginx/error.log
STRG + C beendet das.
------------------------------------------------------------------------------------------------------------------------
Dominik kann mir leider auch nicht Helfen.
Tja, kann halt nicht jeder so einen erstklassigen Support bieten wie dieses Forum hier
Viel Erfolg!
Bob