ソースから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ファイルを生成する方法について誰か提案がありますか?
私は最終的にこれを機能させました。 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ファイルが正しく生成されました。
システム情報
# 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をインストールする必要はありません。あなたがパッケージをアップグレードしたいなら-それは地獄でしょう