로그인

Language :
제목Apache Portable Runtime (APR) based Native library for Tomcat
글쓴이이지섭작성일2018-01-16수정일2024-08-30조회수4860

Apache Portable Runtime (APR) based Native library for Tomcat 


톰캣은 다운로드 받은 .zip 이나 .tar.gz 압축 파일을 푼 후 바로 사용하기도 하는데요.

리눅스 환경에서 톰캣 설치 폴더 바로 아래에 bin 폴더가 있는데 그 안에 tomcat-native.tar.gz 파일이 들어 있다. 

Apache Portable Runtime (APR) based Native library for Tomcat 이다.

리눅스에서 이 라이브러리를 사용하기 위한 요구사항은 다음과 같다.

Requirements:

  1. APR 1.2+ development headers (libapr1-dev package)
  2. OpenSSL 1.0.2+ development headers (libssl-dev package)
  3. JNI headers from Java compatible JDK 1.4+
  4. GNU development environment (gcc, make)


톰캣을 압축 풀고 바로 사용하면 APR 연동이 되지는 않는다. 

tomcat-native.tar.gz 파일을 푼 후 그 안의 native 폴더로 가면 설치할 수 있는 소스 프로그램이 들어있는 것을 볼 수 있다.

root 계정으로 설치한다.

./configure 

make

make install

 

configure 할 때 --with-apr=... 같은 옵션을 주어야 한다고 메시지가 나올 수 있다.

apr 이 설치되어 있지 않으면 수동으로 설치한 후 진행해야 한다.

https://apr.apache.org/ 에서 관련 프로그램을 받을 수 있다.

 

apr 설치할 때 make test 단계에서 sock 에러가 날 수 있다.

이때는 기존에 apr 이 설치되어 있어서 포트가 사용중이라서 그럴 수 있다.

톰캣을 shutdown.sh 하여 내려놓고 make test 하면 성공할 수 있다.

 

다시, tomcat-native.tar.gz 파일을 압축 푼 것으로 돌아와서

/apache-tomcat-8.5.31/bin/tomcat-native-1.2.16-src/native/BUILDING

파일을 참조하면 설치 방법이 자세하게 나와 있다.

 

위에서 다음의 디렉토리 명은 다운받은 파일에 따라서 다를 수 있다.

  apache-tomcat-8.5.31

  tomcat-native-1.2.16-src

 

BUILDING 파일에는 예를 들어, 다음과 같은 내용이 있다,

 

3. Build

   > configure  --with-apr=apr_install_location  --with-ssl=openssl_install_location
   > make

   This should produce a file named libtcnative-1.so

   Note: To build without SSL support use:

   > configure  --disable-openssl  --with-apr=apr_install_location

 

(예시)

$ ./configure  --with-apr=/usr/local/apr-1.7.5  --with-ssl=/usr/local/ssl-3.3.0  --with-java-home=/usr/lib/jvm/java-21-openjdk-amd64

 

위와 같이 하여 성공적으로 설치되면

Libraries have been installed in:
   /usr/local/apr/lib


위와 같은 문구를 확인할 수 있다. 

 

이 상태에서는 APR 라이브러리가 연동되지 않는다. 메시지는 다음과 같다.

INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]



APR 라이브러리를 로딩시키기 위해서는, 톰캣의 JAVA 환경에 이 라이브러리의 경로를 추가해 주어야 한다.

java.library.path 환경 설정은 톰캣 bin 폴더의 catalina.sh 파일에서 아래와 같이 JAVA_OPTS 구문을 추가하여 설정할 수 있다.

# only set CATALINA_HOME if not already set
[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`

# Copy CATALINA_BASE from CATALINA_HOME if not already set
[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"


JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"



그 후에 ./startup.sh 하여 톰캣을 실행하면 메시지가 다음과 같이 나오며 APR 라이브러리가 연동되는 것을 확인할 수 있다.

INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.16] using APR version [1.6.3].
INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.0g  2 Nov 2017]

 

 

[참조한 웹 페이지]

  https://tomcat.apache.org/tomcat-7.0-doc/apr.html

  https://stackoverflow.com/questions/14018817/how-to-add-a-native-library-in-tomcat

  http://egloos.zum.com/javalove/v/731607

  http://tomcat.10.x6.nabble.com/java-library-path-Unsatisfied-Link-Error-problem-with-Linux-Tomcat-5-5-td2073969.html

댓글

이름               비밀번호 
내용
비밀번호를 확인합니다.

댓글 등록시 입력한 비밀번호를 입력해주시기 바랍니다.