Я новичок в системном администрировании. После установки nginxчерез марионеткуна Ubuntu я получаю следующий вывод:
[alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
[warn] 1898#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
[emerg] 1898#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)
Как избавиться от всех этих сообщений?
Я не хочу использовать командную строку напрямую (chown / chmod) и повторять это каждый раз, когда создаю новый сервер. Поэтому я думаю о том, что нужно добавить в манифест puppet.
Какова лучшая практика системного администратора в этом случае: изменить владельца/разрешения для /var/log/nginx или хранить логи в другом месте? Если chown/chmod — это выход, какие конкретные разрешения обеспечат наивысший уровень безопасности?
Я попробовал это, но это не помогло:
file { '/var/log/nginx':
ensure => directory,
mode => '0755',
owner => 'www-data',
group => 'www-data',
recurse => true
}
Отредактировано:
vagrant@precise64:~$ ps aux | grep [n]ginx
root 1001 0.0 0.1 62908 1388 ? Ss 08:47 0:00 nginx: master process /usr/sbin/nginx
www-data 1002 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process
www-data 1003 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process
www-data 1004 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process
www-data 1005 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process
vagrant@precise64:~$ sudo chown -R www-data:www-data /var/log/nginx;
vagrant@precise64:~$ sudo chmod -R 755 /var/log/nginx;
vagrant@precise64:~$ ls -l /var/log/nginx/
-rwxr-xr-x 1 www-data www-data 214 Sep 10 11:07 error.log
решение1
этотмогли бы вам помочь.
Сообщения, которые вы получаете, связаны с тем, что вы запустили nginx как не-root пользователь или без использованиясудо.
Чтобы избавиться от ошибки log dir, вам нужно проверить, от имени какого пользователя запущен nginx, и предоставить соответствующие права для этой папки (ваше правило puppet, возможно, предоставило права не той папке).
Предупреждающее сообщение, о котором вы сообщили, вызвано тем фактом, что (как указано в предупреждении) директива «user» предназначена для использования ТОЛЬКО в том случае, если ваш главный процесс nginx запущен от имени root.
решение2
Я знаю, что прошло много времени, но обычно это связано с SELinux. Попробуйте установить его в режим permissive, и, вероятно, все будет работать нормально.