Entrée de l’application Nginx interdite bien que les permissions de firebase database de la firebase database et du CMS soient définies et que les droits d’access des DR soient définis

Sur Ubuntu 16.04 avec Bash, j’ai créé LEMP et je ne peux pas accéder à une application WordPress depuis un navigateur bien que les données de firebase database soient conformes (si je me souviens bien),

Nginx conf

  • nginx.conf (tous par défaut).
  • nginx default (tous par défaut).
  • Nginx app conf (sept premières lignes sont à moi – le rest est Certbot).

Application WordPress wp-config.php

C’est la seule partie que j’ai changée dans wp-config.php :

 define('DB_NAME', 'example.com'); define('DB_USER', 'example.com'); define('DB_PASSWORD', 'example.password'); 

Mes réinitialisations avant le test

 chown -R www-data:www-data /var/www/html/ chmod -R ax,a=rX,u+w /var/www/html/ systemctl restart nginx.service /etc/init.d/php*-fpm restart 

Journaux Nginx

J’ai vérifié les trois journaux Nginx ( -t , access et error ). Les deux premiers journaux ne génèrent aucune erreur, mais l’ error génère ce résultat:

 directory index of "/var/www/html/example.com/" is forbidden 

Ma question

Pourquoi l’entrée est-elle interdite, compte tenu des données ci-dessus? Ce qui me manque

Remarques:

  1. Ce problème est unique à l’application WordPress. Cela ne se produit pas avec l’application non HTTPS, PHPmyadmin.
  2. L’utilisateur de firebase database et le nom de firebase database de l’application WordPress sont identiques les uns aux autres et identiques au nom de répertoire de l’application.

La racine du serveur sur votre Nginxapp.conf devrait être:

 root /var/www/html; 

Ne pas:

 root /var/www/html/example.com/; 

BTW, ce paramètre a été défini dans la machine virtuelle Nginx default.conf , il est en quelque sorte redondant de le redéfinir dans le fichier conf conf.

Mettre à jour

Avec votre commentaire de ne pas fonctionner après avoir changé la racine en root /var/www/html; , Je vérifie en outre votre paramètre et notez que vous n’avez pas de directive d’emplacement pour gérer le répertoire racine, essayez de modifier cette ligne dans votre paramètre d’hôte virtuel à partir de:

 try_files $uri $uri/ =404; 

à:

 location / { try_files $uri $uri/ /index.php?$args; } 

J’ai pu le résoudre avec cette conf:

 server { root /var/www/html/judith-law.co.il; server_name judith-law.co.il www.judith-law.co.il; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ { expires 365d; } # managed by Certbot listen 443 ssl http2; # managed by Certbot ssl_certificatee /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificatee_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = www.example.com) { return 301 https://$host$request_uri; } # managed by Certbot if ($host = example.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; return 404; # managed by Certbot }