This is a geek entry for resolving the problem:
* Restarting web server apache2
/usr/sbin/apache2: symbol lookup error: /usr/sbin/apache2: undefined symbol: apr_ldap_ssl_init [fail]
Non-geeks will want to move along…
After a standard apt-get update, apt-get upgrade on Ubuntu 9.04 Jaunty, I was unable to start apache (httpd) due to an undefined symbol.
I also ran into this problem, but the root cause was that I’d built the Apache Portable Runtime in /usr/local for some other development work, completely forgot about it, and apache2 was picking up libraries from /usr/local/lib before /usr/lib.
Indeed this was the problem.
Ubuntu, while my current favorite choice as best-Linux-distribution-ever, has the horrible problem of suffering from severe lag of keeping up to date with the latest Subversion. Why this is so, I don’t know, but it’s forced us to have to build subversion manually — an easy enough task, but I’d really rather use an up-to-date repository.
Part of subversion’s build process is to build the APR library, although it’s better to simply use subversion-deps.
Through a set of manual builds and system updates, I ended up with a build in /usr/local/apr/lib and a build in /usr/lib.
By going to /etc/ld.so.conf.d, and doing grep apr *, I was able to find that I had a manually created file called usr-local.conf that contained /usr/local/apr/lib and /usr/local/BerkeleyDB.4.7/lib in it.
Deleting the /usr/local/apr/lib line, and then running # ldconfig, which altered the shared libraries loaded by the synamic linker run-time bindings, this solved the problem.
Apache2 was now looking at /usr/lib, and it found the apr library it wanted.