Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen.

Diskutiere Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen. im Web- & File-Services Forum im Bereich Netzwerke & Serverdienste; [gelöst] Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen. Hallo zusammen, ich habe einen TLS-gesicherten HTTPS Server unter einer...

  1. #1 Gast123, 17.02.2015
    Zuletzt von einem Moderator bearbeitet: 17.02.2015
    Gast123

    Gast123 Guest

    [gelöst] Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen.

    Hallo zusammen,

    ich habe einen TLS-gesicherten HTTPS Server unter einer Domain, sagen wir:
    Code:
    tls.mydomain.com
    Um dort nun mehrere Webseiten / -applications betreiben zu können, habe ich diese unter dem zugehörigen Nginx-Server in verschiedene locations gepackt.
    Z.B.:
    Code:
    tls.mydomain.com/phpmyadmin
    tls.mydomain.com/nagios3
    Bei letzterem musste ich, da nagios3 nicht in einem genau so genannten Ordner liegt, ein Alias auf
    Code:
    /usr/share/nagios3/htdocs
    einführen.
    Nun übergibt Nginx leider jedwede PHP-Datei unter o.g. URL als
    Code:
    /nagios3/<pfad>/<datei>.php
    an den PHP Prozessor.
    Dies führt dazu, dass dieser versucht Dateien nach dem Schema
    Code:
    /usr/share/nagios3/htdocs/[B]nagios3[/B]/<pfad>/<datei>.php
    aufzurufen, statt, was richtig wäre,
    Code:
    /usr/share/nagios3/htdocs/<pfad>/<datei>.php
    .
    Das einzige was ich zu dem Thema gefunden habe ist die Rewrite-Funktion von nginx:
    Code:
    rewrite ^/nagios3(/.+\.php.*)$ $1 last;
    Dies bleibt aber ohne Auswirkung. Das Dokument wird weiterhin nicht gefuden.
    Das Logfile sagt dazu nur:
    Code:
    FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
    Wäre für Hilfe zum Entfernen des ersten Ordners im Script-Path (In diesem Falle nagios3) sehr dankbar.

    MfG

    Schard

    PS: Hier der location-Part - Ich habe es zuletzt auch mit der fastcgi_split_path_info Dikrektive probiert - Kein Erfolg. :(
    Code:
    location /nagios3 {
        alias /usr/share/nagios3/htdocs;
    
        access_log /var/log/nginx/nagios.access.log;
        error_log /var/log/nginx/nagios.error.log debug; #info;
    
        auth_basic "Nagios Restricted Access";
        auth_basic_user_file /etc/nagios3/htpasswd.users;
    
        index index.php;
    
        location /nagios3/stylesheets {
            alias /etc/nagios3/stylesheets;
        }
    
        location ~ ^/nagios3/.+\.php$ {
            alias /usr/share/nagios3/htdocs;
            fastcgi_split_path_info ^/nagios3(/.+\.php)(/.*)$;
            include fastcgi.conf;
            fastcgi_param SCRIPT_FILENAME /usr/share/nagios3/htdocs$fastcgi_script_name;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
        }
    
        location ~ \.cgi$ {
            alias /usr/lib/cgi-bin/nagios3;
            rewrite ^/nagios3(/.*)$ $1 last;
            rewrite ^/cgi-bin/nagios3/(.*)$ /$1;
            include /etc/nginx/fastcgi_params;
            fastcgi_param AUTH_USER $remote_user;
            fastcgi_param REMOTE_USER $remote_user;
            fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/nagios3$fastcgi_script_name;
            fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }
    }
     
  2. #2 Gast123, 17.02.2015
    Zuletzt von einem Moderator bearbeitet: 17.02.2015
    Gast123

    Gast123 Guest

    Geschafft

    Hier die Lösung:
    Code:
        location /nagios3 {
            alias /usr/share/nagios3/htdocs;
    
            access_log /var/log/nginx/nagios.access.log;
            error_log /var/log/nginx/nagios.error.log debug; #info;
    
            auth_basic "Nagios Restricted Access";
            auth_basic_user_file /etc/nagios3/htpasswd.users;
    
            index index.php;
    
            location /nagios3/stylesheets {
                alias /etc/nagios3/stylesheets;
            }
    
            location ~ ^/nagios3/(.+\.php)$ {
                include fastcgi.conf;
                fastcgi_param SCRIPT_FILENAME /usr/share/nagios3/htdocs/$1;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
            }
        }
    
        location ~ ^/cgi-bin/nagios3/(.+\.cgi)$ {
            auth_basic "Nagios Restricted Access";
            auth_basic_user_file /etc/nagios3/htpasswd.users;
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/nagios3/$1;
            fastcgi_param AUTH_USER $remote_user;
            fastcgi_param REMOTE_USER $remote_user;
            fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }
    
    
    Die CGI-location kann man leider nicht in die Nagios-location mit rein nehmen, da Nagios die Skripte direkt versucht über
    Code:
    /cgi-bin/nagios3
    aufzurufen.
     
Thema:

Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen.

Die Seite wird geladen...

Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen. - Ähnliche Themen

  1. nginx & 403 mit Grav

    nginx & 403 mit Grav: Hallo zusammen Langsam verliere ich den glauben an mich selber und weiss echt nicht an was das liegen kann. Ich habe auf Manjaro Linux i3 den...
  2. nginx+php-fpm problem

    nginx+php-fpm problem: Moin, ich hab hier gerade ein Problem und keine Idee mehr woran es liegt. Ich muss wie schon in der Überschrift erwähnt nginx dazu bringen php...
  3. Nginx gibt TCP-Load-Balancer im Quellcode frei

    Nginx gibt TCP-Load-Balancer im Quellcode frei: Der Hersteller des Webservers Nginx hat die Quellen des bislang nur proprietär vertriebenen Moduls zur fortschrittlichen Verteilung von Lasten...
  4. Webserver Nginx Plus Release 6 freigegeben

    Webserver Nginx Plus Release 6 freigegeben: Während vor zwei Wochen die Open-Source-Version Nginx 1.7.12 erschien, folgte nun die kommerzielle Version Nginx Plus Release 6 (R6), die mit...
  5. nginx owncloud, php? Problem

    nginx owncloud, php? Problem: Moin, ich bin gerade dabei mir ne owncloud auf meinem server aufzusetzen, leider kenne ich keine vernünftige die ohne php auskommt, daher muss ich...