💡/오류노트

[Caddy] 웹 서버 설치 중 에러 해결

built 2024. 6. 29. 17:21

service failed 에러 발생

Caddy라는 HTTPS를 자동으로 설정해주는 간편한 서비스를 이용하면서,

Caddy를 설치하고 실행할 때 systemctl 명령어를 입력하는데 실패했다는 에러가 발생하여 해결 과정을 정리했다.

$ sudo systemctl start caddy

Job for caddy.service failed because the control process exited with error code.
See "systemctl status caddy.service" and "journalctl -xeu caddy.service" for details.

 

 

 

이 때 다음 명령어를 실행하여 자세한 원인을 파악할 수 있는데, 오류가 발생하는 주요 원인은 3가지로 나뉠 수 있다.

$ systemctl status caddy.service

$ journalctl -xeu caddy.service //로그를 확인하여 추가적인 문제 파악 가능

 

 

 

 

 

주요 원인

1. Caddyfile 누락

로그에서 /etc/caddy/Caddyfile 파일을 찾을 수 없다는 메시지가 나올 경우, Caddyfile이 없거나 경로가 잘못된 것이니

Caddyfile을 생성하거나 올바른 경로로 이동해야 한다.

이후 Caddy 서비스를 다시 시작한다.

$ sudo nano /etc/caddy/Caddyfile

 

 

2. 권한

파일 권한이나 소유자가 올바르지 않을 수 있으니 아래 명령어로 권한을 확인해본다.

이후 Caddy 서비스를 다시 시작한다.

$ sudo chown caddy:caddy /etc/caddy/Caddyfile
$ sudo chmod 644 /etc/caddy/Caddyfile​

 

 

3. 포트 사용중

Caddy가 사용하려는 포트를 이미 다른 프로세스가 사용하고 있을 경우 문제가 발생한다. 필자의 경우 이 원인으로 문제가 발생했다.

 

 

 

 

 

해결 방법

1. 포트 80을 사용 중인 프로세스 확인

$ sudo lsof -i :80​

필자는 포트 80을 사용 중인 Apache 웹 서버가 실행되고 있었다. Apache를 중지하거나 Caddy를 다른 포트에서 실행하면 되는데

필자는 Apache를 중지하였다.

$ sudo systemctl stop apache2
$ sudo systemctl disable apache2
$ sudo systemctl start caddy

 

 

이제 Caddy 서비스가 정상적으로 시작된다!

 

이 다음 단계부터

2024.06.29 - [Services/AWS] - [AWS] Caddy로 도메인 연동 및 HTTPS 활성화하기 글을 참고하여 쉽게 진행할 수 있다.