【问题标题】:Centos 7 apache httpd can not load weblogic plug libraryCentos 7 apache httpd 无法加载 weblogic 插件库
【发布时间】:2018-06-15 22:59:20
【问题描述】:

这是一种通过添加 weblogic apache 插件来配置 httpd 服务以支持 apache frontage 来路由流量的做法。这个过程正在 Puneeth Prakash 的 Oracle 博客中找到:

https://blogs.oracle.com/blogbypuneeth/configuring-wls-web-server-proxy-plug-in-for-apache-http-server-v2

工作环境为:Centos 7, apache 2.4.29。

  1. 我第一次尝试安装weblogic apache plugin for 12c(WLSPlugins12c-12.1.2),lib目录下有四个lib,两个模块用于httpd,另外两个动态共享lib。不幸的是,这个版本在 ajax 请求上不能正常工作,有时会导致会话无效。
  2. 接下来我尝试更新版本为:WLSPlugin12.2.1.2.0。 lib 目录中有七个文件,两个文件用于模块库,其他 5 个作为共享动态加载库。我尝试将 lib 目录中的所有文件放入 /usr/local/lib 并将所有者更改为 root:root,将所有文件的模式更改为 755,然后在 /etc/httpd 的配置文件 00-base.conf 中放入一行/conf.modules.d 目录。如:"LoadModule weblogic_module /usr/local/lib/mod_wl_24.so" 系统加载mod_wl_24.so正常,但加载不依赖libopmnsecure.so,错误为:

"Jan 06 16:22:49 centos.mywebsite.com.au httpd[4001]: httpd: /etc/httpd/conf/httpd.conf 第 58 行的语法错误:第 67 行的语法错误/etc/httpd/conf.modules.d/00-base.conf:无法将 /usr/local/lib/mod_wl_24.so 加载到服务器中:libopmnsecure.so:无法打开共享对象文件:没有这样的文件或目录 em>"

从错误信息中我们可以看到,mod_wl_24 正在尝试加载依赖的动态库 libopmnsecure.so,但没有找到它。但是,这不是真的,libopmnsecure.so 只是与 mod_wl_24.so 位于同一目录中。正如 Puneeth Prakash 的 Oracle 博客所要求的那样。

我也设置了所有相关的环境变量,包括 APACHE_HOME、JAVA_HOME、PLUGIN_HOME、LD_LIBRARY_PATH。

如果有人有想法,请指教!

【问题讨论】:

  • 你设置了.so模块的文件权限了吗?
  • 是的。由 chown 和 chmod 755 设置。

标签: java apache plugins weblogic httpd.conf


【解决方案1】:

需要在LD_LIBRARY_PATH中添加具体路径,并确保httpd启动时加载。

我知道你说你有,但请仔细检查,因为这正是错误所说的(你没有)。

Apache httpd 默认使用一个环境变量文件,在启动 apache httpd 及其脚本“apachectl”之前需要设置该文件

这是我们设置它的典型 envvars 文件:

if test "x$LD_LIBRARY_PATH" != "x" ; then
  LD_LIBRARY_PATH="/path/to/httpd/lib:/path/to/httpd/weblogic-module/lib:$LD_LIBRARY_PATH"
else
  LD_LIBRARY_PATH="/path/to/httpd/lib:/path/to/httpd/weblogic-module/lib"
fi
export LD_LIBRARY_PATH

顺便说一句,你不需要所有的 httpd 文件来启动这些文件: libdms2.so libonssys.so libopmnsecure.so 显然是模块:mod_wl_24.so

编辑:请注意,对于这些较新版本的 weblogic 模块,其他库的此要求/依赖项是新的,在早期版本中则没有必要。

更新:

此问题已通过以下步骤修复:

  1. 从系统中删除 yum 安装的 httpd 服务。
  2. 在客户位置从 Oracle 下载并安装 weblogic apache 插件 12.2.1.2。
  3. 按照https://blacksaildivision.com/how-to-install-apache-httpd-on-centos 在 CentOS 7 中从源代码构建 apache 2.4.29
  4. 请注意:在apache构建过程中运行./configure时,使用参数为:

    --libdir=/usr/local/WLSPlugins12c-12.2.1.2/lib point to your weblogic plugin lib location 
    
  5. 在您的 CentOS 中构建并安装 apache 后,将 httpd.service 设置为由 systemctl 控制
  6. 重新配置 apache 并重新启动它。

它会为你工作。

【讨论】:

  • 稍后我会尝试您的建议。感谢您的评论。
  • 经过几天的工作。这样也行不通。也许我没有赶上你的路。
【解决方案2】:

此问题已通过以下步骤修复: 1. 从系统中删除 yum 安装的 httpd 服务。 2. 在客户位置从 Oracle 下载并安装 weblogic apache 插件 12.2.1.2。 3. 关注https://blacksaildivision.com/how-to-install-apache-httpd-on-centos 在CentOS 7 中从源代码构建apache 2.4.29 4. 请注意:在apache构建过程中运行./configure时,使用参数为:--libdir=/usr/local/WLSPlugins12c-12.2.1.2/lib 指向你的weblogic插件库位置 5. 在你的 CentOS 中构建并安装 apache 后,设置 httpd.service 由 systemctl 控制 6.重新配置apache并重启。 它会为你工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 2019-02-24
    • 2016-11-12
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多