getpwnam (Tiếng www www) không thành công trong /etc/nginx/nginx.conf


24

Tôi đã sao chép mẫu nginx.conf vào hộp ub Ubuntu 12.04 của mình (Tôi không biết nơi để đặt các tệp conf khác. Tôi là một nginx noob). Khi tôi cố gắng khởi động nginx, tôi gặp lỗi sau:

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

Lỗi này nghĩa là gì? Làm thế nào tôi có thể sửa chữa nó? Tôi đã tìm thấy bài đăng này nhưng người dùng của tôi đã được đặt thành www www (nếu bạn thấy trong tệp được liên kết) Làm cách nào để thay đổi người dùng NGINX?


Liên kết đến nginx.config bị hỏng
Josh Noe

Câu trả lời:



8

Tùy chọn khác của bạn (nếu bạn không muốn tạo người dùng mới) là thay thế trường người dùng trong nginx.conf bằng:

user nobody;

3

Tạo wwwngười dùng. Trên Ubuntu, điều này nên được thực hiện bằng cách sử dụng lệnh và cờ sau:

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

0

Trong khi câu trả lời của Michael Hamptons là chính xác, nó chỉ là một phần của câu trả lời. Một phiên bản hoàn chỉnh hơn sẽ là:

  1. Kiểm tra xem người dùng có tồn tại không
  2. Đồng thời kiểm tra xem người dùng nào bạn sử dụng để khởi động container docker

Nếu bạn làm:

docker -u 0 ....

sau đó cùng một thông báo sẽ xuất hiện ngay cả khi người dùng tồn tại trên hệ thống máy chủ. Thay đổi giá trị phía sau -u thành id của người dùng nginx sau đó giải quyết vấn đề này.


0

phiên bản nginx: nginx / 1.13.9 được xây dựng bởi gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubfox1 ~ 16.04.9) được xây dựng với OpenSSL 1.1.0g ngày 2 tháng 11 năm 2017

chỉ dùng

user  nobody nogroup;

0

Đây là lệnh phù hợp với tôi "Khoa học Linux"

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

hoặc tên người dùng www-datanếu bạn sử dụng nó thay thế

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

-1

Tôi có cùng một vấn đề ... Tôi đã chọn người dùng "nginx" và nó không tồn tại. Tôi đã giải quyết nó cấu hình lại và biên dịch lại NGINX bằng cách chọn một cái hiện có.

./ thông minh --prefix = / opt / nginx --user = myUser --group = myUsergroup

Mọi chuyện bây giơ đêu ổn...


Tùy chọn biên dịch là một cách để đặt giá trị mặc định cho một số lệnh. Tất nhiên không cần thiết phải biên dịch lại nginx để thay đổi những điều này: các giá trị mặc định này bị quá tải bởi các tệp cấu hình.
Xavier Lucas

Tất nhiên, nhưng chúng ta đang nói về lần tổng hợp / biên dịch lần đầu tiên ...
Jorge Luis Guacarán

Bạn đã đọc chính xác ở đâu? Cấu hình đầu tiên không có gì để làm với btw biên dịch.
Xavier Lucas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.