Tomcat和Springboot使用APR
文章目录
debian-base
docker run -it --rm debian:10 bash
sed -i "s|deb.debian.org|mirrors.huaweicloud.com|g" /etc/apt/sources.list && \
sed -i "s|security.debian.org|mirrors.huaweicloud.com|g" /etc/apt/sources.list && \
apt-get clean && \
apt-get update
apt-get install \
jq \
gnupg2 \
lsb-release \
git \
locales \
ca-certificates \
curl \
wget \
vim \
psmisc \
procps \
autoconf \
gcc \
make \
tcl \
gettext \
difference \
iproute2 \
tree \
-yq
innstall-jdk-and-tomcat
mkdir -p /usr/local/java && mkdir -p /usr/local/tomcat;
curl -fksSL https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz | tar -xvz --strip-components 1 -C /usr/local/java;
curl -fksSL https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gz | tar -xvz --strip-components 1 -C /usr/local/tomcat;
echo "JAVA_HOME=/usr/local/java" >> /etc/profile.d/myenv.sh; \
echo "TOMCAT_HOME=/usr/local/tomcat" >> /etc/profile.d/myenv.sh; \
echo "PATH=\$PATH:\$JAVA_HOME/bin:\$TOMCAT_HOME/bin" >> /etc/profile.d/myenv.sh;
. /etc/profile
java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
install-apr
make-and-install
mkdir -p /opt/src/openssl;
mkdir -p /opt/src/apr;
mkdir -p /opt/src/apr-util;
mkdir -p /opt/src/apr-iconv;
curl -fksSL https://www.openssl.org/source/openssl-1.1.1i.tar.gz |tar -xvz --strip-components 1 -C /opt/src/openssl;
curl -fksSL https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.7.0.tar.gz | tar -xvz --strip-components 1 -C /opt/src/apr;
curl -fksSL https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz | tar -xvz --strip-components 1 -C /opt/src/apr-util;
curl -fksSL https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-iconv-1.2.2.tar.gz | tar -xvz --strip-components 1 -C /opt/src/apr-iconv;
cd /opt/src/openssl;
./config --prefix=/usr/local/openssl;
make && make install;
cd /opt/src/apr;
## 默认--prefix=/usr/local/apr
./configure --prefix=/usr/local/apr;
make && make install;
cd /opt/src/apr-iconv;
## 默认--prefix=/usr/local/apache2
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr;
make && make install;
cd /opt/src/apr-util;
## 默认--prefix=/usr/local/apr
./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr --with-openssl=/usr/local/openssl --with-apr-iconv=../apr-iconv;
make && make install;
xml/apr_xml.c:35:10: fatal error: expat.h: No such file or directory
#include <expat.h>
^~~~~~~~~
compilation terminated.
make[1]: *** [/opt/src/apr-util/build/rules.mk:206: xml/apr_xml.lo] Error 1
make[1]: Leaving directory '/opt/src/apr-util'
make: *** [/opt/src/apr-util/build/rules.mk:118: all-recursive] Error 1
apt-get install libexpat1-dev -y
installed
全部安装完后的目录结构
root@0df6339ce1c4:/# tree /usr/local/apr/
+ tree /usr/local/apr/
/usr/local/apr/
├── bin
│ ├── apr-1-config
│ ├── apriconv
│ └── apu-1-config
├── build-1
│ ├── apr_rules.mk
│ ├── libtool
│ ├── make_exports.awk
│ ├── make_var_export.awk
│ └── mkdir.sh
├── include
│ └── apr-1
│ ├── api_version.h
│ ├── apr.h
│ ├── apr_allocator.h
│ ├── apr_anylock.h
│ ├── apr_atomic.h
│ ├── apr_base64.h
│ ├── apr_buckets.h
│ ├── apr_crypto.h
│ ├── apr_cstr.h
│ ├── apr_date.h
│ ├── apr_dbd.h
│ ├── apr_dbm.h
│ ├── apr_dso.h
│ ├── apr_encode.h
│ ├── apr_env.h
│ ├── apr_errno.h
│ ├── apr_escape.h
│ ├── apr_file_info.h
│ ├── apr_file_io.h
│ ├── apr_fnmatch.h
│ ├── apr_general.h
│ ├── apr_getopt.h
│ ├── apr_global_mutex.h
│ ├── apr_hash.h
│ ├── apr_hooks.h
│ ├── apr_iconv.h
│ ├── apr_inherit.h
│ ├── apr_ldap.h
│ ├── apr_ldap_init.h
│ ├── apr_ldap_option.h
│ ├── apr_ldap_rebind.h
│ ├── apr_ldap_url.h
│ ├── apr_lib.h
│ ├── apr_md4.h
│ ├── apr_md5.h
│ ├── apr_memcache.h
│ ├── apr_mmap.h
│ ├── apr_network_io.h
│ ├── apr_optional.h
│ ├── apr_optional_hooks.h
│ ├── apr_perms_set.h
│ ├── apr_poll.h
│ ├── apr_pools.h
│ ├── apr_portable.h
│ ├── apr_proc_mutex.h
│ ├── apr_queue.h
│ ├── apr_random.h
│ ├── apr_redis.h
│ ├── apr_reslist.h
│ ├── apr_ring.h
│ ├── apr_rmm.h
│ ├── apr_sdbm.h
│ ├── apr_sha1.h
│ ├── apr_shm.h
│ ├── apr_signal.h
│ ├── apr_siphash.h
│ ├── apr_skiplist.h
│ ├── apr_strings.h
│ ├── apr_strmatch.h
│ ├── apr_support.h
│ ├── apr_tables.h
│ ├── apr_thread_cond.h
│ ├── apr_thread_mutex.h
│ ├── apr_thread_pool.h
│ ├── apr_thread_proc.h
│ ├── apr_thread_rwlock.h
│ ├── apr_time.h
│ ├── apr_uri.h
│ ├── apr_user.h
│ ├── apr_uuid.h
│ ├── apr_version.h
│ ├── apr_want.h
│ ├── apr_xlate.h
│ ├── apr_xml.h
│ ├── apu.h
│ ├── apu_errno.h
│ ├── apu_version.h
│ └── apu_want.h
└── lib
├── apr.exp
├── aprutil.exp
├── iconv
│ ├── _tbl_simple.a
│ ├── _tbl_simple.la
│ ├── _tbl_simple.so
│ ├── adobe-stdenc.a
│ ├── adobe-stdenc.la
│ ├── adobe-stdenc.so
│ ├── adobe-symbol.a
│ ├── adobe-symbol.la
│ ├── adobe-symbol.so
│ ├── adobe-zdingbats.a
│ ├── adobe-zdingbats.la
│ ├── adobe-zdingbats.so
│ ├── big5.a
│ ├── big5.la
│ ├── big5.so
│ ├── cns11643-plane1.a
│ ├── cns11643-plane1.la
│ ├── cns11643-plane1.so
│ ├── cns11643-plane14.a
│ ├── cns11643-plane14.la
│ ├── cns11643-plane14.so
│ ├── cns11643-plane2.a
│ ├── cns11643-plane2.la
│ ├── cns11643-plane2.so
│ ├── cp037.a
│ ├── cp037.la
│ ├── cp037.so
│ ├── cp038.a
│ ├── cp038.la
│ ├── cp038.so
│ ├── cp10000.a
│ ├── cp10000.la
│ ├── cp10000.so
│ ├── cp10006.a
│ ├── cp10006.la
│ ├── cp10006.so
│ ├── cp10007.a
│ ├── cp10007.la
│ ├── cp10007.so
│ ├── cp10029.a
│ ├── cp10029.la
│ ├── cp10029.so
│ ├── cp1006.a
│ ├── cp1006.la
│ ├── cp1006.so
│ ├── cp10079.a
│ ├── cp10079.la
│ ├── cp10079.so
│ ├── cp10081.a
│ ├── cp10081.la
│ ├── cp10081.so
│ ├── cp1026.a
│ ├── cp1026.la
│ ├── cp1026.so
│ ├── cp273.a
│ ├── cp273.la
│ ├── cp273.so
│ ├── cp274.a
│ ├── cp274.la
│ ├── cp274.so
│ ├── cp275.a
│ ├── cp275.la
│ ├── cp275.so
│ ├── cp277.a
│ ├── cp277.la
│ ├── cp277.so
│ ├── cp278.a
│ ├── cp278.la
│ ├── cp278.so
│ ├── cp280.a
│ ├── cp280.la
│ ├── cp280.so
│ ├── cp281.a
│ ├── cp281.la
│ ├── cp281.so
│ ├── cp284.a
│ ├── cp284.la
│ ├── cp284.so
│ ├── cp285.a
│ ├── cp285.la
│ ├── cp285.so
│ ├── cp290.a
│ ├── cp290.la
│ ├── cp290.so
│ ├── cp297.a
│ ├── cp297.la
│ ├── cp297.so
│ ├── cp420.a
│ ├── cp420.la
│ ├── cp420.so
│ ├── cp423.a
│ ├── cp423.la
│ ├── cp423.so
│ ├── cp424.a
│ ├── cp424.la
│ ├── cp424.so
│ ├── cp437.a
│ ├── cp437.la
│ ├── cp437.so
│ ├── cp500.a
│ ├── cp500.la
│ ├── cp500.so
│ ├── cp737.a
│ ├── cp737.la
│ ├── cp737.so
│ ├── cp775.a
│ ├── cp775.la
│ ├── cp775.so
│ ├── cp850.a
│ ├── cp850.la
│ ├── cp850.so
│ ├── cp851.a
│ ├── cp851.la
│ ├── cp851.so
│ ├── cp852.a
│ ├── cp852.la
│ ├── cp852.so
│ ├── cp855.a
│ ├── cp855.la
│ ├── cp855.so
│ ├── cp856.a
│ ├── cp856.la
│ ├── cp856.so
│ ├── cp857.a
│ ├── cp857.la
│ ├── cp857.so
│ ├── cp860.a
│ ├── cp860.la
│ ├── cp860.so
│ ├── cp861.a
│ ├── cp861.la
│ ├── cp861.so
│ ├── cp862.a
│ ├── cp862.la
│ ├── cp862.so
│ ├── cp863.a
│ ├── cp863.la
│ ├── cp863.so
│ ├── cp864.a
│ ├── cp864.la
│ ├── cp864.so
│ ├── cp865.a
│ ├── cp865.la
│ ├── cp865.so
│ ├── cp866.a
│ ├── cp866.la
│ ├── cp866.so
│ ├── cp868.a
│ ├── cp868.la
│ ├── cp868.so
│ ├── cp869.a
│ ├── cp869.la
│ ├── cp869.so
│ ├── cp870.a
│ ├── cp870.la
│ ├── cp870.so
│ ├── cp871.a
│ ├── cp871.la
│ ├── cp871.so
│ ├── cp874.a
│ ├── cp874.la
│ ├── cp874.so
│ ├── cp875.a
│ ├── cp875.la
│ ├── cp875.so
│ ├── cp880.a
│ ├── cp880.la
│ ├── cp880.so
│ ├── cp891.a
│ ├── cp891.la
│ ├── cp891.so
│ ├── cp903.a
│ ├── cp903.la
│ ├── cp903.so
│ ├── cp904.a
│ ├── cp904.la
│ ├── cp904.so
│ ├── cp905.a
│ ├── cp905.la
│ ├── cp905.so
│ ├── cp918.a
│ ├── cp918.la
│ ├── cp918.so
│ ├── cp932.a
│ ├── cp932.la
│ ├── cp932.so
│ ├── cp936.a
│ ├── cp936.la
│ ├── cp936.so
│ ├── cp949.a
│ ├── cp949.la
│ ├── cp949.so
│ ├── cp950.a
│ ├── cp950.la
│ ├── cp950.so
│ ├── dec-mcs.a
│ ├── dec-mcs.la
│ ├── dec-mcs.so
│ ├── ebcdic-at-de-a.a
│ ├── ebcdic-at-de-a.la
│ ├── ebcdic-at-de-a.so
│ ├── ebcdic-at-de.a
│ ├── ebcdic-at-de.la
│ ├── ebcdic-at-de.so
│ ├── ebcdic-ca-fr.a
│ ├── ebcdic-ca-fr.la
│ ├── ebcdic-ca-fr.so
│ ├── ebcdic-dk-no-a.a
│ ├── ebcdic-dk-no-a.la
│ ├── ebcdic-dk-no-a.so
│ ├── ebcdic-dk-no.a
│ ├── ebcdic-dk-no.la
│ ├── ebcdic-dk-no.so
│ ├── ebcdic-es-a.a
│ ├── ebcdic-es-a.la
│ ├── ebcdic-es-a.so
│ ├── ebcdic-es-s.a
│ ├── ebcdic-es-s.la
│ ├── ebcdic-es-s.so
│ ├── ebcdic-es.a
│ ├── ebcdic-es.la
│ ├── ebcdic-es.so
│ ├── ebcdic-fi-se-a.a
│ ├── ebcdic-fi-se-a.la
│ ├── ebcdic-fi-se-a.so
│ ├── ebcdic-fi-se.a
│ ├── ebcdic-fi-se.la
│ ├── ebcdic-fi-se.so
│ ├── ebcdic-fr.a
│ ├── ebcdic-fr.la
│ ├── ebcdic-fr.so
│ ├── ebcdic-it.a
│ ├── ebcdic-it.la
│ ├── ebcdic-it.so
│ ├── ebcdic-pt.a
│ ├── ebcdic-pt.la
│ ├── ebcdic-pt.so
│ ├── ebcdic-uk.a
│ ├── ebcdic-uk.la
│ ├── ebcdic-uk.so
│ ├── ebcdic-us.a
│ ├── ebcdic-us.la
│ ├── ebcdic-us.so
│ ├── euc-jp.a
│ ├── euc-jp.la
│ ├── euc-jp.so
│ ├── euc-kr.a
│ ├── euc-kr.la
│ ├── euc-kr.so
│ ├── euc-tw.a
│ ├── euc-tw.la
│ ├── euc-tw.so
│ ├── gb12345.a
│ ├── gb12345.la
│ ├── gb12345.so
│ ├── gb2312.a
│ ├── gb2312.la
│ ├── gb2312.so
│ ├── gb_2312-80.a
│ ├── gb_2312-80.la
│ ├── gb_2312-80.so
│ ├── hp-roman8.a
│ ├── hp-roman8.la
│ ├── hp-roman8.so
│ ├── iso-10646-ucs-2.a
│ ├── iso-10646-ucs-2.la
│ ├── iso-10646-ucs-2.so
│ ├── iso-10646-ucs-4.a
│ ├── iso-10646-ucs-4.la
│ ├── iso-10646-ucs-4.so
│ ├── iso-2022-cn.a
│ ├── iso-2022-cn.la
│ ├── iso-2022-cn.so
│ ├── iso-2022-jp-2.a
│ ├── iso-2022-jp-2.la
│ ├── iso-2022-jp-2.so
│ ├── iso-2022-jp.a
│ ├── iso-2022-jp.la
│ ├── iso-2022-jp.so
│ ├── iso-2022-kr.a
│ ├── iso-2022-kr.la
│ ├── iso-2022-kr.so
│ ├── iso-8859-1.a
│ ├── iso-8859-1.la
│ ├── iso-8859-1.so
│ ├── iso-8859-10.a
│ ├── iso-8859-10.la
│ ├── iso-8859-10.so
│ ├── iso-8859-13.a
│ ├── iso-8859-13.la
│ ├── iso-8859-13.so
│ ├── iso-8859-14.a
│ ├── iso-8859-14.la
│ ├── iso-8859-14.so
│ ├── iso-8859-15.a
│ ├── iso-8859-15.la
│ ├── iso-8859-15.so
│ ├── iso-8859-2.a
│ ├── iso-8859-2.la
│ ├── iso-8859-2.so
│ ├── iso-8859-3.a
│ ├── iso-8859-3.la
│ ├── iso-8859-3.so
│ ├── iso-8859-4.a
│ ├── iso-8859-4.la
│ ├── iso-8859-4.so
│ ├── iso-8859-5.a
│ ├── iso-8859-5.la
│ ├── iso-8859-5.so
│ ├── iso-8859-6.a
│ ├── iso-8859-6.la
│ ├── iso-8859-6.so
│ ├── iso-8859-7.a
│ ├── iso-8859-7.la
│ ├── iso-8859-7.so
│ ├── iso-8859-8.a
│ ├── iso-8859-8.la
│ ├── iso-8859-8.so
│ ├── iso-8859-9.a
│ ├── iso-8859-9.la
│ ├── iso-8859-9.so
│ ├── iso-ir-10.a
│ ├── iso-ir-10.la
│ ├── iso-ir-10.so
│ ├── iso-ir-102.a
│ ├── iso-ir-102.la
│ ├── iso-ir-102.so
│ ├── iso-ir-103.a
│ ├── iso-ir-103.la
│ ├── iso-ir-103.so
│ ├── iso-ir-11.a
│ ├── iso-ir-11.la
│ ├── iso-ir-11.so
│ ├── iso-ir-111.a
│ ├── iso-ir-111.la
│ ├── iso-ir-111.so
│ ├── iso-ir-121.a
│ ├── iso-ir-121.la
│ ├── iso-ir-121.so
│ ├── iso-ir-122.a
│ ├── iso-ir-122.la
│ ├── iso-ir-122.so
│ ├── iso-ir-123.a
│ ├── iso-ir-123.la
│ ├── iso-ir-123.so
│ ├── iso-ir-128.a
│ ├── iso-ir-128.la
│ ├── iso-ir-128.so
│ ├── iso-ir-13.a
│ ├── iso-ir-13.la
│ ├── iso-ir-13.so
│ ├── iso-ir-139.a
│ ├── iso-ir-139.la
│ ├── iso-ir-139.so
│ ├── iso-ir-14.a
│ ├── iso-ir-14.la
│ ├── iso-ir-14.so
│ ├── iso-ir-141.a
│ ├── iso-ir-141.la
│ ├── iso-ir-141.so
│ ├── iso-ir-142.a
│ ├── iso-ir-142.la
│ ├── iso-ir-142.so
│ ├── iso-ir-143.a
│ ├── iso-ir-143.la
│ ├── iso-ir-143.so
│ ├── iso-ir-146.a
│ ├── iso-ir-146.la
│ ├── iso-ir-146.so
│ ├── iso-ir-147.a
│ ├── iso-ir-147.la
│ ├── iso-ir-147.so
│ ├── iso-ir-15.a
│ ├── iso-ir-15.la
│ ├── iso-ir-15.so
│ ├── iso-ir-150.a
│ ├── iso-ir-150.la
│ ├── iso-ir-150.so
│ ├── iso-ir-151.a
│ ├── iso-ir-151.la
│ ├── iso-ir-151.so
│ ├── iso-ir-152.a
│ ├── iso-ir-152.la
│ ├── iso-ir-152.so
│ ├── iso-ir-153.a
│ ├── iso-ir-153.la
│ ├── iso-ir-153.so
│ ├── iso-ir-154.a
│ ├── iso-ir-154.la
│ ├── iso-ir-154.so
│ ├── iso-ir-155.a
│ ├── iso-ir-155.la
│ ├── iso-ir-155.so
│ ├── iso-ir-158.a
│ ├── iso-ir-158.la
│ ├── iso-ir-158.so
│ ├── iso-ir-16.a
│ ├── iso-ir-16.la
│ ├── iso-ir-16.so
│ ├── iso-ir-17.a
│ ├── iso-ir-17.la
│ ├── iso-ir-17.so
│ ├── iso-ir-18.a
│ ├── iso-ir-18.la
│ ├── iso-ir-18.so
│ ├── iso-ir-19.a
│ ├── iso-ir-19.la
│ ├── iso-ir-19.so
│ ├── iso-ir-2.a
│ ├── iso-ir-2.la
│ ├── iso-ir-2.so
│ ├── iso-ir-21.a
│ ├── iso-ir-21.la
│ ├── iso-ir-21.so
│ ├── iso-ir-25.a
│ ├── iso-ir-25.la
│ ├── iso-ir-25.so
│ ├── iso-ir-27.a
│ ├── iso-ir-27.la
│ ├── iso-ir-27.so
│ ├── iso-ir-37.a
│ ├── iso-ir-37.la
│ ├── iso-ir-37.so
│ ├── iso-ir-4.a
│ ├── iso-ir-4.la
│ ├── iso-ir-4.so
│ ├── iso-ir-47.a
│ ├── iso-ir-47.la
│ ├── iso-ir-47.so
│ ├── iso-ir-49.a
│ ├── iso-ir-49.la
│ ├── iso-ir-49.so
│ ├── iso-ir-50.a
│ ├── iso-ir-50.la
│ ├── iso-ir-50.so
│ ├── iso-ir-51.a
│ ├── iso-ir-51.la
│ ├── iso-ir-51.so
│ ├── iso-ir-54.a
│ ├── iso-ir-54.la
│ ├── iso-ir-54.so
│ ├── iso-ir-55.a
│ ├── iso-ir-55.la
│ ├── iso-ir-55.so
│ ├── iso-ir-57.a
│ ├── iso-ir-57.la
│ ├── iso-ir-57.so
│ ├── iso-ir-60.a
│ ├── iso-ir-60.la
│ ├── iso-ir-60.so
│ ├── iso-ir-61.a
│ ├── iso-ir-61.la
│ ├── iso-ir-61.so
│ ├── iso-ir-69.a
│ ├── iso-ir-69.la
│ ├── iso-ir-69.so
│ ├── iso-ir-70.a
│ ├── iso-ir-70.la
│ ├── iso-ir-70.so
│ ├── iso-ir-8-1.a
│ ├── iso-ir-8-1.la
│ ├── iso-ir-8-1.so
│ ├── iso-ir-8-2.a
│ ├── iso-ir-8-2.la
│ ├── iso-ir-8-2.so
│ ├── iso-ir-84.a
│ ├── iso-ir-84.la
│ ├── iso-ir-84.so
│ ├── iso-ir-85.a
│ ├── iso-ir-85.la
│ ├── iso-ir-85.so
│ ├── iso-ir-86.a
│ ├── iso-ir-86.la
│ ├── iso-ir-86.so
│ ├── iso-ir-88.a
│ ├── iso-ir-88.la
│ ├── iso-ir-88.so
│ ├── iso-ir-89.a
│ ├── iso-ir-89.la
│ ├── iso-ir-89.so
│ ├── iso-ir-9-1.a
│ ├── iso-ir-9-1.la
│ ├── iso-ir-9-1.so
│ ├── iso-ir-9-2.a
│ ├── iso-ir-9-2.la
│ ├── iso-ir-9-2.so
│ ├── iso-ir-90.a
│ ├── iso-ir-90.la
│ ├── iso-ir-90.so
│ ├── iso-ir-91.a
│ ├── iso-ir-91.la
│ ├── iso-ir-91.so
│ ├── iso-ir-92.a
│ ├── iso-ir-92.la
│ ├── iso-ir-92.so
│ ├── iso-ir-93.a
│ ├── iso-ir-93.la
│ ├── iso-ir-93.so
│ ├── iso-ir-94.a
│ ├── iso-ir-94.la
│ ├── iso-ir-94.so
│ ├── iso-ir-95.a
│ ├── iso-ir-95.la
│ ├── iso-ir-95.so
│ ├── iso-ir-96.a
│ ├── iso-ir-96.la
│ ├── iso-ir-96.so
│ ├── iso-ir-98.a
│ ├── iso-ir-98.la
│ ├── iso-ir-98.so
│ ├── iso-ir-99.a
│ ├── iso-ir-99.la
│ ├── iso-ir-99.so
│ ├── iso646-dk.a
│ ├── iso646-dk.la
│ ├── iso646-dk.so
│ ├── iso646-kr.a
│ ├── iso646-kr.la
│ ├── iso646-kr.so
│ ├── jis_x0201.a
│ ├── jis_x0201.la
│ ├── jis_x0201.so
│ ├── jis_x0208-1983.a
│ ├── jis_x0208-1983.la
│ ├── jis_x0208-1983.so
│ ├── jis_x0212-1990.a
│ ├── jis_x0212-1990.la
│ ├── jis_x0212-1990.so
│ ├── johab.a
│ ├── johab.la
│ ├── johab.so
│ ├── koi8-r.a
│ ├── koi8-r.la
│ ├── koi8-r.so
│ ├── koi8-ru.a
│ ├── koi8-ru.la
│ ├── koi8-ru.so
│ ├── koi8-u.a
│ ├── koi8-u.la
│ ├── koi8-u.so
│ ├── ksx1001.a
│ ├── ksx1001.la
│ ├── ksx1001.so
│ ├── mac-ce.a
│ ├── mac-ce.la
│ ├── mac-ce.so
│ ├── mac-croatian.a
│ ├── mac-croatian.la
│ ├── mac-croatian.so
│ ├── mac-cyrillic.a
│ ├── mac-cyrillic.la
│ ├── mac-cyrillic.so
│ ├── mac-dingbats.a
│ ├── mac-dingbats.la
│ ├── mac-dingbats.so
│ ├── mac-greek.a
│ ├── mac-greek.la
│ ├── mac-greek.so
│ ├── mac-iceland.a
│ ├── mac-iceland.la
│ ├── mac-iceland.so
│ ├── mac-japan.a
│ ├── mac-japan.la
│ ├── mac-japan.so
│ ├── mac-roman.a
│ ├── mac-roman.la
│ ├── mac-roman.so
│ ├── mac-romania.a
│ ├── mac-romania.la
│ ├── mac-romania.so
│ ├── mac-thai.a
│ ├── mac-thai.la
│ ├── mac-thai.so
│ ├── mac-turkish.a
│ ├── mac-turkish.la
│ ├── mac-turkish.so
│ ├── mac-ukraine.a
│ ├── mac-ukraine.la
│ ├── mac-ukraine.so
│ ├── macintosh.a
│ ├── macintosh.la
│ ├── macintosh.so
│ ├── osd_ebcdic_df04_1.a
│ ├── osd_ebcdic_df04_1.la
│ ├── osd_ebcdic_df04_1.so
│ ├── osd_ebcdic_df04_15.a
│ ├── osd_ebcdic_df04_15.la
│ ├── osd_ebcdic_df04_15.so
│ ├── shift_jis.a
│ ├── shift_jis.la
│ ├── shift_jis.so
│ ├── ucs2-internal.a
│ ├── ucs2-internal.la
│ ├── ucs2-internal.so
│ ├── ucs4-internal.a
│ ├── ucs4-internal.la
│ ├── ucs4-internal.so
│ ├── unicode-1-1-utf-7.a
│ ├── unicode-1-1-utf-7.la
│ ├── unicode-1-1-utf-7.so
│ ├── us-ascii.a
│ ├── us-ascii.la
│ ├── us-ascii.so
│ ├── utf-16.a
│ ├── utf-16.la
│ ├── utf-16.so
│ ├── utf-8.a
│ ├── utf-8.la
│ ├── utf-8.so
│ ├── windows-1250.a
│ ├── windows-1250.la
│ ├── windows-1250.so
│ ├── windows-1251.a
│ ├── windows-1251.la
│ ├── windows-1251.so
│ ├── windows-1252.a
│ ├── windows-1252.la
│ ├── windows-1252.so
│ ├── windows-1253.a
│ ├── windows-1253.la
│ ├── windows-1253.so
│ ├── windows-1254.a
│ ├── windows-1254.la
│ ├── windows-1254.so
│ ├── windows-1255.a
│ ├── windows-1255.la
│ ├── windows-1255.so
│ ├── windows-1256.a
│ ├── windows-1256.la
│ ├── windows-1256.so
│ ├── windows-1257.a
│ ├── windows-1257.la
│ ├── windows-1257.so
│ ├── windows-1258.a
│ ├── windows-1258.la
│ └── windows-1258.so
├── libapr-1.a
├── libapr-1.la
├── libapr-1.so -> libapr-1.so.0.7.0
├── libapr-1.so.0 -> libapr-1.so.0.7.0
├── libapr-1.so.0.7.0
├── libapriconv-1.a
├── libapriconv-1.la
├── libapriconv-1.so -> libapriconv-1.so.0.2.2
├── libapriconv-1.so.0 -> libapriconv-1.so.0.2.2
├── libapriconv-1.so.0.2.2
├── libaprutil-1.a
├── libaprutil-1.la
├── libaprutil-1.so -> libaprutil-1.so.0.6.1
├── libaprutil-1.so.0 -> libaprutil-1.so.0.6.1
├── libaprutil-1.so.0.6.1
└── pkgconfig
├── apr-1.pc
└── apr-util-1.pc
7 directories, 741 files
install-tomcat-native
make-and-install
cd /usr/local/tomcat/bin;
tar -xvf tomcat-native.tar.gz;
cd tomcat-native-1.2.25-src/native
./configure \
--with-apr=/usr/local/apr \
--with-java-home=/usr/local/java \
--with-ssl=/usr/local/openssl;
make && make install;
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
Tomcat Native Version: 1.2.25
checking for chosen layout... tcnative
checking for APR... yes
configure: APR 1.7.0 detected.
setting CC to "gcc"
setting CPP to "gcc -E"
checking JAVA_HOME... /usr/local/java/
adding "-I/usr/local/java//include" to TCNATIVE_PRIV_INCLUDES
checking for JDK os include directory... linux
adding "-I/usr/local/java//include/linux" to TCNATIVE_PRIV_INCLUDES
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for OpenSSL library... using openssl from /usr/local/openssl/lib and /usr/local/openssl/include
checking OpenSSL library version >= 1.0.2... ok
checking for OpenSSL DSA support... yes
adding "-I/usr/local/openssl/include" to TCNATIVE_PRIV_INCLUDES
setting TCNATIVE_LDFLAGS to "-L/usr/local/openssl/lib -Wl,-rpath,/usr/local/openssl/lib -lssl -lcrypto"
adding "-DHAVE_OPENSSL" to CFLAGS
setting TCNATIVE_LIBS to ""
setting TCNATIVE_LIBS to " /usr/local/apr/lib/libapr-1.la -lrt -lcrypt -lpthread -ldl"
adding "-DTCNATIVE_LINUX" to CFLAGS
checking for apr_pollset_wakeup in -lapr-1... yes
adding "-DHAVE_POLLSET_WAKEUP" to CFLAGS
configure: creating ./config.status
config.status: creating Makefile
config.status: executing default commands
make[1]: Entering directory '/usr/local/tomcat/bin/tomcat-native-1.2.25-src/native'
make[1]: Nothing to be done for 'local-all'.
make[1]: Leaving directory '/usr/local/tomcat/bin/tomcat-native-1.2.25-src/native'
/usr/local/apr/build-1/mkdir.sh /usr/local/apr/lib
/bin/bash /usr/local/apr/build-1/libtool --mode=install /usr/bin/install -c -m 755 libtcnative-1.la /usr/local/apr/lib
libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.so.0.2.25 /usr/local/apr/lib/libtcnative-1.so.0.2.25
libtool: install: (cd /usr/local/apr/lib && { ln -s -f libtcnative-1.so.0.2.25 libtcnative-1.so.0 || { rm -f libtcnative-1.so.0 && ln -s libtcnative-1.so.0.2.25 libtcnative-1.so.0; }; })
libtool: install: (cd /usr/local/apr/lib && { ln -s -f libtcnative-1.so.0.2.25 libtcnative-1.so || { rm -f libtcnative-1.so && ln -s libtcnative-1.so.0.2.25 libtcnative-1.so; }; })
libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.lai /usr/local/apr/lib/libtcnative-1.la
libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.a /usr/local/apr/lib/libtcnative-1.a
libtool: install: chmod 644 /usr/local/apr/lib/libtcnative-1.a
libtool: install: ranlib /usr/local/apr/lib/libtcnative-1.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/bin:/usr/local/tomcat/bin:/sbin" ldconfig -n /usr/local/apr/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apr/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
installed
安装完tomcat-native之后/usr/local/apr结构,我们看到/usr/local/apr/lib目录下多了几个libtcnative-1相关的.so文件
/usr/local/apr
├── bin
│ ├── apr-1-config
│ ├── apriconv
│ └── apu-1-config
├── build-1
│ ├── apr_rules.mk
│ ├── libtool
│ ├── make_exports.awk
│ ├── make_var_export.awk
│ └── mkdir.sh
├── include
│ └── apr-1
│ ├── api_version.h
│ ├── apr.h
│ ├── apr_allocator.h
│ ├── apr_anylock.h
│ ├── apr_atomic.h
│ ├── apr_base64.h
│ ├── apr_buckets.h
│ ├── apr_crypto.h
│ ├── apr_cstr.h
│ ├── apr_date.h
│ ├── apr_dbd.h
│ ├── apr_dbm.h
│ ├── apr_dso.h
│ ├── apr_encode.h
│ ├── apr_env.h
│ ├── apr_errno.h
│ ├── apr_escape.h
│ ├── apr_file_info.h
│ ├── apr_file_io.h
│ ├── apr_fnmatch.h
│ ├── apr_general.h
│ ├── apr_getopt.h
│ ├── apr_global_mutex.h
│ ├── apr_hash.h
│ ├── apr_hooks.h
│ ├── apr_iconv.h
│ ├── apr_inherit.h
│ ├── apr_ldap.h
│ ├── apr_ldap_init.h
│ ├── apr_ldap_option.h
│ ├── apr_ldap_rebind.h
│ ├── apr_ldap_url.h
│ ├── apr_lib.h
│ ├── apr_md4.h
│ ├── apr_md5.h
│ ├── apr_memcache.h
│ ├── apr_mmap.h
│ ├── apr_network_io.h
│ ├── apr_optional.h
│ ├── apr_optional_hooks.h
│ ├── apr_perms_set.h
│ ├── apr_poll.h
│ ├── apr_pools.h
│ ├── apr_portable.h
│ ├── apr_proc_mutex.h
│ ├── apr_queue.h
│ ├── apr_random.h
│ ├── apr_redis.h
│ ├── apr_reslist.h
│ ├── apr_ring.h
│ ├── apr_rmm.h
│ ├── apr_sdbm.h
│ ├── apr_sha1.h
│ ├── apr_shm.h
│ ├── apr_signal.h
│ ├── apr_siphash.h
│ ├── apr_skiplist.h
│ ├── apr_strings.h
│ ├── apr_strmatch.h
│ ├── apr_support.h
│ ├── apr_tables.h
│ ├── apr_thread_cond.h
│ ├── apr_thread_mutex.h
│ ├── apr_thread_pool.h
│ ├── apr_thread_proc.h
│ ├── apr_thread_rwlock.h
│ ├── apr_time.h
│ ├── apr_uri.h
│ ├── apr_user.h
│ ├── apr_uuid.h
│ ├── apr_version.h
│ ├── apr_want.h
│ ├── apr_xlate.h
│ ├── apr_xml.h
│ ├── apu.h
│ ├── apu_errno.h
│ ├── apu_version.h
│ └── apu_want.h
└── lib
├── apr.exp
├── aprutil.exp
├── iconv
│ ├── _tbl_simple.a
│ ├── _tbl_simple.la
│ ├── _tbl_simple.so
│ ├── adobe-stdenc.a
│ ├── adobe-stdenc.la
│ ├── adobe-stdenc.so
│ ├── adobe-symbol.a
│ ├── adobe-symbol.la
│ ├── adobe-symbol.so
│ ├── adobe-zdingbats.a
│ ├── adobe-zdingbats.la
│ ├── adobe-zdingbats.so
│ ├── big5.a
│ ├── big5.la
│ ├── big5.so
│ ├── cns11643-plane1.a
│ ├── cns11643-plane1.la
│ ├── cns11643-plane1.so
│ ├── cns11643-plane14.a
│ ├── cns11643-plane14.la
│ ├── cns11643-plane14.so
│ ├── cns11643-plane2.a
│ ├── cns11643-plane2.la
│ ├── cns11643-plane2.so
│ ├── cp037.a
│ ├── cp037.la
│ ├── cp037.so
│ ├── cp038.a
│ ├── cp038.la
│ ├── cp038.so
│ ├── cp10000.a
│ ├── cp10000.la
│ ├── cp10000.so
│ ├── cp10006.a
│ ├── cp10006.la
│ ├── cp10006.so
│ ├── cp10007.a
│ ├── cp10007.la
│ ├── cp10007.so
│ ├── cp10029.a
│ ├── cp10029.la
│ ├── cp10029.so
│ ├── cp1006.a
│ ├── cp1006.la
│ ├── cp1006.so
│ ├── cp10079.a
│ ├── cp10079.la
│ ├── cp10079.so
│ ├── cp10081.a
│ ├── cp10081.la
│ ├── cp10081.so
│ ├── cp1026.a
│ ├── cp1026.la
│ ├── cp1026.so
│ ├── cp273.a
│ ├── cp273.la
│ ├── cp273.so
│ ├── cp274.a
│ ├── cp274.la
│ ├── cp274.so
│ ├── cp275.a
│ ├── cp275.la
│ ├── cp275.so
│ ├── cp277.a
│ ├── cp277.la
│ ├── cp277.so
│ ├── cp278.a
│ ├── cp278.la
│ ├── cp278.so
│ ├── cp280.a
│ ├── cp280.la
│ ├── cp280.so
│ ├── cp281.a
│ ├── cp281.la
│ ├── cp281.so
│ ├── cp284.a
│ ├── cp284.la
│ ├── cp284.so
│ ├── cp285.a
│ ├── cp285.la
│ ├── cp285.so
│ ├── cp290.a
│ ├── cp290.la
│ ├── cp290.so
│ ├── cp297.a
│ ├── cp297.la
│ ├── cp297.so
│ ├── cp420.a
│ ├── cp420.la
│ ├── cp420.so
│ ├── cp423.a
│ ├── cp423.la
│ ├── cp423.so
│ ├── cp424.a
│ ├── cp424.la
│ ├── cp424.so
│ ├── cp437.a
│ ├── cp437.la
│ ├── cp437.so
│ ├── cp500.a
│ ├── cp500.la
│ ├── cp500.so
│ ├── cp737.a
│ ├── cp737.la
│ ├── cp737.so
│ ├── cp775.a
│ ├── cp775.la
│ ├── cp775.so
│ ├── cp850.a
│ ├── cp850.la
│ ├── cp850.so
│ ├── cp851.a
│ ├── cp851.la
│ ├── cp851.so
│ ├── cp852.a
│ ├── cp852.la
│ ├── cp852.so
│ ├── cp855.a
│ ├── cp855.la
│ ├── cp855.so
│ ├── cp856.a
│ ├── cp856.la
│ ├── cp856.so
│ ├── cp857.a
│ ├── cp857.la
│ ├── cp857.so
│ ├── cp860.a
│ ├── cp860.la
│ ├── cp860.so
│ ├── cp861.a
│ ├── cp861.la
│ ├── cp861.so
│ ├── cp862.a
│ ├── cp862.la
│ ├── cp862.so
│ ├── cp863.a
│ ├── cp863.la
│ ├── cp863.so
│ ├── cp864.a
│ ├── cp864.la
│ ├── cp864.so
│ ├── cp865.a
│ ├── cp865.la
│ ├── cp865.so
│ ├── cp866.a
│ ├── cp866.la
│ ├── cp866.so
│ ├── cp868.a
│ ├── cp868.la
│ ├── cp868.so
│ ├── cp869.a
│ ├── cp869.la
│ ├── cp869.so
│ ├── cp870.a
│ ├── cp870.la
│ ├── cp870.so
│ ├── cp871.a
│ ├── cp871.la
│ ├── cp871.so
│ ├── cp874.a
│ ├── cp874.la
│ ├── cp874.so
│ ├── cp875.a
│ ├── cp875.la
│ ├── cp875.so
│ ├── cp880.a
│ ├── cp880.la
│ ├── cp880.so
│ ├── cp891.a
│ ├── cp891.la
│ ├── cp891.so
│ ├── cp903.a
│ ├── cp903.la
│ ├── cp903.so
│ ├── cp904.a
│ ├── cp904.la
│ ├── cp904.so
│ ├── cp905.a
│ ├── cp905.la
│ ├── cp905.so
│ ├── cp918.a
│ ├── cp918.la
│ ├── cp918.so
│ ├── cp932.a
│ ├── cp932.la
│ ├── cp932.so
│ ├── cp936.a
│ ├── cp936.la
│ ├── cp936.so
│ ├── cp949.a
│ ├── cp949.la
│ ├── cp949.so
│ ├── cp950.a
│ ├── cp950.la
│ ├── cp950.so
│ ├── dec-mcs.a
│ ├── dec-mcs.la
│ ├── dec-mcs.so
│ ├── ebcdic-at-de-a.a
│ ├── ebcdic-at-de-a.la
│ ├── ebcdic-at-de-a.so
│ ├── ebcdic-at-de.a
│ ├── ebcdic-at-de.la
│ ├── ebcdic-at-de.so
│ ├── ebcdic-ca-fr.a
│ ├── ebcdic-ca-fr.la
│ ├── ebcdic-ca-fr.so
│ ├── ebcdic-dk-no-a.a
│ ├── ebcdic-dk-no-a.la
│ ├── ebcdic-dk-no-a.so
│ ├── ebcdic-dk-no.a
│ ├── ebcdic-dk-no.la
│ ├── ebcdic-dk-no.so
│ ├── ebcdic-es-a.a
│ ├── ebcdic-es-a.la
│ ├── ebcdic-es-a.so
│ ├── ebcdic-es-s.a
│ ├── ebcdic-es-s.la
│ ├── ebcdic-es-s.so
│ ├── ebcdic-es.a
│ ├── ebcdic-es.la
│ ├── ebcdic-es.so
│ ├── ebcdic-fi-se-a.a
│ ├── ebcdic-fi-se-a.la
│ ├── ebcdic-fi-se-a.so
│ ├── ebcdic-fi-se.a
│ ├── ebcdic-fi-se.la
│ ├── ebcdic-fi-se.so
│ ├── ebcdic-fr.a
│ ├── ebcdic-fr.la
│ ├── ebcdic-fr.so
│ ├── ebcdic-it.a
│ ├── ebcdic-it.la
│ ├── ebcdic-it.so
│ ├── ebcdic-pt.a
│ ├── ebcdic-pt.la
│ ├── ebcdic-pt.so
│ ├── ebcdic-uk.a
│ ├── ebcdic-uk.la
│ ├── ebcdic-uk.so
│ ├── ebcdic-us.a
│ ├── ebcdic-us.la
│ ├── ebcdic-us.so
│ ├── euc-jp.a
│ ├── euc-jp.la
│ ├── euc-jp.so
│ ├── euc-kr.a
│ ├── euc-kr.la
│ ├── euc-kr.so
│ ├── euc-tw.a
│ ├── euc-tw.la
│ ├── euc-tw.so
│ ├── gb12345.a
│ ├── gb12345.la
│ ├── gb12345.so
│ ├── gb2312.a
│ ├── gb2312.la
│ ├── gb2312.so
│ ├── gb_2312-80.a
│ ├── gb_2312-80.la
│ ├── gb_2312-80.so
│ ├── hp-roman8.a
│ ├── hp-roman8.la
│ ├── hp-roman8.so
│ ├── iso-10646-ucs-2.a
│ ├── iso-10646-ucs-2.la
│ ├── iso-10646-ucs-2.so
│ ├── iso-10646-ucs-4.a
│ ├── iso-10646-ucs-4.la
│ ├── iso-10646-ucs-4.so
│ ├── iso-2022-cn.a
│ ├── iso-2022-cn.la
│ ├── iso-2022-cn.so
│ ├── iso-2022-jp-2.a
│ ├── iso-2022-jp-2.la
│ ├── iso-2022-jp-2.so
│ ├── iso-2022-jp.a
│ ├── iso-2022-jp.la
│ ├── iso-2022-jp.so
│ ├── iso-2022-kr.a
│ ├── iso-2022-kr.la
│ ├── iso-2022-kr.so
│ ├── iso-8859-1.a
│ ├── iso-8859-1.la
│ ├── iso-8859-1.so
│ ├── iso-8859-10.a
│ ├── iso-8859-10.la
│ ├── iso-8859-10.so
│ ├── iso-8859-13.a
│ ├── iso-8859-13.la
│ ├── iso-8859-13.so
│ ├── iso-8859-14.a
│ ├── iso-8859-14.la
│ ├── iso-8859-14.so
│ ├── iso-8859-15.a
│ ├── iso-8859-15.la
│ ├── iso-8859-15.so
│ ├── iso-8859-2.a
│ ├── iso-8859-2.la
│ ├── iso-8859-2.so
│ ├── iso-8859-3.a
│ ├── iso-8859-3.la
│ ├── iso-8859-3.so
│ ├── iso-8859-4.a
│ ├── iso-8859-4.la
│ ├── iso-8859-4.so
│ ├── iso-8859-5.a
│ ├── iso-8859-5.la
│ ├── iso-8859-5.so
│ ├── iso-8859-6.a
│ ├── iso-8859-6.la
│ ├── iso-8859-6.so
│ ├── iso-8859-7.a
│ ├── iso-8859-7.la
│ ├── iso-8859-7.so
│ ├── iso-8859-8.a
│ ├── iso-8859-8.la
│ ├── iso-8859-8.so
│ ├── iso-8859-9.a
│ ├── iso-8859-9.la
│ ├── iso-8859-9.so
│ ├── iso-ir-10.a
│ ├── iso-ir-10.la
│ ├── iso-ir-10.so
│ ├── iso-ir-102.a
│ ├── iso-ir-102.la
│ ├── iso-ir-102.so
│ ├── iso-ir-103.a
│ ├── iso-ir-103.la
│ ├── iso-ir-103.so
│ ├── iso-ir-11.a
│ ├── iso-ir-11.la
│ ├── iso-ir-11.so
│ ├── iso-ir-111.a
│ ├── iso-ir-111.la
│ ├── iso-ir-111.so
│ ├── iso-ir-121.a
│ ├── iso-ir-121.la
│ ├── iso-ir-121.so
│ ├── iso-ir-122.a
│ ├── iso-ir-122.la
│ ├── iso-ir-122.so
│ ├── iso-ir-123.a
│ ├── iso-ir-123.la
│ ├── iso-ir-123.so
│ ├── iso-ir-128.a
│ ├── iso-ir-128.la
│ ├── iso-ir-128.so
│ ├── iso-ir-13.a
│ ├── iso-ir-13.la
│ ├── iso-ir-13.so
│ ├── iso-ir-139.a
│ ├── iso-ir-139.la
│ ├── iso-ir-139.so
│ ├── iso-ir-14.a
│ ├── iso-ir-14.la
│ ├── iso-ir-14.so
│ ├── iso-ir-141.a
│ ├── iso-ir-141.la
│ ├── iso-ir-141.so
│ ├── iso-ir-142.a
│ ├── iso-ir-142.la
│ ├── iso-ir-142.so
│ ├── iso-ir-143.a
│ ├── iso-ir-143.la
│ ├── iso-ir-143.so
│ ├── iso-ir-146.a
│ ├── iso-ir-146.la
│ ├── iso-ir-146.so
│ ├── iso-ir-147.a
│ ├── iso-ir-147.la
│ ├── iso-ir-147.so
│ ├── iso-ir-15.a
│ ├── iso-ir-15.la
│ ├── iso-ir-15.so
│ ├── iso-ir-150.a
│ ├── iso-ir-150.la
│ ├── iso-ir-150.so
│ ├── iso-ir-151.a
│ ├── iso-ir-151.la
│ ├── iso-ir-151.so
│ ├── iso-ir-152.a
│ ├── iso-ir-152.la
│ ├── iso-ir-152.so
│ ├── iso-ir-153.a
│ ├── iso-ir-153.la
│ ├── iso-ir-153.so
│ ├── iso-ir-154.a
│ ├── iso-ir-154.la
│ ├── iso-ir-154.so
│ ├── iso-ir-155.a
│ ├── iso-ir-155.la
│ ├── iso-ir-155.so
│ ├── iso-ir-158.a
│ ├── iso-ir-158.la
│ ├── iso-ir-158.so
│ ├── iso-ir-16.a
│ ├── iso-ir-16.la
│ ├── iso-ir-16.so
│ ├── iso-ir-17.a
│ ├── iso-ir-17.la
│ ├── iso-ir-17.so
│ ├── iso-ir-18.a
│ ├── iso-ir-18.la
│ ├── iso-ir-18.so
│ ├── iso-ir-19.a
│ ├── iso-ir-19.la
│ ├── iso-ir-19.so
│ ├── iso-ir-2.a
│ ├── iso-ir-2.la
│ ├── iso-ir-2.so
│ ├── iso-ir-21.a
│ ├── iso-ir-21.la
│ ├── iso-ir-21.so
│ ├── iso-ir-25.a
│ ├── iso-ir-25.la
│ ├── iso-ir-25.so
│ ├── iso-ir-27.a
│ ├── iso-ir-27.la
│ ├── iso-ir-27.so
│ ├── iso-ir-37.a
│ ├── iso-ir-37.la
│ ├── iso-ir-37.so
│ ├── iso-ir-4.a
│ ├── iso-ir-4.la
│ ├── iso-ir-4.so
│ ├── iso-ir-47.a
│ ├── iso-ir-47.la
│ ├── iso-ir-47.so
│ ├── iso-ir-49.a
│ ├── iso-ir-49.la
│ ├── iso-ir-49.so
│ ├── iso-ir-50.a
│ ├── iso-ir-50.la
│ ├── iso-ir-50.so
│ ├── iso-ir-51.a
│ ├── iso-ir-51.la
│ ├── iso-ir-51.so
│ ├── iso-ir-54.a
│ ├── iso-ir-54.la
│ ├── iso-ir-54.so
│ ├── iso-ir-55.a
│ ├── iso-ir-55.la
│ ├── iso-ir-55.so
│ ├── iso-ir-57.a
│ ├── iso-ir-57.la
│ ├── iso-ir-57.so
│ ├── iso-ir-60.a
│ ├── iso-ir-60.la
│ ├── iso-ir-60.so
│ ├── iso-ir-61.a
│ ├── iso-ir-61.la
│ ├── iso-ir-61.so
│ ├── iso-ir-69.a
│ ├── iso-ir-69.la
│ ├── iso-ir-69.so
│ ├── iso-ir-70.a
│ ├── iso-ir-70.la
│ ├── iso-ir-70.so
│ ├── iso-ir-8-1.a
│ ├── iso-ir-8-1.la
│ ├── iso-ir-8-1.so
│ ├── iso-ir-8-2.a
│ ├── iso-ir-8-2.la
│ ├── iso-ir-8-2.so
│ ├── iso-ir-84.a
│ ├── iso-ir-84.la
│ ├── iso-ir-84.so
│ ├── iso-ir-85.a
│ ├── iso-ir-85.la
│ ├── iso-ir-85.so
│ ├── iso-ir-86.a
│ ├── iso-ir-86.la
│ ├── iso-ir-86.so
│ ├── iso-ir-88.a
│ ├── iso-ir-88.la
│ ├── iso-ir-88.so
│ ├── iso-ir-89.a
│ ├── iso-ir-89.la
│ ├── iso-ir-89.so
│ ├── iso-ir-9-1.a
│ ├── iso-ir-9-1.la
│ ├── iso-ir-9-1.so
│ ├── iso-ir-9-2.a
│ ├── iso-ir-9-2.la
│ ├── iso-ir-9-2.so
│ ├── iso-ir-90.a
│ ├── iso-ir-90.la
│ ├── iso-ir-90.so
│ ├── iso-ir-91.a
│ ├── iso-ir-91.la
│ ├── iso-ir-91.so
│ ├── iso-ir-92.a
│ ├── iso-ir-92.la
│ ├── iso-ir-92.so
│ ├── iso-ir-93.a
│ ├── iso-ir-93.la
│ ├── iso-ir-93.so
│ ├── iso-ir-94.a
│ ├── iso-ir-94.la
│ ├── iso-ir-94.so
│ ├── iso-ir-95.a
│ ├── iso-ir-95.la
│ ├── iso-ir-95.so
│ ├── iso-ir-96.a
│ ├── iso-ir-96.la
│ ├── iso-ir-96.so
│ ├── iso-ir-98.a
│ ├── iso-ir-98.la
│ ├── iso-ir-98.so
│ ├── iso-ir-99.a
│ ├── iso-ir-99.la
│ ├── iso-ir-99.so
│ ├── iso646-dk.a
│ ├── iso646-dk.la
│ ├── iso646-dk.so
│ ├── iso646-kr.a
│ ├── iso646-kr.la
│ ├── iso646-kr.so
│ ├── jis_x0201.a
│ ├── jis_x0201.la
│ ├── jis_x0201.so
│ ├── jis_x0208-1983.a
│ ├── jis_x0208-1983.la
│ ├── jis_x0208-1983.so
│ ├── jis_x0212-1990.a
│ ├── jis_x0212-1990.la
│ ├── jis_x0212-1990.so
│ ├── johab.a
│ ├── johab.la
│ ├── johab.so
│ ├── koi8-r.a
│ ├── koi8-r.la
│ ├── koi8-r.so
│ ├── koi8-ru.a
│ ├── koi8-ru.la
│ ├── koi8-ru.so
│ ├── koi8-u.a
│ ├── koi8-u.la
│ ├── koi8-u.so
│ ├── ksx1001.a
│ ├── ksx1001.la
│ ├── ksx1001.so
│ ├── mac-ce.a
│ ├── mac-ce.la
│ ├── mac-ce.so
│ ├── mac-croatian.a
│ ├── mac-croatian.la
│ ├── mac-croatian.so
│ ├── mac-cyrillic.a
│ ├── mac-cyrillic.la
│ ├── mac-cyrillic.so
│ ├── mac-dingbats.a
│ ├── mac-dingbats.la
│ ├── mac-dingbats.so
│ ├── mac-greek.a
│ ├── mac-greek.la
│ ├── mac-greek.so
│ ├── mac-iceland.a
│ ├── mac-iceland.la
│ ├── mac-iceland.so
│ ├── mac-japan.a
│ ├── mac-japan.la
│ ├── mac-japan.so
│ ├── mac-roman.a
│ ├── mac-roman.la
│ ├── mac-roman.so
│ ├── mac-romania.a
│ ├── mac-romania.la
│ ├── mac-romania.so
│ ├── mac-thai.a
│ ├── mac-thai.la
│ ├── mac-thai.so
│ ├── mac-turkish.a
│ ├── mac-turkish.la
│ ├── mac-turkish.so
│ ├── mac-ukraine.a
│ ├── mac-ukraine.la
│ ├── mac-ukraine.so
│ ├── macintosh.a
│ ├── macintosh.la
│ ├── macintosh.so
│ ├── osd_ebcdic_df04_1.a
│ ├── osd_ebcdic_df04_1.la
│ ├── osd_ebcdic_df04_1.so
│ ├── osd_ebcdic_df04_15.a
│ ├── osd_ebcdic_df04_15.la
│ ├── osd_ebcdic_df04_15.so
│ ├── shift_jis.a
│ ├── shift_jis.la
│ ├── shift_jis.so
│ ├── ucs2-internal.a
│ ├── ucs2-internal.la
│ ├── ucs2-internal.so
│ ├── ucs4-internal.a
│ ├── ucs4-internal.la
│ ├── ucs4-internal.so
│ ├── unicode-1-1-utf-7.a
│ ├── unicode-1-1-utf-7.la
│ ├── unicode-1-1-utf-7.so
│ ├── us-ascii.a
│ ├── us-ascii.la
│ ├── us-ascii.so
│ ├── utf-16.a
│ ├── utf-16.la
│ ├── utf-16.so
│ ├── utf-8.a
│ ├── utf-8.la
│ ├── utf-8.so
│ ├── windows-1250.a
│ ├── windows-1250.la
│ ├── windows-1250.so
│ ├── windows-1251.a
│ ├── windows-1251.la
│ ├── windows-1251.so
│ ├── windows-1252.a
│ ├── windows-1252.la
│ ├── windows-1252.so
│ ├── windows-1253.a
│ ├── windows-1253.la
│ ├── windows-1253.so
│ ├── windows-1254.a
│ ├── windows-1254.la
│ ├── windows-1254.so
│ ├── windows-1255.a
│ ├── windows-1255.la
│ ├── windows-1255.so
│ ├── windows-1256.a
│ ├── windows-1256.la
│ ├── windows-1256.so
│ ├── windows-1257.a
│ ├── windows-1257.la
│ ├── windows-1257.so
│ ├── windows-1258.a
│ ├── windows-1258.la
│ └── windows-1258.so
├── libapr-1.a
├── libapr-1.la
├── libapr-1.so -> libapr-1.so.0.7.0
├── libapr-1.so.0 -> libapr-1.so.0.7.0
├── libapr-1.so.0.7.0
├── libapriconv-1.a
├── libapriconv-1.la
├── libapriconv-1.so -> libapriconv-1.so.0.2.2
├── libapriconv-1.so.0 -> libapriconv-1.so.0.2.2
├── libapriconv-1.so.0.2.2
├── libaprutil-1.a
├── libaprutil-1.la
├── libaprutil-1.so -> libaprutil-1.so.0.6.1
├── libaprutil-1.so.0 -> libaprutil-1.so.0.6.1
├── libaprutil-1.so.0.6.1
├── libtcnative-1.a
├── libtcnative-1.la
├── libtcnative-1.so -> libtcnative-1.so.0.2.25
├── libtcnative-1.so.0 -> libtcnative-1.so.0.2.25
├── libtcnative-1.so.0.2.25
└── pkgconfig
├── apr-1.pc
└── apr-util-1.pc
7 directories, 746 files
cat /usr/local/apr/lib/pkgconfig/apr-1.pc
prefix=/usr/local/apr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
APR_MAJOR_VERSION=1
includedir=${prefix}/include/apr-${APR_MAJOR_VERSION}
Name: APR
Description: The Apache Portable Runtime library
Version: 1.7.0
Libs: -L${libdir} -lapr-${APR_MAJOR_VERSION} -lrt -lcrypt -lpthread -ldl
Cflags: -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I${includedir}
cat /usr/local/apr/lib/pkgconfig/apr-util-1.pc
prefix=/usr/local/apr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
APRUTIL_MAJOR_VERSION=1
includedir=${prefix}/include/apr-${APRUTIL_MAJOR_VERSION}
Name: APR Utils
Description: Companion library for APR
Version: 1.6.1
# assume that apr-util requires libapr of same major version
Requires: apr-1
Libs: -L${libdir} -laprutil-${APRUTIL_MAJOR_VERSION} /opt/src/apr-util/../apr-iconv/lib/libapriconv.la -lexpat
Cflags: -I${includedir}
run-tomcat-with-apr
vi $CATALINA_HOME/bin/setenv.sh
#LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_LIBRARY_PATH
sed -i 's@Connector port="8080" protocol="HTTP/1.1"@Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"@g' ../conf/server.xml
root@176698a3cb22:/usr/local/tomcat/bin# ./catalina.sh run
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
03-Jan-2021 07:15:50.136 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/8.5.61
03-Jan-2021 07:15:50.137 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 3 2020 14:03:28 UTC
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.61.0
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.19.95
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/java/jre
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_201-b09
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
03-Jan-2021 07:15:50.138 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
03-Jan-2021 07:15:50.139 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
03-Jan-2021 07:15:50.139 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.25] using APR version [1.7.0].
03-Jan-2021 07:15:50.139 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
03-Jan-2021 07:15:50.139 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
03-Jan-2021 07:15:50.148 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1i 21 Apr 2020]
03-Jan-2021 07:15:50.228 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]
03-Jan-2021 07:15:50.240 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 347 ms
03-Jan-2021 07:15:50.255 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
03-Jan-2021 07:15:50.255 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.61
03-Jan-2021 07:15:50.270 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
03-Jan-2021 07:15:50.418 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [148] ms
03-Jan-2021 07:15:50.418 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
03-Jan-2021 07:15:50.428 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [10] ms
03-Jan-2021 07:15:50.428 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
03-Jan-2021 07:15:50.538 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [110] ms
03-Jan-2021 07:15:50.538 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
03-Jan-2021 07:15:50.551 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [13] ms
03-Jan-2021 07:15:50.551 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
03-Jan-2021 07:15:50.568 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [17] ms
03-Jan-2021 07:15:50.571 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
03-Jan-2021 07:15:50.578 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 337 ms
run-springboot-with-apr
code
package com.example.demo.config;
import org.apache.catalina.LifecycleListener;
import org.apache.catalina.core.AprLifecycleListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class APRConfig {
@Value("${server.tomcat.apr:false}")
private boolean enabled;
// @Bean
// public EmbeddedServletContainerFactory servletContainer() {
// TomcatEmbeddedServletContainerFactory container = new TomcatEmbeddedServletContainerFactory();
// if (enabled) {
// LifecycleListener arpLifecycle = new AprLifecycleListener();
// container.setProtocol("org.apache.coyote.http11.Http11AprProtocol");
// container.addContextLifecycleListeners(arpLifecycle);
// }
//
// return container;
// }
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
if (enabled) {
LifecycleListener arpLifecycle = new AprLifecycleListener();
tomcat.setProtocol("org.apache.coyote.http11.Http11AprProtocol");
tomcat.addContextLifecycleListeners(arpLifecycle);
//tomcat.addConnectorCustomizers(new GwsTomcatConnectionCustomizer());
}
return tomcat;
}
}
开启apr的启动日志
root@8dcf0e99b4b8:/# java -Dserver.tomcat.apr=true -Djava.library.path=/usr/local/apr/lib -jar /opt/demo-0.0.1.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.6.RELEASE)
[08:58:36:123] [INFO] - org.springframework.boot.StartupInfoLogger.logStarting(StartupInfoLogger.java:55) - Starting DemofmApplication v0.0.1 on 8dcf0e99b4b8 with PID 13282 (/opt/demo-0.0.1.jar started by root in /)
[08:58:36:129] [INFO] - org.springframework.boot.SpringApplication.logStartupProfileInfo(SpringApplication.java:651) - No active profile set, falling back to default profiles: default
[08:58:36:975] [INFO] - com.example.demo.config.APRConfig.servletContainer(APRConfig.java:34) - true
[08:58:37:139] [INFO] - org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:108) - Tomcat initialized with port(s): 8888 (http)
[08:58:37:148] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Initializing ProtocolHandler ["http-apr-8888"]
[08:58:37:148] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Starting service [Tomcat]
[08:58:37:148] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Starting Servlet engine: [Apache Tomcat/9.0.39]
[08:58:37:149] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Loaded Apache Tomcat Native library [1.2.25] using APR version [1.7.0].
[08:58:37:150] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
[08:58:37:150] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
[08:58:37:152] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - OpenSSL successfully initialized [OpenSSL 1.1.1i 8 Dec 2020]
[08:58:37:203] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Initializing Spring embedded WebApplicationContext
[08:58:37:203] [INFO] - org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.prepareWebApplicationContext(ServletWebServerApplicationContext.java:285) - Root WebApplicationContext: initialization completed in 1009 ms
[08:58:37:559] [INFO] - org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.initialize(ExecutorConfigurationSupport.java:181) - Initializing ExecutorService 'applicationTaskExecutor'
[08:58:37:633] [INFO] - org.springframework.boot.autoconfigure.web.servlet.WelcomePageHandlerMapping.<init>(WelcomePageHandlerMapping.java:58) - Adding welcome page template: index
[08:58:37:875] [INFO] - org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver.<init>(EndpointLinksResolver.java:58) - Exposing 14 endpoint(s) beneath base path '/actuator'
[08:58:37:896] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Starting ProtocolHandler ["http-apr-8888"]
[08:58:37:971] [INFO] - org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:220) - Tomcat started on port(s): 8888 (http) with context path ''
[08:58:37:983] [INFO] - org.springframework.boot.StartupInfoLogger.logStarted(StartupInfoLogger.java:61) - Started DemofmApplication in 2.107 seconds (JVM running for 2.79)
未开启apr的启动日志
root@8dcf0e99b4b8:/# java -Dserver.tomcat.apr=false -Djava.library.path=/usr/local/apr/lib -jar /opt/demo-0.0.1.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.6.RELEASE)
[12:52:00:054] [INFO] - org.springframework.boot.StartupInfoLogger.logStarting(StartupInfoLogger.java:55) - Starting DemofmApplication v0.0.1 on 8dcf0e99b4b8 with PID 13358 (/opt/demo-0.0.1.jar started by root in /)
[12:52:00:064] [INFO] - org.springframework.boot.SpringApplication.logStartupProfileInfo(SpringApplication.java:651) - No active profile set, falling back to default profiles: default
[12:52:01:002] [INFO] - com.example.demo.config.APRConfig.servletContainer(APRConfig.java:34) - false
[12:52:01:176] [INFO] - org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:108) - Tomcat initialized with port(s): 8888 (http)
[12:52:01:185] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Initializing ProtocolHandler ["http-nio-8888"]
[12:52:01:185] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Starting service [Tomcat]
[12:52:01:185] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Starting Servlet engine: [Apache Tomcat/9.0.39]
[12:52:01:187] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Loaded Apache Tomcat Native library [1.2.25] using APR version [1.7.0].
[12:52:01:187] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
[12:52:01:187] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
[12:52:01:190] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - OpenSSL successfully initialized [OpenSSL 1.1.1i 8 Dec 2020]
[12:52:01:247] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Initializing Spring embedded WebApplicationContext
[12:52:01:247] [INFO] - org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.prepareWebApplicationContext(ServletWebServerApplicationContext.java:285) - Root WebApplicationContext: initialization completed in 1106 ms
[12:52:01:622] [INFO] - org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.initialize(ExecutorConfigurationSupport.java:181) - Initializing ExecutorService 'applicationTaskExecutor'
[12:52:01:693] [INFO] - org.springframework.boot.autoconfigure.web.servlet.WelcomePageHandlerMapping.<init>(WelcomePageHandlerMapping.java:58) - Adding welcome page template: index
[12:52:01:934] [INFO] - org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver.<init>(EndpointLinksResolver.java:58) - Exposing 14 endpoint(s) beneath base path '/actuator'
[12:52:01:957] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Starting ProtocolHandler ["http-nio-8888"]
[12:52:02:034] [INFO] - org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:220) - Tomcat started on port(s): 8888 (http) with context path ''
[12:52:02:049] [INFO] - org.springframework.boot.StartupInfoLogger.logStarted(StartupInfoLogger.java:61) - Started DemofmApplication in 2.283 seconds (JVM running for 3.451)
others
checking OpenSSL library version >= 1.0.2... configure: error: Your version of OpenSSL is not compatible with this version of tcnative
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/x86_64-linux-gnu/perl5/5.28 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Current default time zone: 'Etc/UTC'
Local time is now: Sun Jan 3 05:50:52 UTC 2021.
Universal Time is now: Sun Jan 3 05:50:52 UTC 2021.
Run 'dpkg-reconfigure tzdata' if you wish to change it.
03-Jan-2021 08:09:03.491 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [:/usr/local/tomcat/lib:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
03-Jan-2021 08:09:03.626 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[org.apache.coyote.http11.Http11AprProtocol-8080]]
org.apache.catalina.LifecycleException: The configured protocol [org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library which is not available
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1060)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:848)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
ref
- http://tomcat.apache.org/native-doc/
- http://tomcat.apache.org/tomcat-7.0-doc/apr.html
- http://tomcat.apache.org/tomcat-8.0-doc/apr.html
- http://tomcat.apache.org/tomcat-9.0-doc/apr.html
- https://wiloon.com/p14422/
- https://www.gmlyo.com/2018/06/05/Tomcat-APR%E5%AE%89%E8%A3%85/
- https://www.gmlyo.com/2019/01/02/SpringBoot%E4%BD%BF%E7%94%A8TomcatAPR%E6%A8%A1%E5%BC%8F/
- https://www.huaweicloud.com/kunpeng/software/apr.html
- https://www.huaweicloud.com/kunpeng/software/apr_util.html
- https://jmchung.github.io/post/centos-installing-apache-portable-runtime-apr-for-tomcat/
上次更新 2021-01-03
原始文档 查看本文 Markdown 版本 »