Author |
|
Shrinidhi0409
Joined: 24 Sep 2021 Posts: 18 Location: India
|
Posted: Fri 24 Sep '21 10:11 Post subject: Httpd service is not starting |
|
|
Hi ,
We are trying to upgrade the existing OS (RHEL 6.10) to RHEL 8.4 and our application is using apache server 2.4.35 .After upgrading to new OS , httpd service inside our application is not starting and end up with the below error.
/var/AdventNet/webNMS/apache/bin/httpd: symbol lookup error: /var/AdventNet/webNMS/apache/lib/libapr-1.so.0: undefined symbol: dlopen
Can you please let us know solution for above error.
Regards,
Shrinidhi
|
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7373 Location: Germany, Next to Hamburg
|
Posted: Wed 29 Sep '21 13:53 Post subject: |
|
|
Did you copy / move apache or did you install a new one? |
|
Back to top |
|
Shrinidhi0409
Joined: 24 Sep 2021 Posts: 18 Location: India
|
Posted: Wed 29 Sep '21 14:15 Post subject: |
|
|
James Blond wrote: | Did you copy / move apache or did you install a new one? |
No we have not copied/moved the existing apache. We just upgraded current OS (RHEL 6.10) to RHEL 8.4. Trying to run our application on top of new OS. |
|
Back to top |
|
tangent Moderator
Joined: 16 Aug 2020 Posts: 348 Location: UK
|
Posted: Wed 29 Sep '21 21:43 Post subject: |
|
|
Upgrading from RHEL 6.x to 8.4 is quite a leap, so I'd expect there might be some compatibility issues.
I don't have RHEL 8.4, but do have a VM running Centos 8.4 (near enough), on which dlopen is provided by /usr/lib64/libdl.so. So I'm guessing your Apache setup isn't looking in the right place to find libdl.so.
Code: | [root@localhost ~]# nm -D /usr/lib64/libdl.so | grep dlopen
0000000000001240 T dlopen |
When looking for a dynamic library, a binary (Apache httpd) will try:
• directories listed in the LD_LIBRARY_PATH environment variable
• directories listed in the executable's rpath;
• directories on the system search path On Linux, the latter generally consists of entries in /lib and /usr/lib and those defined in /etc/ld.so.conf (and below). On my Centos setup, I don't see the /usr/lib64 directory listed as a default search path, so this might explain why Apache is whinging.
I'd try adding /usr/lib64 to LD_LIBRARY_PATH, or to a file in /etc/ld.so.conf.d before starting Apache, and see if that resolves your problem. |
|
Back to top |
|
Shrinidhi0409
Joined: 24 Sep 2021 Posts: 18 Location: India
|
Posted: Tue 05 Oct '21 8:44 Post subject: |
|
|
We tried the above mentioned solution, LD_LIBRARY_PATH is pointing to /usr/lib64/. Also we explicitly installed libapr.1.so and libaprutil.1.so to /usr/lib64 folder and http service is starting.But now the tomcat is having some issues, When we executed the below mentioned command , we got "Connection refused " error, resulting in shut down of the entire application.
1.telnet localhost 8443
2.sudo netstat -tnlp | grep :8443
3.curl -IL http://localhost:8443
Please let us know what could be wrong and possible solutions.
Regards,
Shrinidhi |
|
Back to top |
|
maba
Joined: 05 Feb 2012 Posts: 64 Location: Germany, Heilbronn
|
Posted: Tue 05 Oct '21 19:08 Post subject: |
|
|
For the Apache installation, I would rather go with the official RHEL RPM of apache. This typically avoids the trouble with dlopen as the packages are tested and released by Redhat.
For the Tomcat, similar things apply. What JDK is installed and used. Jumping from RHEL 6 to RHEL 8 most likely also means a version upgrade of the OpenJDK.
Parts that you have compiled on your own will most likely need recompilation or redeployment. |
|
Back to top |
|
Shrinidhi0409
Joined: 24 Sep 2021 Posts: 18 Location: India
|
Posted: Wed 13 Oct '21 14:13 Post subject: |
|
|
Thank you,
We installed libaprutil packages , and after executing systemctl start httpd.service httpd service is running now. But our application is configured to run on 8443(SSL Port). When we grep for the listening port, 8443 is not listing instead its running on default 80 port and resulting with connection refused error.
Can you please suggest what could be done for this issue?
Regards,
Shrinidhi S |
|
Back to top |
|
tangent Moderator
Joined: 16 Aug 2020 Posts: 348 Location: UK
|
Posted: Thu 14 Oct '21 17:06 Post subject: |
|
|
Your posts to date have mentioned both Apache and Tomcat, but you've not provided any configuration file details to confirm whether Apache is acting as a proxy to Tomcat, which presumably it was.
I'd guess the port 80 listener is the default HTTP port from Apache, and nothing to do with Tomcat which, based on the standard connector definitions in server.xml, would be port 8080 for HTTP and 8443 for HTTPS (assuming a valid certificate keystore is in place).
Maba is right about a probable change to the JDK and need for redeployment. You need to get the application deployed and running in Tomcat before trying to sort out any Apache proxy to it.
Indeed, at that point I'd turn off HTTP and HTTPS in Tomcat, and use Apache to proxy to the Tomcat AJP service on the loopback address on port 8009. |
|
Back to top |
|
maba
Joined: 05 Feb 2012 Posts: 64 Location: Germany, Heilbronn
|
Posted: Tue 19 Oct '21 22:42 Post subject: |
|
|
Side comment: I am almost sure that your Apache installation is not the standard install. RHEL 8 would never use the directory "/var/AdventNet/webNMS/apache/bin/httpd" for httpd.
If this is a commercial package (webNMS), contact the vendor and get the RPMs which are suitable for RHEL 8.x. Then do a proper installation and migration. |
|
Back to top |
|