Ich bekomme immer 403 Forbidden
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!
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.
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;
}
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?