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.

Blankman
la source

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.

Alex
la source
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 ...

Alister Bulman
la source
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.

Geraint Jones
la source
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.

Martin Fjordvald
la source
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