Voici ce que j'ai dans ls -al /etc/nginx
:
total 52
drwxr-xr-x. 4 root root 4096 Jul 28 04:16 .
drwxr-xr-x. 78 root root 8192 Jul 28 03:37 ..
drwxr-xr-x. 2 root root 26 Jul 28 03:55 conf.d
drwxr-xr-x. 2 root root 6 May 10 09:21 default.d
-rw-r--r--. 1 root root 1034 May 10 09:21 fastcgi.conf
-rw-r--r--. 1 root root 964 May 10 09:21 fastcgi_params
-rw-r--r--. 1 root root 2837 May 10 09:21 koi-utf
-rw-r--r--. 1 root root 2223 May 10 09:21 koi-win
-rw-r--r--. 1 root root 3957 May 10 09:21 mime.types
-rw-r--r--. 1 root root 1033 Jul 28 03:43 nginx.conf
-rw-r--r--. 1 root root 596 May 10 09:21 scgi_params
-rw-r--r--. 1 root root 623 May 10 09:21 uwsgi_params
-rw-r--r--. 1 root root 3610 May 10 09:21 win-utf
Voici ce que je vois /var/log/nginx/error.log
après sudo service nginx start
:
[emerg] 20360#0: open() "/etc/nginx/conf.d/foo.conf" failed
(13: Permission denied) in /etc/nginx/nginx.conf:33
C'est ce que j'ai dans ls -al /etc/nginx/conf.d/
:
$ ls -al /etc/nginx/conf.d/
total 8
drwxr-xr-x. 2 root root 26 Jul 28 03:55 .
drwxr-xr-x. 4 root root 4096 Jul 28 04:16 ..
-rw-r--r--. 1 root root 230 Jul 28 03:50 foo.conf
Qu'est-ce qui ne va pas?
ls -lZ
montre-t-on? Essayez desetenforce 0
voir si cela fonctionne.setenforce 0
aidé. S'il vous plaît, soumettez-le comme réponse, je l'accepteraiRéponses:
Lorsque vous obtenez des
permission denied
erreurs sur l'accès aux fichiers, etc. pour une raison inconnue, cela peut être lié à SELinux. Surtout lorsque vous voyez une période suivant les autorisations commedrwxr-xr-x.
indiqué parls -l
pour le fichier / dir en question, elles peuvent être mal étiquetées (vous pouvez le voir parls -Z
) et provoquer le problème.Vous devez d'abord vérifier le mode SELinux actuel en exécutant
getenforce
. Si c'est le casEnforcing
, définissez temporairement le mode surPermissive
en exécutantsetenforce 0
et voyez si votre application fonctionne par la suite.Veuillez consulter le guide de votre distribution sur SELinux pour un correctif permanent, y compris la définition du mode SELinux au démarrage, le réétiquetage des fichiers ou des répertoires, la mise à jour des politiques, etc. Voici le Howto pour CentOS .
la source
Modifier tout SElinux n'est pas toujours la bonne réponse. Je ne suis pas un expert mais je le comparerais avec la désactivation du pare-feu si un port n'est pas accessible.
Une autre solution rapide pourrait être de "restaurer le contexte SE" des fichiers, surtout si ceux-ci sont copiés de quelque part.
Voir https://www.thegeekstuff.com/2017/05/restorecon-examples/ pour plus de détails.
Ce sont des commandes à essayer avant de désactiver SElinux
la source
Full path required for exclude: net:[...].
Une meilleure façon que de désactiver selinux est d'utiliser la commande
Cela permettra au service toe nginx de passer sans désactiver complètement selinux
Plus d'informations sur https://www.nginx.com/blog/using-nginx-plus-with-selinux/
Cependant, pour moi, exécuter le
command chcon -v --type=httpd_sys_content_t /etc/nginx/*
et cela a fonctionné correctement sans avoir à excuser httpd_tla source