I had to document some steps using the Apache Portable Runtime (APR) and TLS configuration and for that needed APR on my Mac. I couldn’t really make it work at first but after fiddling a bit I figured it out. There are the steps in bullet form:
Download APR and compile
- Download APR from Apache (http://apr.apache.org/). I downloaded v. 1.5.2.
- Compile in Terminal.
- CFLAGS=’-arch x86_64′ ./configure
- make
- make test
- make install
Install OpenSSL with headers
The OpenSSL on Mac doesn’t come with the header files so you cannot compile the Tomcat native library by default. To fix that use Homebrew to install a new version of OpenSSL first.
- Install Homebrew per instructions on the website
- brew install openssl
Compile Tomcat native library
The Tomcat native library is supplied with the Tomcat download. My Tomcat was v. 8.0.17. Steps as below:
- cd Tomcat8.0.17/bin
- gunzip tomcat-native.tar.gz
- tar xf tomcat-native.tar
- cd tomcat-native-1.1.32-src/jni/native
- CFLAGS=’-arch x86_64′ ./configure –with-apr=/usr/local/apr –with-ssl=/usr/local/opt/openssl
- make
- make install
Configure Tomcat to use APR
This step is basically just to make sure that the Tomcat native library is on the Java Library path. Do as follows:
- cd Tomcat8.0.17/bin
- vi setenv.sh
- Add text: JAVA_OPTS=”-Djava.library.path=/usr/local/apr/lib”
Now when you run Tomcat using catalina.sh you should see a line like below stating what version of the native library was loaded.
15-May-2016 18:14:01.106 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.1.32 using APR version 1.5.2.
Further reading: