ubuntu에 tomcat7을 설치 ( apt-get install tomcat7)을 한 다음 포트번호를
80으로 바꿔 웹서버와 서블릿 서버를 tomcat7 하나로 사용하려고 했으나 ubuntu는 역시 어려웠다.

CentOS에서처럼
/etc/tomcat7/server.xml파일의 Listen port(8080)를 80으로 바꾸고
/etc/default/tomcat7파일의 AUTHBIND=yes를 지정하고

service tomcat7 restart

를 하면 역시

SEVERE: Failed to initialize end point associated with ProtocolHandler [“http-bio-80”]
java.net.BindException: Permission denied :80
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:410)
at org.apache.tomcat.util.net.AbstractEnd …

이런 에러가 뜬다. (error log 파일에 log만 남고 프로세스가 죽어버리거나, bind error가 난 상태로 떠 있는다)

이 때 해결책은
1. authbind가 있는지 확인하고 없으면 설치(authbind명령을 내려 에러가 나지 않으면 설치되어 있음)

2. root의 권한으로 /etc/authbind/byport에 80 파일을 만들고 tomcat7에게 권한을 준다.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat7.tomcat7 /etc/authbind/byport/80

3. tomcat의 network을 IPv4가 default가 되게 설정해 준다.
cd [TOMCAT_HOME(주로 /usr/share/tomcat7)]/bin
vi setenv.sh
다음을 입력한다.
CATALINA_OPTS=”-Djava.net.preperIPv4Stack=true”
다음에는 같은 디렉토리에 있는 startup.sh 파일을 수정한다.
가장 아랫쪽에 주로 있는 다음의 줄을
exec “$PRGDIR”/”$EXECUTABLE” start “$@”
다음과 같이 변경한다.
exec authbind -deep “$PRGDIR”/”$EXECUTABLE” start “$@”

그리고 tomcat7을 다시 시작하면 에러가 나지 않는다.
service tomcat7 restart

By yaplab

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다