nginx: [emerg] getgrnam ("nobody") не удалось - PullRequest
0 голосов
/ 25 апреля 2019

при установке сертификата letsencrypt выводится ошибка:

nginx: the configuration file /jet/etc/nginx/nginx.conf syntax is ok 
nginx: [emerg] getgrnam(“nobody”) failed 
nginx: configuration file /jet/etc/nginx/nginx.conf test failed

, но если я запускаю:

nginx -t

, чтобы увидеть, есть ли ошибки конфигурации в файле nginx.conf, nginx -t возвращает вывод:

nginx: the configuration file /jet/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /jet/etc/nginx/nginx.conf test is successful

Время от времени на WordPress я также получаю сообщение об ошибке:

ошибка внутреннего сервера 500

иЯ не знаю, связано ли это с проблемой, которую я описал выше. Мой веб-сервер (включает версию):

Операционная система, на которой работает мой веб-сервер, (включает версию):

Linux lemp7-optimized-g2-1-vm 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64

профиль стека jeware lemp7

jetware

Мне удалось установить сертификаты, вставив строку с «user nobody nogroup;» в файл nginx.conf

После установки я удалил строку с «user nobody nogroup;» в файле nginx.conf

sudo wget https://dl.eff.org/certbot-auto

sudo mv certbot-auto /jet/etc/letsencrypt/certbot-auto

sudo chown root /jet/etc/letsencrypt/certbot-auto

sudo chmod 0755 /jet/etc/letsencrypt/certbot-auto

sudo chmod a+x /jet/etc/letsencrypt/certbot-auto

sudo /jet/etc/letsencrypt/certbot-auto --nginx --nginx-ctl /jet/bin/nginx --nginx-server-root /jet/etc/nginx --config-dir /jet/etc/letsencrypt

это производит это output:

nginx: the configuration file /jet/etc/nginx/nginx.conf syntax is ok nginx: [emerg] getgrnam(“nobody”) failed nginx: configuration file /jet/etc/nginx/nginx.conf test failed

, но если я запустил: nginx -t, чтобы увидеть, есть ли ошибки конфигурации в файле nginx.conf, nginx -t вернет вывод:

nginx: the configuration file /jet/etc/nginx/nginx.conf syntax is ok nginx: configuration file /jet/etc/nginx/nginx.conf test is successful

время от времени в WordPress я также получаю сообщение об ошибке: internal server 500 error, и я не знаю, связано ли это с проблемой, которую я описал выше

Я будувероятно, также есть проблемы с автоматическим продлением сертификата, если я не разрешаю эту ситуацию

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

Ну, я решил проблему. К счастью, мне удалось найти ошибку в журнале, и я понял, что случилось.

«certbot-auto» устанавливает сертификаты, используя пользователя: nobody . В моей системе по умолчанию уже существует пользователь «nobody» из группы «nogroup», но он не имеет доступа к nginx. пользователь никто

Таким образом, чтобы установить сертификаты, мне нужно было вставить строку с директивой: user nobody nogroup; внутри nginx.conf.

Это позволило установить сертификаты. Однако эта процедура изменила разрешения в каталоге: / jet / tmp / nginx / где вместо: my_ssh_user: my_ssh_group Я обнаружил: nobody: my_ssh_group и с этим измененным параметром я получил ошибку внутренний сервер 500 на панели администратора WordPress. Таким образом, проблема связана не с WordPress, а с процедурой установки сертификата.

После установки сертификатов я удалил директиву user nobody nogroup; , потому что при перезапуске nginx появилось предупреждение о том, что эта директива не поддерживается и поэтому будет игнорироваться.

Восстановление разрешений с помощью chmod для каталога: / jet / tmp / nginx I исправлено проблема и ошибка внутреннего сервера 500 исчезли.

0 голосов
/ 29 апреля 2019

Здесь ссылка того же обсуждения на letsencrypt.Я все еще сомневаюсь, что ошибка может повториться, когда мне придется обновить сертификаты.

Возможное решение может состоять в том, чтобы назначить пользователю ssh виртуального экземпляра, который не имеет корневых разрешений, корневые разрешения, добавив его вкорневая группа.

На виртуальных хостах при запуске экземпляра создается пользователь ssh.Этот пользователь по соображениям безопасности не имеет прав root.По умолчанию letsencrypt устанавливает сертификаты в папку / etc / letsencrypt, у которой есть права доступа root (пользователь: root group: root).

Мне пришлось установить сертификаты в папку, к которой у пользователя ssh может быть доступ (пользователь: myssh_user группа: myssh_group), то есть su / jet / etc / letsencrypt

Может ли быть причиной ошибки это?

...