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?
L'utilisateur que vous avez spécifié dans votre configuration, www
, n'existe pas. Créez l'utilisateur ou choisissez un utilisateur qui existe.
Votre autre option (si vous ne souhaitez pas créer un nouvel utilisateur) consiste à remplacer le champ utilisateur dans nginx.conf par:
user nobody;
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
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;
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
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:
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.