Журнал ошибок nginx был огромен, поэтому я удалил и создал новый, теперь nginx не запускается

11

Я удалил файл /var/log/nginx/error.log , а затем создал новый, используя:

sudo nano error.log

Выполнение ls -laпоказывает, что error.log и access.log имеют одинаковые разрешения.

Когда я пытаюсь запустить nginx, я получаю сообщение об ошибке:

предупреждение: не удалось открыть файл журнала ошибок: open () "/var/log/nginx/error.log" отказано в разрешении.

Обновить

При попытке запустить nginx я также вижу:

emerg: /var/run/nginx.pid не удалось 13: разрешение отклонено.

Бланкмэн
источник

Ответы:

25

Это не решит вашу проблему, но в будущем, если вы это сделаете

cat / dev / null> / file / you / want / to / wipe-out

Вы скопируете содержимое файла без всяких усилий и сохраните все разрешения в такте.

Не специфично для nginx, но, кроме того, убедитесь, что вы запускаете приложение от имени пользователя, от которого предполагается его запускать. Если вы когда-либо запускали его как root, все права будут принадлежать root, поэтому другие пользователи не смогут его запустить.

Alex
источник
Чем он отличается от использования echo "" > /file/to/empty? Они оба одинаковые?
Гаутам Гопалакришнан
Это должно быть то же самое. Кроме того, вы можете пропустить все вещи в начале и просто сделать> /file/to/empty
Alex
5

Обычный способ повернуть логи с помощью NginX - переименовать файл, а затем /etc/init.d/nginx reload. Сервер запускает новый файл, и вы можете делать то, что вы хотите со старым.

Вы также можете найти полезным отредактировать конфигурацию, чтобы не регистрировать так много ....

Алистер Булман
источник
2

Загляните в конфиг nginx, проверьте, на каком сервере запущен сервер - возможно, пользователь будет nginx

так :

chown nginx: /var/run/nginx.pid chown -R nginx: /var/log/nginx

Должен сделать свое дело.

Герайнт Джонс
источник
но почему это работало раньше?
Blankman
1
Я подозреваю, потому что вы пытались запустить его как root, а затем попытались запустить его с помощью сценария инициализации.
Герайнт Джонс
ну я всегда так начинаю, хм ....
Blankman
nginx.conf говорит: «пользовательские www-данные»
Blankman
1

Удалите файл error.log, и nginx создаст его сам.

Мартин Фьордвальд
источник
я удалил его, а затем, когда я пытаюсь запустить nginx, выдает ту же ошибку с отказом в разрешении для файла /var/log/nginx/error.log
Blankman
Удалите журнал и перезапустите Nginx. Он автоматически создаст журнал.
WhiteHorse