web-dev-qa-db-ja.com

Tomcatコネクタのコンパイル時にmod_jk.soは生成されません

ソースからTomcatコネクタをコンパイルしようとすると、mod_jk.soファイルが作成されないことを除いて、すべてが正常に表示されます。

ソフトウェアバージョン:RHEL6 x86_64
httpd-2.4.3
Tomcat-コネクタ1.2.37

コマンド:
cd native
./configure --with-apxs=/usr/local/Apache2/bin/apxs
make
cd Apache-2.0
ls
作成中の唯一の警告メッセージは次のとおりです。
警告! dlnameが/usr/local/Tomcat-connectors-1.2.37-src/native/Apache-2.0/mod_jk.laに見つかりません。

Mod_jk.soファイルを生成する方法について誰か提案がありますか?

2
user1171848

私は最終的にこれを機能させました。 Tomcatコネクタよりも大きな問題があったことがわかりました。

まず、64ビットLinuxでApacheをコンパイルするために必要なことがいくつかあります。次のようなビルドエラーが発生していました。

relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC 

これを修正するには、OpenSSLに特別な構成オプションが必要でした。

./configure -fPIC

そこで、OpenSSLを再コンパイルしました。これにより、Apacheがsslモジュールを正しくコンパイルできるようになりました。次に、Apache make install中に別のエラーが発生しました。

libtool: install: error: relink `libaprutil-1.la' with the above command before installing it

これを修正するために、APRクラスはコンパイル中に特別な構成オプションを必要としました。

CC="gcc -m64" ./configure --prefix=/usr/local/apr
CC="gcc -m64" ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

これらを個別にコンパイルすると、Apacheビルドで--with-included-aprの代わりに--with-aprオプションを使用する必要がありました。

./configure ... --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

また、Apacheの構成中に奇妙な構成オプションを使用していました。

--with-apxs2=...

すべきだった:

--with-apxs=...

これらすべてをまっすぐにしてApacheを再コンパイルした後、Tomcatコネクタビルドで再試行しました。その後、mod_jk.soファイルが正しく生成されました。

0
user1171848

システム情報

# uname -r
2.6.32-358.14.1.el6.x86_64

# cat /etc/redhat-release
CentOS release 6.4 (Final)

# rpm -qa | grep httpd
httpd-devel-2.2.15-28.el6.centos.x86_64
httpd-2.2.15-28.el6.centos.x86_64
httpd-tools-2.2.15-28.el6.centos.x86_64

ソースのみのモジュールから自分でビルドすることをお勧めします

# cd /root/
# wget http://archive.Apache.org/dist/Tomcat/tomcat-connectors/jk/Tomcat-connectors-1.2.37-src.tar.gz

# tar -xzf Tomcat-connectors-1.2.37-src.tar.gz
# cd Tomcat-connectors-1.2.37-src/native/
# ./configure --prefix=/opt/ --with-apxs=/usr/sbin/apxs
# make
# file Apache-2.0/mod_jk.so
Apache-2.0/mod_jk.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

# cp Apache-2.0/mod_jk.so /usr/lib64/httpd/modules/
# echo "LoadModule jk_module modules/mod_jk.so" > /etc/httpd/conf.d/mod_jk.conf

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

# apachectl -t -D DUMP_MODULES | grep jk
Syntax OK
 jk_module (shared)

したがって、ソースからApache/openssl/apr/apr-utilをインストールする必要はありません。あなたがパッケージをアップグレードしたいなら-それは地獄でしょう

0
ALex_hha