java - Centos 7 apache httpd无法加载weblogic插件库

标签 java apache plugins weblogic httpd.conf

这是一个通过添加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. 我首先尝试安装 12c 的 weblogic apache 插件 (WLSPlugins12c-12.1.2),lib 目录中有四个库,两个用于 httpd 的模块和另外两个动态共享库。不幸的是,这个版本不能正常处理ajax请求,有时会导致 session 无效。
  2. 接下来我尝试了较新的版本:WLSPlugin12.2.1.2.0。 lib 目录中有 7 个文件,其中两个文件用于模块库,其他 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:无法打开共享对象文件:没有这样的文件或目录

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

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

如果有人有想法,请提出建议!

最佳答案

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

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

默认情况下,Apache httpd 使用一个文件来存储需要在使用脚本“apachectl”启动 apache httpd 之前设置的环境变量

这是我们设置它的典型环境变量文件:

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 并重新启动它。

这对你有用。

关于java - Centos 7 apache httpd无法加载weblogic插件库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48125324/

相关文章:

java - jar 文件中的媒体文件夹

linux - 当外部客户端尝试在我的服务器上运行 PHP 脚本时,我该怎么办?

javascript - 带扩展的 jQuery 插件不接受用户参数

java - 如何检测串口COM1口信号?

java - AVD 不会停止关闭

php - Apache 不显示文件夹和目录

apache - 重写到新域?用url查询?不工作。 :( help

flutter - 尝试直接从 FLUTTER : MissingPluginException(No implementation found for method callNumber 调用电话

javascript - 如何在选项卡面板中使用两个轮播?

java - 在嵌入式 Jetty 中设置默认字符编码和内容类型