web-dev-qa-db-fra.com

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

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à défini sur www www (si vous voyez dans le fichier lié) Comment puis-je changer l'utilisateur NGINX?

25
bernie2436

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

34
Michael Hampton

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

user nobody;
8
Aaron_H

Créez l'utilisateur www. 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
3
Justin

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;
0
Rochmad Saputra

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-data si vous l'utilisez à la place

adduser  --no-create-home  --system  --user-group --Shell /bin/false   www-data  
0
Salem F

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. La modification de la valeur derrière -u à ​​l'ID de l'utilisateur nginx résout alors ce problème.

0
user637338