Tomcat
編譯tomcat連接器時沒有生成mod_jk.so
當我嘗試從原始碼編譯 tomcat 連接器時,一切看起來都很好,除了沒有創建 mod_jk.so 文件。
軟體版本:RHEL6 x86_64
httpd-2.4.3
tomcat-connector 1.2.37
命令:
在製作過程中唯一的警告資訊是: 警告!在 /usr/local/tomcat-connectors-1.2.37-src/native/apache-2.0/mod_jk.la 中找不到 dlname。`cd native
./configure –with-apxs=/usr/local/apache2/bin/apxs
make
cd apache-2.0
ls`
有人對如何生成 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-apr 選項而不是 –with-included-apr :
./configure ... --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
在 Apache 配置過程中,我也一直在使用一個奇怪的配置選項:
--with-apxs2=...
應該是:
--with-apxs=...
在理順所有這些事情並重新編譯 apache 之後,我再次嘗試使用 tomcat 連接器建構。然後正確生成了 mod_jk.so 文件。