AWS AH00072: make_sock: could not bind to address ERROR – 아파치 실행 문제 해결하기
서론
안녕하세요. AWS에서 아파치를 실행하려고 할 때 흔히 마주치는 문제 중 하나를 다루려고 합니다. 혹시 아래와 같은 오류(AH00072: make_sock: could not bind to address ERROR) 메시지가 보이셔서 찾아오셨나요?
$ sudo apachectl start
Invoking 'systemctl start apache2',
Use 'svstemcti status apache2' for more info.
Job for apache2.service failed because the control process exited with error code.
See "systemct1 status apache2.service" and "journalctl -xe" for details.
Action 'start' failed.
문제 해결
문제 상황
서론에서 언급한대로 journalctr -xe | tail -n 25
커맨드를 입력해봅니다. tail -n 25
는 보기 편하게 하기 위하여 제일 뒷 라인 25번째 만큼 출력하는 명령어입니다.
~$ journalctr -xe | tail -n 25
문제 원인
[A] 해당 포트를 이미 사용 중이다.
많은 웹 서비스가 80 포트를 사용하기 때문에, 이 포트에서 충돌이 일어날 확률이 높습니다. 예를 들면, Nginx나 다른 버전의 Apache 같은 다른 웹 서버가 이미 80 포트를 사용하고 있을 수 있습니다.
[B] 아파치의 실행에 문제가 있다.
아파치의 설정 파일에 문제가 있거나, 아파치 자체에 오류가 있는 경우에도 위와 같은 문제가 발생할 수 있습니다.
해결 방법
[A] 해당 포트를 이미 사용 중이다.
아파치의 설정 파일인 ports.conf에서 사용하는 포트를 확인합니다:
이 명령어를 실행하면 아파치의 ports.conf
파일의 위치를 찾을 수 있습니다. 대부분의 경우 /etc/apache2/ports.conf
위치에 있을 것입니다.
파일을 열어 포트 설정을 확인하거나 수정합니다:
vim이 없다는 에러가 발생한다면 nano, vi로 수정하시면 됩니다.
위에서 Listen을 다른 포트로 써주면 됩니다. 기본 값은 80입니다.
[B] 아파치 실행 문제 해결
80 포트를 사용 중인 네트워크의 PID를 확인합니다:
~$ netstat -nap | grep 80
나타난 프로세스를 종료합니다:
~$ kill -9 <PID>
아파치를 다시 시작합니다:
~$ sudo service apache2 start
결론
AWS에서 아파치를 실행할 때 AH00072: make_sock: could not bind to address
오류를 마주치게 되면, 위의 방법을 통해 문제를 해결할 수 있습니다. 포트 충돌 또는 아파치 설정 문제, 두 가지 주요 원인 중 하나일 가능성이 높으니, 순차적으로 따라해 보시기 바랍니다. 이런 문제들이 은근 흔하니, 끈기와 문제 해결 능력으로 꼭 문제를 해결하시길 바랍니다!