Wie man richtig konfigurieren alias-Direktive im nginx?

Ich habe versucht, konfigurieren Sie mehrere webapp auf meinem nginx webserver aber ich kann nicht die Arbeit einer Laravel-app, die erfordert, dass $document_root gesetzt laravel öffentlichen Ordner.
Ich bin versucht derzeit, konfigurieren Sie es mithilfe von alias-Richtlinie, sondern für eine obskure Grund, warum dies nicht funktioniert. Hier ist, was ich versuche zu tun.

# Default server configuration
#
server {
    listen 80;

    # SSL configuration
    #
    listen 443 ssl;

    error_log /var/log/nginx/error.log warn;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;


    set $root_path '/var/www/html';
    root $root_path;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html index.php;

    server_name localhost;

    location /paperwork {
        alias /var/www/html/paperwork/frontend/public;
        try_files $uri $uri/;
        #location ~ \.php {
        #   fastcgi_split_path_info ^(.+\.php)(.*)$;
        #   fastcgi_pass unix:/var/run/php5-fpm.sock;
        #   include /etc/nginx/fastcgi_params;
        #   #fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
        #   #fastcgi_intercept_errors on;
        #}
    }

    #location @paperwork {
    #   rewrite /paperwork/(.*)$ /paperwork/index.php/$1 last;
    #}

    location / {

    }


    location /wallabag {
        try_files $uri $uri/ /index.php;
    }

    location /laverna {
        try_files $uri/ /index.php;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #try_files $uri $uri/=404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }



    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one

    location ~ /\.ht {
        deny all;
    }
}

Zum testen meiner "alias" config lege ich ein 'test.php' Dateien in /var/www/html/paperwork/frontend/public/test.php und den Zugriff versucht es über https://IP/paperwork/test.php. Ich bekomme einen 404-Fehler und nichts in der nginx error log.
Wenn ich versuche https://IP/paperwork/frontend/public/test.php im browser zeigt es test.php Datei-ohne Fehler.
Nichts ändern, wenn ich die Auskommentierung try_files Zeile in die php-location.

Wenn ich kopieren test.php zu /var/www/html/paperwork/test2.php und der Zugang zu https://IP/paperwork/test2.php die Datei angezeigt ohne Fehler, so kann ich hier sehen, dass alias nicht funktioniert, da nicht mehr ein test2.php für den Papierkram öffentlichen Verzeichnis.

Kann ich ein anderes Verhalten wenn ich die Auskommentierung in php Standort innerhalb Papierkram Lage. Mit diesem, Anfragen wie https://IP/paperwork/test.php nicht angezeigt, 404, sondern einen leeren Bildschirm.

Habe ich durch viele Foren /Fragen zu diesem, aber ich konnte nicht eine funktionierende config für eine einfache Aufgabe wie die Anzeige test.php...

Dank !

InformationsquelleAutor Lich4r | 2015-02-13
Schreibe einen Kommentar