Covenant




문제상황


nginx: [error] open() "/usr/local/Cellar/nginx/1.21.3/logs/nginx.pid" failed (2: No such file or directory)

nginx를 실행했더니 No such file or directory 에러가 나옵니다. 처음 nginx를 실행한다면 흔히 만날 수 있는 문제인데 의외로 인터넷에 명쾌한 해결법이 없어서 남깁니다.




해결


*STEP 1 ~ STEP 3 까지 했을때 잘 되었다면 Pre Step은 하지 않아도 됩니다.)


$ vim /usr/local/etc/nginx/nginx.config

STEP 1: nginx.config 설정으로 이동합니다.


#pid   logs/nginx.pid;

Pre STEP 1: nginx.pid 경로를 변경하기 위해서 기존의 로그 경로를 제거합니다.


$ pid /usr/local/Cellar/nginx/1.21.3/logs/nginx.pid;

Pre STEP 2: 절대경로로 변경해줍니다.


$ mkdir /usr/local/Cellar/nginx/1.21.3/logs

STEP 1: 에러 로그에 나온대로 nginx의 log 디렉터리를 생성합니다.


$ ./usr/local/Cellar/nginx/1.21.3/bin/nginx -t

STEP 2: bin 디렉터리로 이동하여 설정파일이 올바른지 테스트합니다.


nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

STEP 2 실행 결과: 설정파일에 문제가 없다면 ok, successful 결과를 볼 수 있습니다.


sudo brew services restart nginx

STEP 3 방법 1: brew로 nginx를 설치해서 brew로 재시작해줍니다.


$ ps -afx | grep nginx

STEP 3 검사: 위의 명령어로 nginx가 정상 실행했는지 확인할 수 있습니다.


(생략):00.01 nginx: master process nginx
(생략):0:00.00 nginx: worker process

STEP 3 검사 결과: master, worker 프로세스가 성공적으로 올라가있다면 성공적으로 실행한 것입니다.


$ ./usr/local/Cellar/nginx/1.21.3/bin/nginx -s reload

STEP 3 방법 2: brew로 실행이 안된다면 nginx 실행파일을 직접 질행하는 방법이있습니다.