64位Linux系统下Not able to load mod_wl_20.so问题解决办法总结
来源:互联网 发布:怪物猎人3g多玩数据库 编辑:程序博客网 时间:2024/06/06 18:20
今天在做一个环境迁移的时候,遇到了weblogic的Not able to load mod_wl_20.so问题,解决后,总结一下,是以为记。
通常做apache和WebLogic集成时碰到最多的问题是Not able to load mod_wl_20.so,如:
$${PREFIX}/httpd -t
Syntax error on line 1083 of /home/test/apache2/conf/httpd.conf:
Cannot load /home/test/apache2/modules/mod_wl_20.so into server: /home/test/apache2/modules/mod_wl_20.so: cannot open shared object file: No such file or directory
总结该问题,可能的原因有如下几种:
1、apache编译安装时未指定动态加载DSO模块,故无法动态加载mod_wl_20.so模块
解决办法:编译安装时指定即可,如--enable-shared=max --enable-module=rewrite --enable-module=so
2、mod_wl_20.so文件不存在于${PREFIX}/modules下
解决办法:从对应的WebLogic服务所在机器上找到对应操作系统和位数的mod_wl_20.so至${PREFIX}/modules下
3、mod_wl_20.so有问题,如mod_wl_20.so文件与apache所在机器系统、位数不一致
以上2种可能比较不容易犯,因此最常见的原因是这种可能。
本例中以apache2.0.59+redhatAS4_X86_64集成WebLogic815为例说明
WebLogic815下的mod_wl_20.so对应的Linux下的so如下:
weblogic81/server/lib/linux/i686/mod_wl_20.so
weblogic81/server/lib/linux/s390/mod_wl_20.so
weblogic81/server/lib/linux/ia64/mod_wl_20.so
查看对应的ia64下的mod_wl_20.so如下:
$file weblogic81/server/lib/linux/ia64/mod_wl_20.so
weblogic81/server/lib/linux/ia64/mod_wl_20.so: ELF 64-bit LSB shared object, IA-64, version 1 (SYSV), not stripped
注意“IA-64”就是“64位的英特尔架构” 的CPU, IA-64微处理器最大的缺陷是它们缺乏与x86的兼容,所以他是不能用于x86_64的服务器上的。
也就是说,在类似如下的机器中:
$uname -a
Linux localhost.localdomain 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:32:02 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
是用不了64位的mod_wl_20.so的。因此,解决的方法之一是,使用32位的apache加载32位的mod_wl_20.so(网上未找到WebLogic815版本x86_64下的mod_wl_20.so)
解决办法:使用32位的apache加载32位的mod_wl_20.so
使用以上方法测试通过的各环境说明如下:
1、apache所在机器系统:
$ uname -a
Linux localhost.localdomain 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:32:02 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
2、httpd:
$file ./httpd
./httpd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
3、httpd库依赖
$ ldd ./httpd
linux-gate.so.1 => (0xffffe000)
libexpat.so.0 => /usr/lib/libexpat.so.0 (0x00d03000)
librt.so.1 => /lib/tls/librt.so.1 (0xf7fb9000)
libm.so.6 => /lib/tls/libm.so.6 (0x00a70000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0xf7f8b000)
libnsl.so.1 => /lib/libnsl.so.1 (0xf7f75000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00aa5000)
libdl.so.2 => /lib/libdl.so.2 (0x00a95000)
libc.so.6 => /lib/tls/libc.so.6 (0x00943000)
/lib/ld-linux.so.2 (0x0092a000)
4、mod_wl_20.so位数:
weblogic81/server/lib/linux/i686/mod_wl_20.so
$ file mod_wl_20.so
mod_wl_20.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
5、mod_wl_20.so库依赖
$ ldd mod_wl_20.so
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/tls/libc.so.6 (0xf7dec000)
/lib/ld-linux.so.2 (0x56555000)
PS:
google上找了一下没有找到weblogic815下的x86_64的mod_wl_20.so。猜测原因是:
1999年,英特尔推出IA-64架构的第一颗处理器;
检查weblogic81/common/help/doc/en/cfgwizhelp/intro.html发现日期:
<meta name="LASTUPDATED" content="08/29/05 12:08:55" />
因此估计是815发布时x86_64架构的CPU还没有问世的缘故。
看到一个帖子中是这样说的:
****************************帖子说开始****************************************************
目前的weblogic8或9下的,只有支持apahce2.0.x的。所以liunx自带的apahce2.2.x不能用。要重装
apahce2.0.x
mod_wl_20.so分为两种,一种是64位和32位。
32位可以在wbelogic下的/weblogic81/server/lib/linux/i686/mod_wl_20.so下边找到。
也存在32位
只可以从weblogic920下的weblogic92/server/plugin/linux/x86_64/mod_wl_20.so
weblogic安装的时间一定要选上plugin插件:才会有mod_wl_20.so这模块
64位,只能从weblogic920下的weblogic92/server/plugin/linux/x86_64/mod_wl_20.so
注意,目前weblogic8或9只支持apahce 2.0.X ,这个mod_wl_20.so不管是weblogic8还weblogic9都
可以通用。
已验证,apahce2.0.X可以跟webloigc8或9结合,是32位或64位都可以。
****************************帖子说结束****************************************************
由于本地测试环境只有weblogic815和weblogic10.3,都没有找到x86_64的mod_wl_20.so,故以上帖子的说法未验证。
- 64位Linux系统下Not able to load mod_wl_20.so问题解决办法总结
- linux 64位系统下so编译
- Linux64位系统下WTK无法启动的问题解决办法
- Failed to load libGL.so问题解决
- Not able to reset SmartRF04DD
- Linux下修改配置文件导致系统无法启动问题解决办法
- 微信小程序Failed to load resource: net::ERR_NAME_NOT_RESOLVED问题解决办法
- "Failed to load session “ubuntu"问题解决总结
- "Failed to load session “ubuntu"问题解决总结
- Flash Builder 4.7 64位系统下安装svn 1.6插件:Unabled to load SVN client的解决方法
- 64位系统下报libstdc++.so.6 GLIBCXX 错误
- Kernel panic - not syncing: Attempted to kill init!问题解决办法
- Linux下编译Android zbar,包含64位so文件
- Vmvare下Linux上网问题解决办法
- 在windows7 64位系统下面使用platform builder6.0问题解决办法
- win7/win8 64位系统注册TeeChart8.ocx 控件---以及dllregisterserver调用失败问题解决办法
- 64位Windows7系统中Svchost占用内存跟CPU过高的问题解决办法
- Windows2003下64位系统安装遇到的问题解决方法
- 一英寸和一英尺倒底是多长?
- 先从Karrigell学起
- ctex中eps文件和表格的制作
- 欢迎访问我的第一个GAE应用
- POJ 3020 Antenna Placement(最大二分匹配)
- 64位Linux系统下Not able to load mod_wl_20.so问题解决办法总结
- 44B0
- struts2.0.14何时创建的action实例?
- pku1002
- 一切皆可再来过
- strreplace ,strpos
- my pictures
- 编程题
- Fedora12 wine使用