关于tomcat8启动报APR/native library which is not available的问题解决

原创 2016年08月31日 17:12:37

在centos上使用tomcat8配置支持http2.0的时候,server.xml的配置文件里面有这么一段配置:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
    maxThreads="150" SSLEnabled="true" >
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    <SSLHostConfig>
       <Certificate certificateKeyFile="certs/server.key"
                    certificateFile="certs/server.crt"
                    type="RSA" />
    </SSLHostConfig>
</Connector>

但是启动tomcat报错如下:
这里写图片描述
这是因为配置里面指定使用协议是org.apache.coyote.http11.Http11AprProtocol,即需要用APR运行模式,但这并不是tomcat默认的运行模式(此外还有bio和nio模式),需要额外安装apr和native的包才行。

1 需要安装的包

  • openssl-1.0.2(支持http2.0的话需要1.0.2以上版本)
  • apr
  • apr-util
  • tomcat-native(这个包在tomcat的bin目录下带的有)

2 安装openssl-1.0.2

怎么下载就不说了,直接帖安装步骤

cd /usr/local/src
tar -zxf /usr/local/src/openssl-1.0.2e.tar.gz
cd /usr/local/src/openssl-1.0.2e
./config -fPIC --prefix=/usr/local/openssl-1.0.2e
make
make install

#制作软链接
ln -s /usr/local/openssl-1.0.2e/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-1.0.2e/include/openssl /usr/include/openssl

注意,在./config时要加上选项-fPIC,不然到后面安装tomcat native包的时候会报错。另外,不用–profix指定安装目录的话,默认应该是安装在/usr/local/ssl目录。

3 安装apr和apr-util

安装apr

cd /usr/local/src
tar -zxf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make
make install

安装apr-util

cd /usr/local/src
tar -zxf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr
make
make install

上面安装完后设置下环境变量:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

也可以将/usr/local/apr/lib包路径添加到/etc/ld.so.conf文件:

echo "/usr/local/apr/lib" >> /etc/ld.so.conf

4 安装tomcat native

我使用的是tomcat-8.5.4,在它的bin目录下面就有一个tomcat-native.tar.gz包,将其解压后进行编译安装:

tar -zxf tomcat-native.tar.gz
cd tomcat-native-1.2.8-src/native/
./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.7.0_80 --with-ssl=/usr/local/openssl-1.0.2e
make
make install

–with-ssl这个参数写成–with-ssl=yes好像也可以。

安装上面这些包之后,再重启tomcat就可以正常运行。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

解决unable to load native-library问题

本文主要用于解决安装hadoop过程中出现的unable to load hadoop-native library for your platform的问题。

Windows下Node.js与npm的安装与配置

Node.js和npm的第一次配置

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Windows 下安装NPM

Node.js停火各大技术论坛都在讨论,前段时间工作太忙没时间学习,趁着周末空闲玩玩,在网上找了些资料发现Node.js本身有windows版和unix版下载和使用都挺方便但是其扩展模块依赖复杂通过手...
  • yczz
  • yczz
  • 2011-11-05 13:18
  • 44801

生成环境下的Tomcat 8.0.36 在CentOS7下安装和配置apr

安装apr 1.5.2 下载 http://apache.fayea.com//apr/apr-1.5.2.tar.gz cd /usr/loca/src wget http://apache.f...

Tomcat 8.0.30配置https的步骤

根据网上的案例,自己做了实际配置,记录如下,以备后续参考: 环境说明: JAVA_HOME=D:\Programs\Java\ TOMCAT_HOME=D:\Programs\tomcat8030 1...

Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解

引言: 接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用; 简...

centos安装软件的两种命令rpm,yum

centos的软件安装大致可以分为两种类型: [centos]rpm文件安装,使用rpm指令  类似[ubuntu]deb文件安装,使用dpkg指令[centos]yum安装   类似[ubun...
  • ldpxxx
  • ldpxxx
  • 2014-05-16 08:07
  • 33444

敏捷开发初探

由于软件开发过程中的各种问题,我们引入了敏捷开发,
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)