Dziennik błędów nginx był ogromny, więc usunąłem i utworzyłem nowy, teraz nginx nie chce się uruchomić


11

Usunąłem /var/log/nginx/error.log plik, a następnie stworzył nową używając:

sudo nano error.log

Wykonanie ls -lapokazuje, że error.log i access.log mają te same uprawnienia.

Kiedy próbuję uruchomić nginx, pojawia się błąd:

alert: nie można otworzyć pliku dziennika błędów: open () „/var/log/nginx/error.log” zezwolenie nie powiodło się.

Aktualizacja

Podczas próby uruchomienia nginx widzę również:

emerg: /var/run/nginx.pid nie powiodło się 13: odmowa uprawnień.

Odpowiedzi:


25

To nie rozwiązuje twojego problemu, ale w przyszłości, jeśli tak zrobisz

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

skopiujesz zawartość pliku bez niczego i zachowasz wszystkie uprawnienia w takcie.

Nie jest to nginx, ale dodatkowo upewnij się, że uruchamiasz aplikację jako użytkownik, z którego ma ona korzystać. Jeśli kiedykolwiek uruchomiłeś go jako root, wszystkie uprawnienia będą należeć do roota, więc inni użytkownicy nie będą mogli go uruchomić.


Czym różni się od używania echo "" > /file/to/empty? Czy oba są takie same?
Gowtham Gopalakrishnan,

Tak powinno być. Dodatkowo możesz pominąć wszystkie rzeczy na początku i po prostu zrobić> /file/to/empty
Alex

5

Zwykłym sposobem obracania dzienników za pomocą NginX jest zmiana nazwy pliku, a następnie /etc/init.d/nginx reload. Serwer uruchamia nowy plik i możesz robić, co chcesz ze starym.

Przydatna może być również edycja konfiguracji, aby nie rejestrować tyle ...


2

zajrzyj do konfiguracji nginx, sprawdź, kto działa jako serwer - domyślnie użytkownik będzie nginx

więc :

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

Powinien załatwić sprawę.


ale dlaczego to działało wcześniej?
Blankman

1
Podejrzewam, ponieważ próbowałeś uruchomić go jako root, a następnie próbowałeś uruchomić go za pomocą skryptu init.
Geraint Jones

cóż, zawsze zaczynam tak, hmm ....
Blankman

nginx.conf mówi: „dane użytkownika www”
Blankman

1

Usuń plik error.log, a nginx sam go utworzy.


usunąłem go, a następnie, gdy próbuję uruchomić nginx daje mi to samo odmowa błędu błąd w pliku /var/log/nginx/error.log
Blankman

Usuń dziennik i uruchom ponownie Nginx. Automatycznie utworzy dziennik.
WhiteHorse

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.