O getpwnam (“www”) falhou no /etc/nginx/nginx.conf

24

Copiei o exemplo nginx.conf na minha caixa do ubuntu 12.04 (não sei onde colocar os outros arquivos conf. Sou um nginx noob). Quando tento iniciar o nginx, recebo o seguinte erro:

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

O que esse erro significa? Como posso corrigir isso? Encontrei esta postagem, mas meu usuário já está definido como www www (se você vir no arquivo vinculado) Como altero o usuário do NGINX?

bernie2436
fonte
Link para nginx.config está quebrado
Josh Noe

Respostas:

33

O usuário que você especificou em sua configuração www,, não existe. Crie o usuário ou escolha um usuário que exista.

Michael Hampton
fonte
3
a sintaxe é: useradd www
Jonesome Reinstate Monica
8

Sua outra opção (se você não deseja criar um novo usuário) é substituir o campo do usuário no nginx.conf por:

user nobody;
Aaron_H
fonte
3

Crie o wwwusuário. No Ubuntu, isso deve ser feito usando o seguinte comando e sinalizadores:

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

Enquanto a resposta de Michael Hamptons está correta, é apenas parte da resposta. Uma versão mais completa seria:

  1. Verifique se o usuário existe
  2. Verifique também qual usuário você usa para iniciar o contêiner do docker

Se você fizer:

docker -u 0 ....

a mesma mensagem será exibida mesmo se o usuário existir no sistema host. Alterar o valor por trás de -u para o ID do usuário nginx resolve esse problema.

user637338
fonte
0

Versão do nginx: nginx / 1.13.9 compilado pelo gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) compilado com o OpenSSL 1.1.0g 2 de novembro de 2017

Apenas use

user  nobody nogroup;
Rochmad Saputra
fonte
0

Este é o comando que funciona para mim "Scientific Linux"

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

ou o nome de usuário, www-datase você usá-lo

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

Eu tive o mesmo problema ... escolhi o usuário "nginx" e ele não existia. Eu o resolvi reconfigurando e recompilando o NGINX escolhendo um já existente.

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

Tudo está bem agora...

Jorge Luis Guacarán
fonte
As opções de compilação são uma maneira de definir valores padrão para algumas diretivas. Obviamente, não é necessário compilar o nginx novamente para alterar isso: esses valores padrão estão sobrecarregados pelos arquivos de configuração.
Xavier Lucas
Claro, mas estamos falando sobre a primeira vez confguração / compilação ...
Jorge Luis Guacarán
Onde você leu exatamente? A primeira configuração não tem nada a ver com a compilação btw.
Xavier Lucas