Centos 7 apache httpd无法加载weblogic插件库
Centos 7 apache httpd can not load weblogic plug library
这是一个通过添加weblogic apache插件来支持apache frontage来路由流量来配置httpd服务的做法。这个过程来自于 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。
- 我首先尝试为 12c 安装 weblogic apache 插件 (WLSPlugins12c-12.1.2),lib 目录中有四个库,两个用于 httpd 的模块和另外两个动态共享库。不幸的是,此版本无法在 ajax 请求下正常工作,有时会使会话无效。
- 接下来我尝试更新版本为:WLSPlugin12.2.1.2.0。 lib目录下有7个文件,2个为模块库,另外5个为共享动态加载库。我尝试将 lib 目录中的所有文件放入 /usr/local/lib 并将所有者更改为 root:root,将所有文件的模式更改为 755,然后在配置文件 00-base.conf 中添加一行 /etc/httpd/conf.modules.d 目录。如:“LoadModule weblogic_module /usr/local/lib/mod_wl_24.so”系统加载mod_wl_24.so正常,但不加载依赖libopmnsecure.so ,错误为:
"1 月 06 日 16:22:49 centos.mywebsite.com.au httpd[4001]:httpd:/etc/httpd/conf/httpd.conf 的第 58 行出现语法错误:语法错误在 /etc/httpd/conf.modules.d/00-base.conf 的第 67 行:无法将 /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 使用一个文件作为环境变量,需要在使用其脚本启动 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
编辑:注意这个 requirement/dependency 其他库对于这些较新版本的 weblogic 模块是新的,在早期版本中没有必要。
更新:
此问题已通过以下步骤解决:
- 从系统中删除 yum 安装的 httpd 服务。
- 在客户位置从 Oracle 下载并安装 weblogic apache 插件 12.2.1.2。
- 按照 https://blacksaildivision.com/how-to-install-apache-httpd-on-centos 在 CentOS 7 中从源代码构建 apache 2.4.29
请注意:当 运行 ./configure
在 apache 构建过程中,使用参数为:
--libdir=/usr/local/WLSPlugins12c-12.2.1.2/lib point to your weblogic plugin lib location
- 在您的 CentOS 中构建并安装 apache 后,设置 httpd.service 由 systemctl
控制
- 重新配置 apache 并重新启动它。
它会适合你。
此问题已通过以下步骤解决:
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. 请注意:当运行 ./configure in apache build process, use parameter as: --libdir=/usr/local/WLSPlugins12c-12.2.1.2/lib point to your weblogic plugin lib location
5. 在您的 CentOS 中构建并安装 apache 后,设置 httpd.service 由 systemctl 控制
6.重新配置apache并重启。
它会为你工作。
这是一个通过添加weblogic apache插件来支持apache frontage来路由流量来配置httpd服务的做法。这个过程来自于 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。
- 我首先尝试为 12c 安装 weblogic apache 插件 (WLSPlugins12c-12.1.2),lib 目录中有四个库,两个用于 httpd 的模块和另外两个动态共享库。不幸的是,此版本无法在 ajax 请求下正常工作,有时会使会话无效。
- 接下来我尝试更新版本为:WLSPlugin12.2.1.2.0。 lib目录下有7个文件,2个为模块库,另外5个为共享动态加载库。我尝试将 lib 目录中的所有文件放入 /usr/local/lib 并将所有者更改为 root:root,将所有文件的模式更改为 755,然后在配置文件 00-base.conf 中添加一行 /etc/httpd/conf.modules.d 目录。如:“LoadModule weblogic_module /usr/local/lib/mod_wl_24.so”系统加载mod_wl_24.so正常,但不加载依赖libopmnsecure.so ,错误为:
"1 月 06 日 16:22:49 centos.mywebsite.com.au httpd[4001]:httpd:/etc/httpd/conf/httpd.conf 的第 58 行出现语法错误:语法错误在 /etc/httpd/conf.modules.d/00-base.conf 的第 67 行:无法将 /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 使用一个文件作为环境变量,需要在使用其脚本启动 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
编辑:注意这个 requirement/dependency 其他库对于这些较新版本的 weblogic 模块是新的,在早期版本中没有必要。
更新:
此问题已通过以下步骤解决:
- 从系统中删除 yum 安装的 httpd 服务。
- 在客户位置从 Oracle 下载并安装 weblogic apache 插件 12.2.1.2。
- 按照 https://blacksaildivision.com/how-to-install-apache-httpd-on-centos 在 CentOS 7 中从源代码构建 apache 2.4.29
请注意:当 运行
./configure
在 apache 构建过程中,使用参数为:--libdir=/usr/local/WLSPlugins12c-12.2.1.2/lib point to your weblogic plugin lib location
- 在您的 CentOS 中构建并安装 apache 后,设置 httpd.service 由 systemctl 控制
- 重新配置 apache 并重新启动它。
它会适合你。
此问题已通过以下步骤解决: 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. 请注意:当运行 ./configure in apache build process, use parameter as: --libdir=/usr/local/WLSPlugins12c-12.2.1.2/lib point to your weblogic plugin lib location 5. 在您的 CentOS 中构建并安装 apache 后,设置 httpd.service 由 systemctl 控制 6.重新配置apache并重启。 它会为你工作。