Журнал ошибок 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, поэтому другие пользователи не смогут его запустить.


Чем он отличается от использования 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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.