web-dev-qa-db-ja.com

getpwnam( "www")が/etc/nginx/nginx.confで失敗しました

nginx.conf サンプルをubuntu 12.04ボックスにコピーしました(他のconfファイルの配置場所がわかりません。nginxnoobです)。 nginxを起動しようとすると、次のエラーが発生します。

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

このエラーはどういう意味ですか?どうすれば修正できますか?この投稿を見つけましたが、ユーザーは既にwww wwwに設定されています(リンクされたファイルに表示されている場合) NGINXユーザーを変更するにはどうすればよいですか

25
bernie2436

構成で指定したユーザーwwwは存在しません。ユーザーを作成するか、存在するユーザーを選択してください。

34
Michael Hampton

他のオプション(新しいユーザーを作成したくない場合)は、nginx.confのユーザーフィールドを次のように置き換えることです。

user nobody;
8
Aaron_H

wwwユーザーを作成します。 Ubuntuでは、次のコマンドとフラグを使用してこれを行う必要があります。

Sudo adduser --system --no-create-home --Shell /bin/false --group --disabled-login www
3
Justin

nginxバージョン:OpenSSL 1.1.0gでビルドされたgcc 5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1〜16.04.9)でビルドされたnginx/1.13.9 2017年2月2日

ただ使う

user  nobody nogroup;
0
Rochmad Saputra

これは私のために働くコマンド「Scientific Linux」です

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

またはユーザー名www-data代わりに使用する場合

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

マイケル・ハンプトンズの答えは正しいですが、それは答えの一部にすぎません。より完全なバージョンは次のとおりです。

  1. ユーザーが存在するかどうかを確認します
  2. Dockerコンテナーの起動に使用しているユーザーも確認してください

もしあなたがそうするなら:

docker -u 0 ....

その場合、ユーザーがホストシステムに存在していても同じメッセージが表示されます。 -uの背後の値をユーザーnginxのIDに変更すると、この問題が解決します。

0
user637338