nginx 오류 로그가 너무 커서 삭제하고 새 것을 만들었습니다. 이제 nginx가 시작되지 않습니다.


11

/var/log/nginx/error.log 파일을 삭제 한 후 다음을 사용하여 새 파일을 작성했습니다.

sudo nano error.log

이렇게 ls -la있음을 나타냅니다 하는 error.logaccess.log의이 같은 권한이 있어야합니다.

시도하고 nginx를 시작하면 오류가 발생합니다.

경고 : 오류 로그 파일을 열 수 없습니다 : open () "/var/log/nginx/error.log"권한 거부에 실패했습니다.

최신 정보

nginx를 시작하려고 할 때도보고 있습니다.

긴급 : /var/run/nginx.pid 실패 13 : 권한이 거부되었습니다.

답변:


25

이렇게해도 문제가 해결되지는 않지만 앞으로는

고양이 / dev / null> / file / you / want / to / wipe-out

파일 내용을 아무 것도없이 복사하고 모든 권한을 그대로 유지합니다.

nginx-speicific은 아니지만 실행하려는 사용자로 응용 프로그램을 실행하고 있는지 확인하십시오. 루트 권한으로 실행 한 경우 루트가 모든 권한을 소유하게되므로 다른 사용자는이를 실행할 수 없습니다.


사용하는 것과 어떻게 echo "" > /file/to/empty다릅니 까? 둘 다 동일합니까?
Gowtham Gopalakrishnan

동일해야합니다. 또한, 당신은 처음에 모든 물건을 버리고 그냥 할 수 있습니다> /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
루트로 실행하려고 시도한 후 init 스크립트로 시작하려고 시도한 것 같습니다.
Geraint Jones

글쎄, 난 항상 그렇게 시작합니다. 흠 ..
Blankman

nginx.conf의 말 : "사용자 www-data"
Blankman

1

error.log 파일을 삭제하면 nginx가 자체적으로 생성합니다.


나는 그것을 삭제 한 다음 시도하고 nginx를 시작할 때 /var/log/nginx/error.log 파일에 동일한 권한 거부 오류가 발생합니다.
Blankman

로그를 삭제하고 Nginx를 다시 시작하십시오. 자동으로 로그가 생성됩니다.
WhiteHorse

0

파일이 작동하지 않으면 먼저 파일을 삭제하십시오. 아무도 사용자에게 올바른 권한이 있는지 확인
하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.