Tomcat 配置支持APR

对ARP支持,需要安装以下库:

  • APR library
  • JNI wrappers for APR used by Tomcat (libtcnative)
  • OpenSSL libraries

其中JNI wrappers(libtcnative)安装依赖另外两项,以及Java headers.(It depends on APR, OpenSSL, and the Java headers),也就是:

  • APR 1.2+ development headers (libapr1-dev package)
  • OpenSSL 0.9.7+ development headers (libssl-dev package)
  • JNI headers from Java compatible JDK 1.4+
  • GNU development environment (gcc, make)

 

首先安装APR和OpenSSL:

$ sudo apt-get install libapr1-dev libssl-dev

 但是,这样安装APR总是找不着lib,还是手动安装一下:

1. 下载:

wget  http://apache.fayea.com/apache-mirror//apr/apr-1.5.2.tar.gz 
wget  http://apache.fayea.com/apache-mirror//apr/apr-util-1.5.4.tar.gz

或者去网页下载最新版本:

http://apr.apache.org/download.cgi

2. 解压:

tar -zxvf apr-1.5.2.tar.gz 
tar -zxvf aor-util-1.5.4.tar.gz

3. 安装(使用root账号,或者每条命令前加sudo):

cd apr-1.5.2
./configure --prefix=/usr/local/apr 
make 
make install 
cd .. 
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 
make 
make insatll

apr默认安装到/usr/local/apr,所以不加--prefix也可以。apt-util必须加--with-apr,否则找不到apr。

 

最后安装JNI wrappers,The wrapper library sources are located in the Tomcat binary bundle, in the bin/tomcat-native.tar.gz archive. 

cd /xxxx/apache-tomcat-xxx/bin
tar -zxvf tomcat-native.tar.gz
cd tomcat-native-xxx-src/jni/native
./configure --with-apr=/usr/local/apr --with-java-home=/usr/lib/jvm/jdk1.8.0_91
make
make install

 

 

最后的最后,需要配置环境变量:

vi /etc/profileexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

重启电脑生效。

 

启动tomcat,有以下信息,说明APR配置生效:

INFO: Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.5.2.
......INFO: Initializing ProtocolHandler ["http-apr-8080"]
......INFO: Initializing ProtocolHandler ["ajp-apr-8009"]

 

转载于:https://www.cnblogs.com/drizzlewithwind/p/5922462.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[算法] 麻将序数牌组合方案

// 环境: centos7.2, g v4.8.5#include <iostream> #include <unistd.h> #include <stdio.h> #include <string.h> #include <vector> #include <map>using namespace std;enum CombineType {CombineType_Null 0, // 单牌CombineType_Dui…

swagger接口数据上传

后端接口参数格式&#xff1a; 1.正常大对象传参&#xff1a; 2.正常参数传参&#xff1a; 3.第三者传参&#xff1a;

java中单例模式的3种实现

1 饿汉式单例类.在类初始化时&#xff0c;已经自行实例化 class EagerSingleton { private static final EagerSingleton m_instance new EagerSingleton(); /** * 私有的默认构造子 */ private EagerSingleton() { } /** * * 静…

webstrom打开多个项目,webstrom常用快捷键

1.webstrom打开多个项目默认情况下一次只能打开一个项目&#xff0c;如果需要打开多个就按照下面的方法File -> settings -> Directories -> Add Content Root 中添加你需要的工程目录。2.加速 禁用多余的插件&#xff0c;关掉没必要的代码检查项。 webstorm慢的原因主…

[算法] vector删除元素

#include <iostream> #include <algorithm>using namespace std;bool IsOdd (int i) { return i % 2 1; } // 奇数void test_remove(vector<int>& v) {auto del remove(v.begin(), v.end(), 9); // 删除所有的9v.erase(del, v.end());//v.erase(del);…

XMLHttpRequest 跨域请求获取 Response Header

XMLHttpRequest 跨域请求获取 Response Header xhr.getAllResponseHeaders() // 获取所有的headerxhr.getResponseHeader("key") // 获取指定的header

ASP.NET MVC3数据绑定到VIEW的方式

ASP.NET MVC3数据绑定到VIEW的方式 1、 指定页面数据的强类型Module 数据类型是强类型&#xff0c;编译时报错&#xff0c;运行效率高 Action: public ActionResult Index() { var _instructors new List<Instructor>( new Instructor[] { new Instructor { Name &…

值得一做》关于并查集的进化题目 BZOJ1015(BZOJ第一页计划)(normal-)

