web-dev-qa-db-fra.com

403 Interdit sur nginx/1.4.6 (Ubuntu) - Laravel

Je continue à obtenir 403 Forbidden

 enter image description here


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! 

16
kyo

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.

11
Ben Swinburne

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;
}
0
ali haider

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?

0
Trip