wake-up-neo.net

403 auf Nginx/1.4.6 (Ubuntu) verboten - Laravel

Ich bekomme immer 403 Forbidden

 enter image description here


Meine Einstellungen:

/etc/nginx/sites-available/default

Standard

server {
        listen   80;


        root home/laravel-app/;

        index index.php index.html index.htm;

        server_name example.com;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on the php-fpm socket
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }

}

Update

Ich habe diese Anweisung befolgt: hier


Irgendwelche Hinweise/Vorschläge dazu werden eine große Hilfe sein! 

16
kyo

Sie müssen einen absoluten Pfad für Ihre root-Direktive angeben. Nginx verwendet das Verzeichnis, das zur Kompilierzeit mit dem Schalter --prefix festgelegt wurde. Standardmäßig ist dies /usr/local/nginx.

Dies bedeutet, dass Ihr Root, der derzeit auf root home/laravel-app/ eingestellt ist, veranlasst, dass nginx unter /usr/local/nginx/home/laravel-app/ nach Dateien sucht.

Wenn Sie Ihre root-Direktive auf einen absoluten Pfad wie /var/www/laravel-app/public/ setzen, sucht nginx die Dateien.

In ähnlicher Weise werden Sie feststellen, dass ich /public/ zu dem Pfad oben hinzugefügt habe. Dies liegt daran, dass Laravel die index.php-Datei dort speichert. Wenn Sie nur auf /laravel-app/ zeigen würden, gibt es keine Indexdatei, und Sie erhalten eine 403.

11
Ben Swinburne

sie benötigen eine Regel für PHP-Dateien (in der Standarddatei)

# pass the PHP scripts to FastCGI server listening on (...)
#
location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}
0
ali haider

Der Fehler, den Sie in Ihrem Update hinzugefügt haben, zeigt an, dass nginx einen Verzeichnisindex aus Ihrem ssc-portal-Ordner versucht. Da Sie anscheinend eine einfache Nginx-Installation verwenden, ist der einzige Grund, warum ein Verzeichnisindex hier fehlschlagen sollte, wenn Nginx die aufgelisteten Indexoptionen nicht finden kann.

In Ihrem Serverblock fordern Sie nginx auf, die folgenden Positionen in der Reihenfolge zu versuchen, wenn eine Verzeichnisliste angefordert wird (ein URI, der mit einem nachgestellten Schrägstrich endet): index.php, index.html und dann index.htm.

Wenn keine dieser Dateien gefunden wird, schlägt die Verzeichnisindexanforderung fehl.

Meine beste Vermutung ist, dass Sie Ihre index.php-Datei am falschen Ort haben. Haben Sie es aus dem Ordner "ssc-portal" nach oben verschoben?

0
Trip