为Linux上的Tomcat安装apr支持

原创
2015/05/22 21:57
阅读数 1W

        在安装并配置好JDK和tomcat之后,就可以提供web的访问支持了,但是在启动的信息里面,会有相关的提示,说的意思就是要求你安装apr支持,而安装apr支持需要使用源代码一步一步来。

        下面就请跟着我,使用源代码方式安装apr支持。

0、前提

        ①请安装并配置好JDK和tomcat,并且创建链接文件,使得

/usr/java/jdk

相当于JDK的根目录

/usr/local/tomcat

相当于tomcat的根目录。

       ② 已经安装好了openssl的开发包,不管是源代码方式安装还是使用包管理器方式安装,使用包管理器可以这样安装

yum install openssl-devel

1、下载准备

        为了安装apr支持,需要下载apr-<version>.tar.gz和apr-util-<version>.tar.gz,当前的最新版本是apr-1.5.2.tar.gz和apr-util-1.5.4.tar.gz,这也就是我此次要安装的版本。

        下载地址,使用阿里云的镜像,访问速度挺快的,或者你也可以使用其他的镜像

            http://http://mirrors.aliyun.com/apache/apr/apr-1.5.2.tar.gz

            http://mirrors.aliyun.com/apache/apr/apr-util-1.5.4.tar.gz

        或者可以访问Apache官方的下载站点,但是不推荐,因为那样会加大服务器负担,Apache也反复强调不要从他们那里直接下载,(其实从镜像站点下载是一样的,而且速度还更快)

            http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz

            http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz

        下载得到这两个文件之后,上传到系统的

/usr/local/src

目录中,为接下来的编译安装做准备。

2、对apr的安装

        解压apr-1.5.2.tar.gz,得到文件夹apr-1.5.2,进入到文件夹之中,执行下面的命令

./configure
make
make install

        本来可以指定安装的位置,但是我这里按照默认的来,如果要制定安装位置,请参考文件夹内的“README”文件,里面有描述的。同时,如果重新指定了安装位置,那么后面所说的位置都要随之改变。

        默认安装到的位置是/usr/local/apr,可以去查看文件系统之中是否有这个目录,以及目录中文件的修改日期等等,确认这次安装时成功了的。

        也可以根据每一步执行命令的输出来判断成功没有,若有问题的话,要及时解决,在进行后续操作。

3、安装apr-util

        解压缩apr-util-1.5.4.tar.gz,得到文件夹apr-util-1.5.4,进入到文件夹内,依次执行

./configure --with-apr=/usr/local/apr
make
make install

        这里配置的时候指定的目录就是之前安装的apr的目录,如果之前修改了默认路径的,这里也要对应修改。

        这次安装或安装到apr路径下的lib目录内,也就是

/usr/local/apr/lib

        可以进入目录查看文件信息,确认是否成功。也可以根据每一步执行命令的输出来判断成功没有,若有问题的话,要及时解决,在进行后续操作。

4、安装tomcat-native

        tomcat-native?是什么?前面没有叫下载啊?

        确实,我刚开始在网上搜索的时候也是很困惑的,可是有一个人说了,“就在下载的tomcat的bin目录下面”,我去看了一下,果然有!!

        将我们安装好的tomcat的bin目录下的tomcat-native.tar.gz文件复制到

/usr/local/src

中,并且解压缩,得到目录tomcat-native-<version>-src,在这个目录中有相关的说明,告诉我们如何构建。

        进入到目录中的

jni/native

目录内,这个目录内的文件就是我们需要的文件,依次执行下面的命令

./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk
make
make install

        在这里,apr的目录要使用前面安装apr的时候的目录,如果修改了的话,还请对应修改,java的目录要使用jdk的根目录,如果不是这个也请修改。

        执行上面的命令之后,会在目录

/usr/local/apr/lib

中生成对应的文件,可以查看文件,确认安装成功。也可以根据每一步执行命令的输出来判断成功没有,若有问题的话,要及时解决,在进行后续操作。

