Je continue à obtenir 403 Forbidden
Mes paramètres:
/etc/nginx/sites-available/default
défaut
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;
}
}
Mettre à jour
J'ai suivi cette instruction: ici
Toute astuce/suggestion à ce sujet sera d'une grande aide!
Vous devez spécifier un chemin absolu pour votre directive root
. Nginx utilise le répertoire défini lors de la compilation à l’aide du commutateur --prefix. Par défaut, il s'agit de /usr/local/nginx
.
Cela signifie que votre racine, qui est actuellement définie sur root home/laravel-app/
, force nginx à rechercher les fichiers au niveau /usr/local/nginx/home/laravel-app/
, ce qui n’est vraisemblablement pas à l’emplacement où se trouvent vos fichiers.
Si vous définissez votre directive root
sur un chemin absolu tel que /var/www/laravel-app/public/
nginx recherchera les fichiers.
De même, vous remarquerez que j'ai ajouté /public/
au chemin ci-dessus. En effet, Laravel stocke son fichier index.php
à cet emplacement. Si vous deviez simplement pointer sur /laravel-app/
, il n'y aurait pas de fichier d'index et cela vous donnerait un 403.
vous devez avoir une règle pour les fichiers php (dans le fichier par défaut)
# 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;
}
L'erreur que vous avez ajoutée dans votre mise à jour indique que nginx tente un index de répertoire à partir de votre dossier ssc-portal. Comme vous semblez utiliser une installation nginx de base, la seule raison pour laquelle un index de répertoire doit échouer ici est que si nginx ne parvient pas à trouver les options d'index répertoriées.
Dans votre bloc serveur, vous demandez à nginx d'essayer les emplacements suivants dans l'ordre lorsqu'une liste de répertoires est demandée (un URI se terminant par un slash de fin): index.php, index.html, puis index.htm.
Si aucun de ces fichiers n'est trouvé, la demande d'index de répertoire échoue.
Ma meilleure hypothèse est que vous avez votre fichier index.php au mauvais endroit. L'avez-vous déplacé du dossier ssc-portal?