Я запускаю nginx на компьютере MacOS X, установленном с помощью brew, и когда я запускаю nginx, даже с sudo, я снова и снова получаю следующее предупреждение в моем файле журнала:
4/21/11 2:03:42 AM org.nginx[3788] nginx: [warn] the "user" directive
makes sense only if the master process runs with super-user privileges,
ignored in /usr/local/etc/nginx/conf/nginx.conf:2
Из nginx.conf
:
user jschuur staff;
Я уже запускаю nginx с sudo, так как хочу, чтобы он слушал порт 80. Разве этого не должно быть достаточно, чтобы дать ему соответствующие привилегии суперпользователя?
Бинарный файл nginx в том виде, в каком он установлен:
jschuur@Glenna:sbin → master ls -la
total 4544
drwxr-xr-x 3 jschuur staff 102 Apr 12 20:53 .
drwxrwxr-x 15 jschuur staff 510 Apr 12 15:25 ..
-rwxr-xr-x 1 jschuur staff 2325648 Apr 12 20:39 nginx
FWIW, я перекомпилировал двоичный файл, чтобы настроить пассажира, и переместил его из исходного местоположения в / usr / local / sbin.
Обновить: Как оказалось, MacOS X перезапускал nginx после того, как я его остановил, потому что список launchd в ~ / Library / LaunchAgents установил для него значение KeepAlive. Однако, поскольку я установил этот список в папку LaunchAgents моего локального пользователя, а не в / Library / LaunchAgents (или еще лучше / Library / LaunchDaemons, которые запускаются до того, как вы даже войдете в систему), он не был выполнен с правами root. Из-за ошибки, связанной с отсутствием разрешений на использование порта 80, он фактически сразу же завершил работу, но по-прежнему записал в тот же файл журнала, что и процесс nginx, который я начал с sudo. Я думал, что ошибки, возникающие из-за автоматического перезапуска, на самом деле происходят из-за моего ручного перезапуска через sudo.
Итак, в итоге проблема решена. Настоящая проблема здесь заключалась в том, что инструкции homebrew специально просили вас установить файл plist в область, которая не позволяет локальному сайту использовать порт 80.
Вы должны проверить где угодно sudo id
команда показывает uid = 0