5、整体检查安装情况

        安装成功与否,就看安装的目录就行啦,下面的命令的输出应该是类似的,出国有较大出入的话,请仔细检查

[root@CooVox-U100 apr]# pwd
/usr/local/apr
[root@CooVox-U100 apr]# ls -l
total 16
drwxr-xr-x 2 root root 4096 May 22 10:51 bin
drwxr-xr-x 2 root root 4096 May 22 10:47 build-1
drwxr-xr-x 3 root root 4096 May 22 10:47 include
drwxr-xr-x 3 root root 4096 May 22 11:44 lib
[root@CooVox-U100 apr]# cd lib/
[root@CooVox-U100 lib]# ls -l
total 5164
-rw-r--r-- 1 root root    9278 May 22 10:47 apr.exp
-rw-r--r-- 1 root root    5272 May 22 10:51 aprutil.exp
-rw-r--r-- 1 root root  933930 May 22 10:47 libapr-1.a
-rwxr-xr-x 1 root root     972 May 22 10:47 libapr-1.la
lrwxrwxrwx 1 root root      17 May 22 10:47 libapr-1.so -> libapr-1.so.0.5.2
lrwxrwxrwx 1 root root      17 May 22 10:47 libapr-1.so.0 -> libapr-1.so.0.5.2
-rwxr-xr-x 1 root root  639267 May 22 10:47 libapr-1.so.0.5.2
-rw-r--r-- 1 root root  565304 May 22 10:51 libaprutil-1.a
-rwxr-xr-x 1 root root    1070 May 22 10:51 libaprutil-1.la
lrwxrwxrwx 1 root root      21 May 22 10:51 libaprutil-1.so -> libaprutil-1.so.0.5.4
lrwxrwxrwx 1 root root      21 May 22 10:51 libaprutil-1.so.0 -> libaprutil-1.so.0.5.4
-rwxr-xr-x 1 root root  416002 May 22 10:51 libaprutil-1.so.0.5.4
-rw-r--r-- 1 root root  372902 May 22 10:51 libexpat.a
-rwxr-xr-x 1 root root     928 May 22 10:51 libexpat.la
lrwxrwxrwx 1 root root      17 May 22 10:51 libexpat.so -> libexpat.so.0.5.0
lrwxrwxrwx 1 root root      17 May 22 10:51 libexpat.so.0 -> libexpat.so.0.5.0
-rwxr-xr-x 1 root root  329742 May 22 10:51 libexpat.so.0.5.0
-rw-r--r-- 1 root root 1136746 May 22 11:44 libtcnative-1.a
-rwxr-xr-x 1 root root    1055 May 22 11:44 libtcnative-1.la
lrwxrwxrwx 1 root root      23 May 22 11:44 libtcnative-1.so -> libtcnative-1.so.0.1.33
lrwxrwxrwx 1 root root      23 May 22 11:44 libtcnative-1.so.0 -> libtcnative-1.so.0.1.33
-rwxr-xr-x 1 root root  794996 May 22 11:44 libtcnative-1.so.0.1.33
drwxr-xr-x 2 root root    4096 May 22 11:44 pkgconfig

6、安装之后的配置

        安装之后还需要配置才能正正启用apr。

        修改文件

/etc/profile

找到文件结束部分,在

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME

的后面加入

#tomcat-apr
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

然后就可以保存文件了。

        最后别忘了使这个配置生效,使用下面的命令(重启机器也可以)

source /etc/profile

7、成果检测

        执行完上面的步骤之后,就算是安装完成了,但是到底有没有成功呢,下面就来验证一下。

        先删除tomcat的所有运行记录,然后启动tomcat,查看文件

catalina.out

        仔细寻找这个文件,在中间部分,如果有类似于这样的输出

22-May-2015 11:46:11.393 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent
 Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.5.2.
22-May-2015 11:46:11.393 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent
 APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
22-May-2015 11:46:11.851 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL
 OpenSSL successfully initialized (OpenSSL 0.9.8e-rhel5 01 Jul 2008)

