échec de getpwnam («www») dans /etc/nginx/nginx.conf

24

J'ai copié l' exemple nginx.conf sur ma boîte ubuntu 12.04 (je ne sais pas où placer les autres fichiers de conf. Je suis un noob nginx). Lorsque j'essaie de démarrer nginx, j'obtiens l'erreur suivante:

abe-lens-laptop@abe:/etc$ sudo service nginx start
Starting nginx: nginx: [emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed

Que signifie cette erreur? Comment puis-je le réparer? J'ai trouvé ce message mais mon utilisateur est déjà configuré sur www www (si vous voyez dans le fichier lié) Comment puis-je changer l'utilisateur NGINX?

bernie2436
la source
Le lien vers nginx.config est rompu
Josh Noe

Réponses:

33

L'utilisateur que vous avez spécifié dans votre configuration www, n'existe pas. Créez l'utilisateur ou choisissez un utilisateur qui existe.

Michael Hampton
la source
3
la syntaxe est: useradd www
Jonesome Reinstate Monica
8

Votre autre option (si vous ne voulez pas créer un nouvel utilisateur) est de remplacer le champ utilisateur dans nginx.conf par:

user nobody;
Aaron_H
la source
3

Créez l' wwwutilisateur. Sur Ubuntu, cela devrait être fait en utilisant la commande et les drapeaux suivants:

sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login www
Justin
la source
0

Bien que la réponse de Michael Hamptons soit correcte, ce n'est qu'une partie de la réponse. Une version plus complète serait:

  1. Vérifiez si l'utilisateur existe
  2. Vérifiez également quel utilisateur vous utilisez pour démarrer le conteneur Docker

Si tu fais:

docker -u 0 ....

alors le même message apparaîtra même si l'utilisateur existe sur le système hôte. Changer la valeur derrière -u à ​​l'id de l'utilisateur nginx résout alors ce problème.

user637338
la source
0

version nginx: nginx / 1.13.9 construit par gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) construit avec OpenSSL 1.1.0g 2 novembre 2017

il suffit d'utiliser

user  nobody nogroup;
Rochmad Saputra
la source
0

Ceci est la commande qui fonctionne pour moi "Scientific Linux"

adduser  --no-create-home  --system  --user-group --shell /bin/false   www

ou le nom d'utilisateur www-datasi vous l'utilisez à la place

adduser  --no-create-home  --system  --user-group --shell /bin/false   www-data  
Salem F
la source
-1

J'ai eu le même problème ... J'ai choisi l'utilisateur "nginx" et il n'existait pas. Je l'ai résolu en reconfigurant et en recompilant NGINX en choisissant un existant.

./configure --prefix = / opt / nginx --user = myUser --group = myUsergroup

Tout va bien maintenant...

Jorge Luis Guacarán
la source
Les options de compilation sont un moyen de définir des valeurs par défaut pour certaines directives. Il n'est bien sûr pas nécessaire de recompiler nginx pour les modifier: ces valeurs par défaut sont surchargées par les fichiers de configuration.
Xavier Lucas
Bien sûr, mais nous parlons de la première configuration / compilation ...
Jorge Luis Guacarán
Où avez-vous lu cela exactement? La première configuration n'a rien à voir avec la compilation btw.
Xavier Lucas