Hallo zusammen,m
ich setze derzeit nextcloud 20.0.1 mit nginx und php 7.2.34 auf Ubuntu 20.04 ein.
Ich möchte gerne auf php7.4 wechseln. Das ist soweit schon installiert. Meine Frage ist eigentlich nur, wie bringe ich nginx bei, auf 7.4 zu wechseln?
Meine Nginx Konfiguration sieht derzeit unter sites-available so aus:
upstream php-handler {
#server unix:/run/php/php7.4-fpm.sock;
server 127.0.0.1:9000;
#server unix:/var/run/php7-fpm.sock;
}
server {
listen 80;
server_name 192.168.0.1;
#enforce https
return 301 https://$server_name$request_uri; # enforce https
}
server {
listen 443 ssl;
server_name 192.168.0.1;
# ssl on;
ssl_certificate /etc/ssl/private/crt.crt;
ssl_certificate_key /etc/ssl/private/key.key;
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options "noopen";
add_header X-Permitted-Cross-Domain-Policies "none";
add_header Referrer-Policy "no-referrer" always;
# Path to the root of your installation
root /var/www/owncloud/;
client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ /index.php;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_pass php-handler;
fastcgi_read_timeout 300;
}
# Optional: set long EXPIRES header on static assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
Ich konnte schon identifizieren, dass alles unter upstream php-handler die Verbindung zum PHP Dienst steuert. Wenn ich nun einfach “server unix:/run/php/php7.4-fpm.sock;” auskommentiere und “server 127.0.0.1:9000;” kommentiere bekomme ich im Browser nur eine Fehlermeldung mit “Bad Gateway”.
Konkrete Frage: Wie steuere ich diesen virtuellen Dienst 127.0.0.1:9000? Irgendwo muss dort ja auch die PHP-Version hinterlegt sein?
Der FPM-Dienst für 7.4 läuft und bei einer php-info-Abfrage würde ich zumindest erwarten, dass dann darüber auch der Versionswechsel verifiziert werden kann.