LinuxSA Mailing list archives

Index: [thread] [date] [subject] [author] [stats]
  From: Alan Kennington <akenning@dog.topology.org>
  To  : LinuxSA <linuxsa@linuxsa.org.au>
  Date: Thu, 5 Apr 2001 04:11:24 +0930

Re: more (lowish impact) SuSE 7.1 woe+travail

On Tue, Apr 03, 2001 at 04:05:00PM +0930, Alan Kennington wrote:
> Here's a minor saga in getting some basic things working
> on SuSE 7.1. 
[....]
 
> 6.	The server isn't running any more.
> 	So I try 
> 	    cd /etc/rc.d
> 	    ./apache start
> 	and get:
> 
> Starting httpd [ SuSEHelp SSL PHP3 mod_perl contrib backhand ]
> see /var/log/httpd/rcapache.log for details
> 
> 	and the file /var/log/httpd/rcapache.log contains:
> 
> Syntax error on line 199 of /etc/httpd/httpd.conf:
> Cannot load /usr/lib/apache/libphp3.so into server: shared object not open

Well, no one sent me a solution to this problem.
So I brought out the big guns: "strace" and "vi".

Result, when I traced through /etc/rc.d/apache, there was nothing
suspicious. But the child "httpd" process had a long
string of attempts to locate files like "libgd" - thusly:

========================================================
open("/lib/i586/mmx/libgd.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/i586/mmx", 0xbfffcac4)     = -1 ENOENT (No such file or directory)
open("/lib/i586/libgd.so.4", O_RDONLY)  = -1 ENOENT (No such file or directory)
stat64("/lib/i586", 0xbfffcac4)         = -1 ENOENT (No such file or directory)
open("/lib/mmx/libgd.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
stat64("/lib/mmx", 0xbfffcac4)          = -1 ENOENT (No such file or directory)
open("/lib/libgd.so.4", O_RDONLY)       = -1 ENOENT (No such file or directory)
stat64("/lib", {st_mode=S_IFDIR|0755, st_size=2265, ...}) = 0
open("/usr/lib/i586/mmx/libgd.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/i586/mmx", 0xbfffcac4) = -1 ENOENT (No such file or directory)
open("/usr/lib/i586/libgd.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/i586", 0xbfffcac4)     = -1 ENOENT (No such file or directory)
open("/usr/lib/mmx/libgd.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/mmx", 0xbfffcac4)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libgd.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)   
========================================================

This was a bit of a clue that I needed to load up the "gd" library.
But I'm pretty sure that this was there before.
Somehow it just disappeared.

So I re-installed this from the SuSE 7.1 disks, and .....
Now "httpd" works as advertised.

-----------------------------------------------
Moral:
It seems like when the dlopen() function is called (or something
like that) to load a shared-object library, it must be trying
to link up the libraries upon which it depends, in this case "libgd".
And if any cited library is not openable, it returns through
dlerror() (or something like that) the message:

    shared object not open

This is less clear than mud!
How is anyone supposed to know that this means you have to run
"strace" to find out the missing library and install it???

Anyway, now, after 6 hours of wasted effort (and finding that
the latest stable version of Apache does not compile as is
on SuSE 7.1, which is still an issue...), I've got back to
square one.
This is why I don't recommend linux to anyone who doesn't have a
huge reserve of energy, stamina, time, bravado, gumption,
and mongrel doggedness.

Cheers, and goodnight,
Alan Kennington.

-- 
LinuxSA WWW: http://www.linuxsa.org.au/  IRC: #linuxsa on irc.linux.org.au
To unsubscribe from the LinuxSA list:
  mail linuxsa-request@linuxsa.org.au with "unsubscribe" as the subject


Index: [thread] [date] [subject] [author] [stats]
Return to the LinuxSA Mailing List Information Page