CentOS 6.6 avec Nginx 1.6.2 – Soudain, impossible de redémarrer nginx – nginx: open () “/ usr / share / nginx / on” a échoué (13: autorisation refusée)

Ceci est une nouvelle installation dans laquelle nginx a précédemment démarré et s’est arrêté normalement. Je crois que cette erreur est survenue après avoir activé les blocs de serveur testés (nginx -t) avec succès. J’ai ensuite essayé de redémarrer nginx et j’ai reçu cette erreur:

nginx: [emerg] open() "/usr/share/nginx/on" failed (13: Permission denied)

Le fichier “on” n’existait pas avant la tentative de redémarrage. Il vient d’être créé et est vide. Lorsque je redémarre php-fmp (avec succès) puis que j’essaie de redémarrer nginx, l’erreur passe à:

nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied) nginx: configuration file /etc/nginx/nginx.conf test failed

Mais encore une fois, quand je lance nginx -t , je reçois:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Je pensais que cela pourrait être un problème d’utilisateur, mais il fonctionne comme nginx:

# ps -elf | grep nginx 5 S nginx 2774 2773 0 80 0 - 234152 skb_re 22:07 ? 00:00:00 php-fpm: pool www 5 S nginx 2775 2773 0 80 0 - 234152 skb_re 22:07 ? 00:00:00 php-fpm: pool www 5 S nginx 2776 2773 0 80 0 - 234152 skb_re 22:07 ? 00:00:00 php-fpm: pool www 5 S nginx 2777 2773 0 80 0 - 234152 skb_re 22:07 ? 00:00:00 php-fpm: pool www 5 S nginx 2778 2773 0 80 0 - 234152 skb_re 22:07 ? 00:00:00 php-fpm: pool www 0 R root 2940 2472 0 80 0 - 25811 - 22:18 pts/0 00:00:00 grep nginx

De plus, en utilisant sudo nginx -t ne change rien. Ce qui est aussi étrange, c’est le fait qu’il y ait un nginx.pid même si nginx n’est pas en cours d’exécution. La suppression du fichier pid modifie simplement le message d’erreur à:

nginx: [emerg] open() "/usr/share/nginx/on" failed (13: Permission denied)

La suppression du fichier ne fait aucune différence non plus.

Assurez-vous que vous êtes un superutilisateur.

 sudo nginx -t 

Exécutez getenforce pour vérifier le mode SELinux. S’il est écrit Enforcing, définissez temporairement le mode sur Permissive en exécutant setenforce 0 et vérifiez si votre application fonctionne ensuite.