Я новичок в системном администрировании. После установки 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) и повторять ее каждый раз при создании нового сервера. Поэтому я думаю о том, что нужно добавить в манифест марионетки.
Как лучше всего поступить сисадмину в этом случае: изменить владельца / разрешения для / 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
этот мог бы вам помочь.
Сообщения, которые вы получаете, связаны с тем, что вы запустили nginx как пользователь без полномочий root или без использования судо.
Чтобы избавиться от ошибки log dir, вам необходимо проверить, от имени какого пользователя запущен nginx, и предоставить соответствующие разрешения для этой папки (возможно, ваше правило марионетки давало права не тому)
Предупреждающее сообщение, о котором вы сообщили, вызвано тем фактом, что (как указано в предупреждении) директива «user» предназначена для использования ТОЛЬКО, когда ваш главный процесс nginx работает от имени пользователя root.
Я знаю, что это было давно, но обычно это связано с SELinux. Попробуйте установить его в разрешающий режим, и он, вероятно, будет работать нормально.