Журнал помилок 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? Вони обоє однакові?
Gowtham Gopalakrishnan

Це повинно бути те саме. Крім того, ви можете залишити всі речі на початку і просто зробити> /file/to/empty
Алекс

5

Звичайний спосіб повороту журналів за допомогою NginX - це перейменування файлу, а потім /etc/init.d/nginx reload. Сервер запускає новий файл, і ви можете робити все, що завгодно, зі старим.

Вам також може бути корисно відредагувати конфігурацію, щоб не входити так сильно ....


2

подивіться у конфігурацію nginx, перевірте, на якому сервері працює сервер - напевно, користувачеві буде nginx

тому :

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

Слід зробити трюк.


але чому це працювало раніше?
Бланкмен

1
Я підозрюю, що ви намагалися запустити його як root, а потім спробували запустити його зі свого сценарію init.
Geraint Jones

добре, я завжди починаю це так, хм ....
Бланкмен

nginx.conf повідомляє: "користувацькі www-data"
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.