본문 바로가기

개발/ERROR

[AWS / linux] AH00072: make_sock: could not bind to address ERROR 아파치 실행이 안됨

더욱 자세한 내용은 다음 링크에서 확인하실 수 있습니다 !

https://dirtycoders.net/aws-ah00072-make_sock-could-not-bind-to-address-error-apaciga-silhaengi-andoel-gyeongu/

 

AWS AH00072: make_sock: could not bind to address ERROR – 아파치 실행 문제 해결하기

서론 안녕하세요. AWS에서 아파치를 실행하려고 할 때 흔히 마주치는 문제 중 하나를 다루려고 합니다. 혹시 아래와 같은 오류(AH00072: make_sock: could not bind to address ERROR) 메시지가 보이셔서 찾아오

dirtycoders.net


아파치를 실행시켰을 때 아래와 같은 문구가 나올 때.

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

 

* 문제 발생

 

보기 편하게 아래와 같이 입력해보자.

~$ journalctr -xe | tail -n 25

 

결과

Aug 25 15:50:10  apachectl[8796]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Aug 25 15:50:10  apachectl[8796]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Aug 25 15:50:10  apachectl[8796]: no listening sockets available, shutting down
Aug 25 15:50:10  apachectl[8796]: AH00015: Unable to open logs
Aug 25 15:50:10  apachectl[8796]: Action 'start' failed.
Aug 25 15:50:10  apachectl[8796]: The Apache error log may have more information.
Aug 25 15:50:10  systemd[1]: apache2.service: Control process exited, code=exited status=1
Aug 25 15:50:10  sudo[8766]: pam_unix(sudo:session): session closed for user root
Aug 25 15:50:10  systemd[1]: apache2.service: Failed with result 'exit-code'.
Aug 25 15:50:10  systemd[1]: Failed to start The Apache HTTP Server.

 

* 문제 원인 추측 : 

[A] 해당 포트를 이미 사용중이다.

[B] 아파치의 실행에 문제가 있다.

 

[A]의 경우 해결방법

이 방법은 아파치 포트를 바꾸는 방법이다.

 

아파치의 포트를 보기 위하여 ports.conf

~$ find / -name ports.conf

/etc/apache2/ports.conf

수정 및 확인을 위하여

~$ vim /etc/apache2/ports.conf

vim이 없다면 nano, vi도 가능하며, 확인만 할 것이라면 cat도 좋다.

  5 Listen 80
  6 
  7 <IfModule ssl_module>
  8         Listen 443
  9 </IfModule>
 10 
 11 <IfModule mod_gnutls.c>
 12         Listen 443
 13 </IfModule>
 14 
 15 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

위에서 Listen을 다른 포트로 써주면 된다. 기본 값은 웹 포트인 80이다.

또한, AWS라면 보안그룹에 해당 포트의 TCP를 열어주어야 할 것이다.

 

 

[B]의 경우 해결방법

 

~$ netstat -nap | grep 80

아파치의 포트를 사용중인 네트워크의 PID를 확인한다.

 

보여지는 프로세스를 모두 종료시킨다.

~$ kill -9 <PID>

 

다음 아파치를 다시 시작한다.

~$ sudo service apache2 start