Hallo,
ich versuche gerade, NGinX so zu konfigurieren, dass es den ersten Teil des Pfades abscheidet, wenn es ein PHP-Script an PHP-FPM weiterleitet. Die Konfig dazu sieht folgenderma�n aus:
log_format scripts '$document_root$fastcgi_script_name > $request';
access_log /var/log/nginx/scripts.log scripts;
server {
listen 80;
root /usr/share/nginx/html/;
index index.php index.html index.htm;
location / {
return 406;
}
location /simplesaml {
location ~ \..*/.*\.php$ {
return 406;
}
try_files $uri $uri/ =404;
alias /usr/share/simplesamlphp/www;
location ~ \.php(/|$) {
include fastcgi_params;
fastcgi_split_path_info ^/simplesaml/(.+?\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
}
}
}
Ich bin davon ausgegangen, dass die fastcgi_split_path_info unter $1 dann das Script liefert, unter $2 all das, was nach dem Script und einem weiteren / kommt; aber leider ist das laut log nicht der Fall. SCRIPT_FILENAME wird immer auf /usr/share/simplesamlphp/www/simplesaml/${SCRIPTFILE}.php gesetzt und nicht wie gew� auf /usr/share/simplesamlphp/www/${SCRIPTFILE}.php
$ docker exec 3b tail -f /var/log/nginx/scripts.log ���
/usr/share/simplesamlphp/www/simplesaml/index.php > GET /simplesaml/ HTTP/1.1
Wo genau steckt mein Denkfehler? Ich sehe ihn gerade nicht.
Das ganze findet in einem NGinX-Container statt; dieser basiert auf Debian stable (Bullseye).
Lieben Dank!
--
Mit freundlichen Gr�p>
Jan Kohnert