le journal des erreurs nginx était énorme, j'ai donc supprimé et créé un nouveau, maintenant nginx ne démarre pas


11

J'ai supprimé le fichier /var/log/nginx/error.log , puis j'en ai créé un nouveau en utilisant:

sudo nano error.log

Cela ls -lamontre que error.log et access.log ont les mêmes autorisations.

Lorsque j'essaie de démarrer nginx, j'obtiens l'erreur:

alerte: impossible d'ouvrir le fichier journal des erreurs: open () "/var/log/nginx/error.log" a échoué l'autorisation refusée.

Mise à jour

En essayant de démarrer nginx, je vois également:

Emerg: /var/run/nginx.pid a échoué 13: autorisation refusée.

Réponses:


25

Cela ne résout pas votre problème, mais à l'avenir, si vous le faites

cat / dev / null> / file / you / want / to / wipe-out

vous copiez le contenu du fichier sans rien et gardez toutes les autorisations intactes.

Non spécifique à nginx, mais en outre, assurez-vous que vous exécutez l'application en tant qu'utilisateur sous lequel elle est censée s'exécuter. Si vous l'avez déjà exécuté en tant que root, toutes les autorisations seront détenues par root, de sorte que les autres utilisateurs ne pourront pas l'exécuter.


En quoi est-ce différent de l'utilisation echo "" > /file/to/empty? Sont-ils tous les deux identiques?
Gowtham Gopalakrishnan

Ça devrait être pareil. De plus, vous pouvez laisser de côté toutes les choses au début et le faire> /file/to/empty
Alex

5

La façon habituelle de faire pivoter les journaux avec NginX est de renommer le fichier, puis /etc/init.d/nginx reload. Le serveur démarre un nouveau fichier et vous pouvez faire ce que vous voulez avec l'ancien.

Vous pouvez également trouver utile de modifier la configuration pour ne pas vous connecter autant ...


2

jetez un oeil dans la configuration nginx, vérifiez qui est le serveur en cours d'exécution - on devine que l'utilisateur sera nginx

donc :

chown nginx: /var/run/nginx.pid chown -R nginx: /var/log/nginx

Devrait faire l'affaire.


mais pourquoi fonctionnait-il avant?
Blankman

1
Je soupçonne que vous avez essayé de l'exécuter en tant que root, puis avez essayé de le démarrer avec son script init.
Geraint Jones

eh bien je commence toujours comme ça, hmm ....
Blankman

nginx.conf dit: "utilisateur www-data"
Blankman

1

Supprimez le fichier error.log et nginx le créera lui-même.


je l'ai supprimé, puis lorsque j'essaie de démarrer nginx, il me donne la même erreur que l'autorisation refusée sur le fichier /var/log/nginx/error.log
Blankman

Supprimez le journal et redémarrez Nginx. Il créera automatiquement le journal.
WhiteHorse

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.