PathInfo-Test schlägt fehl obwohl path_info korrekt funktioniert

PathInfo-Test schlägt fehl obwohl path_info korrekt funktioniert

Message

Hallo zusammen,


dieser Bug betrifft Version 2.3.17 (ist die einzige Version die ich getestet habe).

Ich setze auf meinem Server nginx als Webserver ein. path_info ist korrekt gesetzt und funktioniert in meiner Test-Datei - trotzdem schlägt der PathInfo-Test währen der Installation fehl.


Hier die entsprechenden Angaben:


vhost-Datei:


Code
  1. location @php { try_files $uri =404; fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_param HTTPS $fastcgi_https; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k;
  2. fastcgi_intercept_errors on; }

fastcgi_params



Ausgabe meiner test.php



Wie man in der Ausgabe sehen kann, sind PATH_INFO und PATH_TRANSLATED korrekt gesetzt.
Daher kann ich nicht nachvollziehen, warum der Test fehl schlägt.


In den Logs habe ich aber folgendes entdeckt. Vielleicht hilft das weiter:


Code
  1. [07/Oct/2019:23:17:03 +0200] "GET /install/index.php/pathinfotest HTTP/1.1" 404 907 "http://domain.de/install/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"

Der GET-Aufruft /install/index.php/pathinfotest erzeugt einen 404. Könnte daher die Ursache für den fehlgeschlagenen Test sein.

Comments 5

  • Der Test schlägt wegen dem 404 fehl, das ist richtig. Jedoch stimmt aufgrund des 404 noch etwas mit deiner Konfiguration nicht. Was genau kann ich dir nicht sagen, bin kein nginx Experte - jedenfalls darf an dieser Stelle kein 404 kommen. Das EQdkp setzt den 404 jedenfalls nicht.

  • Wie nennt sich denn die PHP-Funktion die ihr nutzt, damit /install/index.php/pathinfotest sinnvoll aufgelöst wird? Evt finde ich dann was passendes in Kombination mit nginx.

  • das PHP_SELF hab ich nun behoben. Jetzt sieht alles gut aus:



    Behebt das Problem aber immer noch nicht.


    Hier noch ein paar Infos zum 404-Error:

    Code
    1. 019/10/08 11:14:35 [error] 32135#32135: *5 open() "/var/www/domain.de/web/install/index.php/pathinfotest" failed (20: Not a directory), client: XXX.XX.XX.XX, server: domain.de, request: "GET /install/index.php/pathinfotest HTTP/1.1", host: "domain.de", referrer: "http://domain.de/install/index.php"

    Es wird angenommen, dass /pathinfotest ein Verzeichnis ist. Das hat aber doch eigentlich nichts mit eine URL-Rewrite des Servers zu tun. Oder doch?

  • Das das PHP_SELF das Problem behebt, habe ich nie behauptet ;) War mir nur aufgefallen dass es falsch war.

    Code
    1. fastcgi_split_path_info ^(.+?\.php)(/.*)$;

    Das hier bewirkt eigentlich, dass eben alles hinter .php als Pathinfo angesehen wird. Und eben nicht als Ordner.

    Die im Wiki hinterlegte nginx Konfiguration funktioniert jedenfalls für mich.