-
httpd address already in use 에러 완벽해결Web/Linux 2023. 7. 26. 20:26
서버에서 httpd의 상태가 fail인것을 발견했습니다.
이게 무슨일인가 싶어 httpd를 stop후 start를 해봤는데 에러가 나는 겁니다.
> systemctl start httpd.service Job for httpd.service failed because the control process exited with error code. ...
그래서 httpd.service의 로그를 살펴보니 몇줄이 눈이 띄었습니다.
> systemctl status httpd.service ... AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using x.x.x.x. Set the 'ServerName' directive globally to suppress this message (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down ...
로그에 따라 1. ServerName을 지정하고, 80포트 사용하는 서비스를 죽여봅니다.
httpd.conf파일의 ServerName이 주석처리 되어 있을겁니다. 주석을 해제하고 localhost를 추가해 파일을 저장해줍니다.
vi /etc/httpd/conf/httpd.conf ... ServerName localhost ...
80포트를 어디서 사용하는지 조회해봅니다.
netstat -lnp | grep 80
특별히 사용하지 않는 서비스라면 80포트를 죽입니다.
kill -9 [pid번호] # 사용중인 포트 조회했을때 222084/docker-proxy 와 같은식으로 출력될텐데 그 중 222084
위까지 해결하니 httpd.service의 로그가 변경되었습니다.
전 httpd를 443포트로 별도로 설정한 기억이 없어서 폭풍 리서치를 했습니다.
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:443 (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:443
파악한 원인은 yum으로 httpd를 설치한 경우 httpd.conf설정파일에 443포트가 추가되기 때문입니다.
443에러 해결법은 아래와 같습니다.
ssl.conf파일의 Listen 443 https를 주석처리 하시면 됩니다.
> grep '443' /etc/httpd/conf.d/* /etc/httpd/conf.d/ssl.conf:Listen 443 https /etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443> /etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443 > vi /etc/httpd/conf.d/ssl.conf # Listen 443 https 주석처리
이후 httpd.service의 상태가 active로 된것을 볼수 있습니다.
반응형'Web > Linux' 카테고리의 다른 글
모든 일치 항목이 인수의 제외 필터로 필터링되었습니다: kubectl (0) 2022.12.14 [Linux] 파일 퍼미션(권한) 변경하기 with SCP (0) 2021.11.11 [Linux] war파일 linux에 올리기! (0) 2019.09.30 [Linux] WinSCP (0) 2019.09.30 [Linux] 명령어 모음 (0) 2019.09.25