64位Linux系统下Not able to load mod_wl_20.so问题解决办法总结

本文介绍了在64位Linux系统中遇到Apache无法加载mod_wl_20.so模块的问题,分析了可能的原因,并提供了解决方案,包括检查Apache编译选项、模块是否存在、系统与文件位数匹配等,特别指出在x86_64系统上可能需要使用32位Apache和mod_wl_20.so。

今天在做一个环境迁移的时候,遇到了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,故以上帖子的说法未验证。

make: Circular mod_prec.o <- mod_prec.o dependency dropped. gfortran -O3 -ffixed-line-length-none -ffree-line-length-0 -fallow-argument-mismatch func_pointer.o mod_prec.o sinter.o mod_types.o mod_time.o mod_main.o mod_spherical.o mod_utils.o mod_clock.o eqs_of_state.o mod_interp.o mod_par.o mod_par_special.o mod_ncll.o mod_nctools.o mod_wd.o mod_sng.o mod_heatflux.o mod_solar.o mod_bulk.o mod_input.o mod_force.o mod_obcs.o mod_petsc.o mod_semi_implicit.o mod_non_hydro.o mod_set_time.o ice_kinds_mod.o ice_model_size.o ice_domain.o ice_constants.o ice_fileunits.o ice_state.o ice_work.o ice_grid.o ice_albedo.o ice_calendar.o ice_flux.o ice_flux_in.o ice_itd.o ice_mechred.o ice_itd_linear.o ice_scaling.o ice_atmo.o ice_ocean.o ice_therm_vertical.o ice_init.o ice_therm_itd.o mod_ice2d.o mod_ice.o mod_startup.o mod_wqm.o mod_ncdio.o mod_setup.o mod_newinp.o particle.o linklist.o mod_lag.o mod_northpole.o mod_pwp.o mod_dye.o mod_optimal_interpolation.o mod_report.o mod_probe.o mod_gotm.o mod_balance_2d.o mod_tridiag.o mod_scal.o mod_meanflow.o mod_obcs2.o mod_obcs3.o mod_sed.o mod_enkf.o mod_etkf.o mod_rrk.o mod_rrkf_obs.o mod_rrkassim.o mod_enkf_ncd.o enkf_ncdio.o mod_enkf_obs.o mod_enkfassim.o mod_assim.o mod_nesting.o mod_visit.o mod_plbc.o mod_dam.o mod_station_timeseries.o mod_sparse_timeseries.o mod_boundschk.o mod_esmf_nesting.o mod_cstms_vars.o mod_flocmod.o mod_sed_cstms.o mod_fluid_mud.o mod_tvd.o mod_mld_rho.o mod_vegetation.o mod_heatflux_sediment.o mod_vector_projection.o mod_main_wave.o swmod1.o swmod2.o swmod3.o mod_action_im.o mod_action_ex.o mod_wavesetup.o mod_wave_current_interaction.o mod_bbl.o fvcom.o genmap.o tge.o longshore_flow.o cell_area.o open_all.o load_grid.o allocate_all.o setup_domain.o genmap_obc.o genmap_lsf.o print_vals.o coords_n_const.o shape_coef_gcn.o shape_coef_gcy.o depth_grad.o grid_metrics.o cntrl_prmtrs.o init_sed.o internal_step.o bcond_gcn.o bcond_gcy.o adjust2d3d.o brough.o advection_edge_gcn.o advection_edge_gcy.o ghostuv.o advave_edge_gcn.o advave_edge_gcy.o phy_baropg.o baropg.o external_step.o extel_edge.o extuv_edge.o depth_check.o vertvl_edge.o adv_uv_edge_gcn.o adv_uv_edge_gcy.o vdif_uv.o extelpf_edge.o wreal.o viscofh.o adv_q.o fct_q2.o fct_q2l.o vdif_q.o adv_t.o adv_s.o fct_t.o vdif_ts.o fct_s.o bcond_ts.o adjust_ts.o conv_over.o visitsim.o startup_type.o edge_len.o adcor.o icing.o rho_pmean.o calc_vort.o namelist.o nh_set_nesting.o coare26z.o coare40vn.o adv_uv_edge_gcn_rk.o adv_uv_edge_gcy_rk.o adv_t_rk.o adv_s_rk.o adv_q_rk.o mod_bio_3D.o mod_onedtide.o ocpmix.o ocpcre.o ocpids.o swanpre1.o swanpre2.o swanser.o swanmain.o swancom1.o swancom2.o swancom3.o swancom4.o swancom5.o w3part.o -L/usr/local/lib -lmetis -lnetcdff -lnetcdf -L/home/fvcom/FVCOM-5.1.0/src/libs/install/lib -ljulian -Wl,-rpath,/home/fvcom/FVCOM-5.1.0/petsc/arch-linux-c-debug/lib -L/home/fvcom/FVCOM-5.1.0/petsc/arch-linux-c-debug/lib -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib/fortran/gfortran -L/usr/lib/x86_64-linux-gnu/openmpi/lib/fortran/gfortran -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11 -lpetsc -lHYPRE -lflapack -lfblas -lm -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lopen-rte -lopen-pal -lhwloc -levent_core -levent_pthreads -lgfortran -lm -lz -lgfortran -lm -lgfortran -lgcc_s -lquadmath -lstdc++ -lquadmath -o fvcom /usr/bin/ld: mod_par.o: in function `__mod_par_MOD_domdec': mod_par.f90:(.text+0x667aa): undefined reference to `partition_' collect2: error: ld returned 1 exit status make: *** [makefile:135: fvcom] Error 1
最新发布
09-29
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值