403-forbidden - La modification de la racine Web par Nginx provoque 403 Forbidden
巴扎黑
巴扎黑 2017-05-16 17:16:34
0
1
811

1. Contexte
Environnement du serveur : CentOS7/Nginx1.10.0

2. Problème
Après avoir modifié le répertoire racine Web par défaut de Nginx, un problème 403 Forbidden se produit lors de l'accès au site Web.

Répertoire par défaut : /usr/share/nginx/html

[root@AllenServer html]# pwd                                                                                                                             
/usr/share/nginx/html
[root@AllenServer html]# ls -al
总用量 16
drwxr-xr-x. 2 allen allen  71 5月  29 01:45 .
drwxr-xr-x. 5 allen allen  51 6月   1 14:47 ..
-rw-r--r--. 1 allen allen 537 4月  26 23:11 50x.html
-rw-r--r--. 1 allen allen  22 5月  29 01:45 index2.php
-rw-r--r--. 1 allen allen 617 5月  29 01:23 index.html
-rw-r--r--. 1 allen allen 167 5月  29 01:36 index.php

Nouveau répertoire : /home/nginx/default

[root@AllenServer default]# pwd                                                                                                                          
/home/nginx/default
[root@AllenServer default]# ls -al
总用量 16
drwxrwxrwx. 2 nginx nginx  71 6月   2 17:15 .
drwxrwxrwx. 3 nginx nginx  20 6月   1 16:10 ..
-rwxrwxrwx. 1 nginx nginx 537 6月   1 16:11 50x.html
-rwxrwxrwx. 1 nginx nginx  22 6月   1 16:11 index2.php
-rwxrwxrwx. 1 nginx nginx 618 6月   2 17:15 index.html
-rwxrwxrwx. 1 nginx nginx 167 6月   1 16:11 index.php

Fichier de configuration Nginx :

[root@AllenServer default]# more /etc/nginx/nginx.conf 
user  nginx;
#user  root;
worker_processes  1;

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


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

Profil du site :

[root@AllenServer conf.d]# more default.conf 
server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        #root   /usr/share/nginx/html;
        root   /home/nginx/default;
        #root   /test;
        index  index.html index.htm index.php;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        #root   /usr/share/nginx/html;
        root   /home/nginx/default;
        #root   /test;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        #root           /usr/share/nginx/html;
        root           /home/nginx/default;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

3. Description
(1) Il est normal d'accéder au répertoire par défaut avant de modifier la configuration ;
(2) Redémarrez le service Nginx après avoir modifié la configuration ;
(3) Un problème 403 se produit lors de l'accès après avoir modifié la nouvelle racine Web ; annuaire.

Pouvez-vous s'il vous plaît me dire comment résoudre ce problème ?

巴扎黑
巴扎黑

répondre à tous(1)
仅有的幸福

Les problèmes d'autorisation sont généralement vérifiés comme ceci :

  • Passer à l'utilisateur utilisant le logiciel problématique. Par exemple su - nginx

  • Essayez d'entrer dans le répertoire problématique un niveau à la fois en commençant par /

  • Essayez de lire le fichier

Lors de l'accès à un fichier, non seulement les autorisations du fichier cible doivent être autorisées, mais également les autorisations de tous les niveaux des répertoires supérieurs.

Regardez à quelle étape l'erreur est signalée et vous saurez où se situe le problème.

Notez également qu'en plus des autorisations POSIX de base, vos autorisations incluent également SELinux. Veuillez vérifier si SELinux est activé, SELinux doit également autoriser nginx à y accéder. Si le problème est causé par SELinux, SELinux dispose d'un programme de reporting spécial pour afficher des informations détaillées.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!