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ユーザーを変更するにはどうすればよいですか
構成で指定したユーザーwww
は存在しません。ユーザーを作成するか、存在するユーザーを選択してください。
他のオプション(新しいユーザーを作成したくない場合)は、nginx.confのユーザーフィールドを次のように置き換えることです。
user nobody;
www
ユーザーを作成します。 Ubuntuでは、次のコマンドとフラグを使用してこれを行う必要があります。
Sudo adduser --system --no-create-home --Shell /bin/false --group --disabled-login www
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;
これは私のために働くコマンド「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
マイケル・ハンプトンズの答えは正しいですが、それは答えの一部にすぎません。より完全なバージョンは次のとおりです。
もしあなたがそうするなら:
docker -u 0 ....
その場合、ユーザーがホストシステムに存在していても同じメッセージが表示されます。 -uの背後の値をユーザーnginxのIDに変更すると、この問題が解決します。