Issue
This is a practices that configure httpd service by adding weblogic apache plugin to support apache frontage to route traffic. This process is fellowing Puneeth Prakash's Oracle blog:
https://blogs.oracle.com/blogbypuneeth/configuring-wls-web-server-proxy-plug-in-for-apache-http-server-v2
Working environment as: Centos 7, apache 2.4.29.
- I first tried install weblogic apache plugin for 12c (WLSPlugins12c-12.1.2), There are four libs in the lib directory, two modules for httpd and other two dynamic shared libs. Unfortunately, this version not work properly on ajax request, some time make session invalid.
- Next I tried newer version as: WLSPlugin12.2.1.2.0. There are seven files in lib directory, two files for module libs and others 5 as shared dynamic load libs. I tried to put all files in lib directory into /usr/local/lib and change the owner to root:root, change mode to 755 for all files and then put a line in config file 00-base.conf in /etc/httpd/conf.modules.d directory. such as: "LoadModule weblogic_module /usr/local/lib/mod_wl_24.so" system load mod_wl_24.so properly, but not load dependency libopmnsecure.so, error as:
"Jan 06 16:22:49 centos.mywebsite.com.au httpd[4001]: httpd: Syntax error on line 58 of /etc/httpd/conf/httpd.conf: Syntax error on line 67 of /etc/httpd/conf.modules.d/00-base.conf: Cannot load /usr/local/lib/mod_wl_24.so into server: libopmnsecure.so: cannot open shared object file: No such file or directory"
From the error message we can see, mod_wl_24 is trying load dependent Dynamic lib libopmnsecure.so, but not found it in place. But, it is not true, libopmnsecure.so just seating in same directory with mod_wl_24.so. As Puneeth Prakash's Oracle blog required.
I had set up all related environment variables as well, that include APACHE_HOME, JAVA_HOME, PLUGIN_HOME,LD_LIBRARY_PATH.
If some one had an idea, please advise!
Solution
You need to add the specific path in LD_LIBRARY_PATH and make sure it is loaded when httpd starts.
I know you say you have, but double check, because that's exactly what the error is saying (that you haven't).
Apache httpd by default uses a file for environment variables that need to be set before starting apache httpd with its script "apachectl"
Here is the typical envvars file where we set it:
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
By the way, you don't need all files for httpd to start just these: libdms2.so libonssys.so libopmnsecure.so and obviously the module: mod_wl_24.so
Edit: Note this requirement/dependency of other libraries is new for these newer versions of the weblogic module, in earlier versions it wasn't necessary.
Update:
This issue was fixed by following steps:
- Remove yum installed httpd service from system.
- Download & Install weblogic apache plugins 12.2.1.2 from Oracle in customer location.
- Following https://blacksaildivision.com/how-to-install-apache-httpd-on-centos to build apache 2.4.29 from source in CentOS 7
Please note: When run
./configure
in apache build process, use parameter as:--libdir=/usr/local/WLSPlugins12c-12.2.1.2/lib point to your weblogic plugin lib location
- After apache was built and installed in your CentOS, setup httpd.service to be controlled by systemctl
- Reconfigure apache and restart it.
it will works for you.
Answered By - ezra-s Answer Checked By - Marie Seifert (WPSolving Admin)