就表示安装和配置都成功了;但如果是类似于这样的,(其实没有安装的时候就是这样的)

22-May-2015 14:05:57.427 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/i386:/lib:/usr/lib

就表明没有成功。

8、后记

        整个安装过程其实并不复杂,按照步骤一步一步来,很中规中矩,需要的就是一颗勇于尝试的心!!

        据说那装了apr的tomcat可以提高性能,不知道是不是真的,而且看样子好像就可以支持OpenSSL了诶,以后有时间试一试!

        enjoy!

展开阅读全文
打赏
5
111 收藏
分享
加载中
阿信sxq博主

引用来自“Crazy丶纸”的评论

[root@Kry123 apr-1.5.2]# ./configure --prefix=/usr/local/apr/
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring APR library
Platform: x86_64-unknown-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.5.2
checking for chosen layout... apr
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/usr/local/src/apr-1.5.2':
configure: error: C compiler cannot create executables
See `config.log' for more details
编译器方面有问题吧
2016/05/23 15:53
回复
举报
[root@Kry123 apr-1.5.2]# ./configure --prefix=/usr/local/apr/
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring APR library
Platform: x86_64-unknown-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.5.2
checking for chosen layout... apr
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/usr/local/src/apr-1.5.2':
configure: error: C compiler cannot create executables
See `config.log' for more details
2016/05/23 15:44
回复
举报
阿信sxq博主

引用来自“清风-蓝魔泪”的评论

为啥不说说 为什么要安装这个鬼

因为我是菜鸟,我也不知道为什么要安装
2015/05/27 16:25
回复
举报
为啥不说说 为什么要安装这个鬼
2015/05/27 12:16
回复
举报
阿信sxq博主

引用来自“阿信sxq”的评论

引用来自“Feng_Yu”的评论

51其实ubuntu下直接用软件仓库安装tomcat7,软件源还有libtcnative-1这个包,直接安装就是tomcat-apr支持

根据我装openssl-devel的方式就可以知道,我是redhat系的,而且这种东西源代码编译更好都嘛

引用来自“Feng_Yu”的评论

源码编译更好这种是错误的认知,从来没有实际的理论与测试数据支持这个论点。而且编译安装的东西很难维护与批量部署。
说的有道理,确实维护比较困难
2015/05/23 20:36
回复
举报
阿信sxq博主

引用来自“ylmotol7”的评论

引用来自“西夏一品堂”的评论

引用来自“阿信sxq”的评论

引用来自“Raynor1”的评论

正式环境下面都是推荐装apr的。。

正式环境一般会用jetty,resin

谁说的?真假的?
我也觉得不靠谱,但是我没有数据来反驳
2015/05/23 20:36
回复
举报

引用来自“西夏一品堂”的评论

引用来自“阿信sxq”的评论

引用来自“Raynor1”的评论

正式环境下面都是推荐装apr的。。

正式环境一般会用jetty,resin

谁说的?真假的?
2015/05/23 20:15
回复
举报

引用来自“阿信sxq”的评论

引用来自“Feng_Yu”的评论

51其实ubuntu下直接用软件仓库安装tomcat7,软件源还有libtcnative-1这个包,直接安装就是tomcat-apr支持

根据我装openssl-devel的方式就可以知道,我是redhat系的,而且这种东西源代码编译更好都嘛
源码编译更好这种是错误的认知,从来没有实际的理论与测试数据支持这个论点。而且编译安装的东西很难维护与批量部署。
2015/05/23 19:54
回复
举报
阿信sxq博主

引用来自“西夏一品堂”的评论

有做测试吗,性能好了多少

没有
2015/05/23 15:34
回复
举报
阿信sxq博主

引用来自“西夏一品堂”的评论

引用来自“阿信sxq”的评论

引用来自“Raynor1”的评论

正式环境下面都是推荐装apr的。。

正式环境一般会用jetty,resin

oschina不是都用tomcat吗
2015/05/23 15:34
回复
举报
更多评论
打赏
23 评论
111 收藏
5
分享
返回顶部
顶部