这道题和以前做过的一道经典的洪水冲桥问题很像&#xff0c;主要做法是逆向思维。&#xff08;BZOJ第10道非SB题纪念&#xff09; 先给出题目 Description 很久以前&#xff0c;在一个遥远的星系&#xff0c;一个黑暗的帝国靠着它的超级武器统治者整个星系。某一天&#xff0c;…

git操作之pull拉取远程指定分支以及push推送到远程指定分支

一、pull操作 1、将远程指定分支 拉取到 本地指定分支上&#xff1a; &#xff08;注&#xff1a;命令里的尖括号<>只是包裹中文的标识&#xff0c;方便你看的&#xff0c;实际使用时不用写&#xff0c;不过冒号需要&#xff09; git pull origin <远程分支名>:…

[算法] 求排列组合: 从n个数中任选m个数组成一个新数

#include <iostream> #include <vector>using namespace std;// 求排列组合算法: C(n, m): 从n个数中任选m个数组成一个新的数, 求有多少种组合, 分别是什么 // 从v[]里任选m个元素组成一个组合, 与顺序无关 template<class T> vector<vector<T>&g…

Functional ProgrammingLazy Code:被我忘记的迭代器

本文给出一个Functional Programming和Lazy Code的一个例子。跟着思路走&#xff0c;关键的地方会有相应的说明。 我们想实现一个判断"素数"的小程序&#xff0c;如下&#xff1a; using System;namespace FunctionalProgramming {class Program{static void Main(st…

TP框架如何绑定参数。目的进行ajax验证

TP框架的自动绑定 对于某些操作的情况&#xff08;例如模型的写入和更新方法&#xff09;&#xff0c;可以支持参数的自动绑定&#xff0c;例如&#xff1a; 首先需要开启DB_BIND_PARAM配置参数&#xff1a; DB_BIND_PARAM > true 然后&#xff0c;我们在使用 1.$Model M(U…

使用js 计算两个日期之间的相差的天数

将两个日期都转换为毫秒&#xff0c;然后相减&#xff0c;再将减下来的毫秒数转换为天数&#xff0c;就可以得到两个日期之间相差的天数了。&#xff08;接受的日期格式为“20201-1”&#xff0c;“20201/1”等用连接符连接起来的日期字符串&#xff09; getDiffDay(date_1, da…

PhpStorm配置Xdebug调试PHP程序

From: http://blog.csdn.net/ljfrocky/article/details/46531137这篇文章主要介绍了如何使用PhpStorm Xdebug调试PHP程序&#xff0c;需要的朋友可以参考下。运行环境PhpStorm版本&#xff1a;8.0.3 PHP版本&#xff1a;5.4.12 xdebug版本&#xff1a;php_xdebug-2.2.3-5.4-vc…

对刚

3 /*直接链表模拟 */ #include<cstdio> #include<iostream> #define M 100010 using namespace std; int next[M],fa[M],vis[M],n,t; int main() {//freopen("jh.in","r",stdin);//freopen("resist.in","r",stdin);//freo…

java处理高并发高负载类网站问题

java处理高并发高负载类网站问题 一&#xff1a;高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用&#xff0c;数据库的响应是首先要解决的。 一般来说MySQL是最常用的&#xff0c;可能最初是一个mysql主机&#xff0c…

动态修改el-input样式;动态修改elmentUI元素样式;css变量

场景&#xff1a;正常我们动态修改div元素的样式&#xff0c;使用:style和:class即可&#xff1b;但是我们想要动态修改element的组件样式时候&#xff0c;例如el-input字体颜色&#xff0c;由于el-input的样式嵌套很深&#xff0c;我们需要修改的实际是.el-input__inner这个样…

Listener监听器与Filter过滤器

1.Listener [1]监听器简介> Listener是JavaWeb的三大组件之一&#xff0c;Servlet、Filter、Listener> Listener翻译过来就是监听器> 现实生活中的监听器&#xff1a;- 监听谁&#xff1a;明星- 监听器&#xff1a;朝阳群众- 监听事件&#xff1a;干坏事- 回调函数&am…

【Mac】sublime text3标题栏显示文件完整路径

开发的兄弟对于sublime text一定不会陌生&#xff0c;目前在mac上使用这个软件遇到一个小问题&#xff0c;就是标题栏只显示了文件名&#xff0c;而不是文件全路径&#xff0c;所以当一个项目里同名的文件比较多的时候&#xff0c;就怕搞错文件。因此&#xff0c;我非常希望标题…

Error: listen EADDRINUSE: address already in use :::7197

vue启动项目报 Error: listen EADDRINUSE: address already in use :::7197 我是直接将项目的终端关闭&#xff0c;然后重新打开终端输入 npm run dev 就启动好了