Apache stopped starting today for no apparent reason.

1
2
3
4
5
6
7
rcapache2 restart
/usr/sbin/httpd2-prefork: symbol lookup error: /usr/sbin/httpd2-prefork: undefined symbol: apr_ldap_ssl_init
Starting httpd2 (prefork) /usr/sbin/httpd2-prefork: symbol lookup error: /usr/sbin/httpd2-prefork: undefined symbol: apr_ldap_ssl_init
 
The command line was:
/usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL
                                                                      failed

So I tried reinstalling libapr and apache2-utils related stuff with no luck. ldconfig didn't help either. It's not until I looked at /usr/lib and relinked a few things that it started working. What the hell, SUSE?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/usr/lib # l libapr*
-rw-r--r-- 1 root root 239306 2007-09-21 23:41 libapr-1.a
-rw-r--r-- 1 root root    821 2007-09-21 23:41 libapr-1.la
lrwxrwxrwx 1 root root     17 2008-07-30 00:21 libapr-1.so -> libapr-1.so.0.2.9*
lrwxrwxrwx 1 root root     18 2008-07-30 00:21 libapr-1.so.0 -> libapr-1.so.0.2.12*
-rwxr-xr-x 1 root root 543841 2008-07-29 23:47 libapr-1.so.0.2.12*
-rwxr-xr-x 1 root root 148372 2007-09-21 23:41 libapr-1.so.0.2.9*
-rw-r--r-- 1 root root 156300 2007-09-23 13:33 libaprutil-1.a
-rw-r--r-- 1 root root    912 2007-09-23 13:33 libaprutil-1.la
lrwxrwxrwx 1 root root     21 2008-07-30 00:22 libaprutil-1.so -> libaprutil-1.so.0.2.9*
lrwxrwxrwx 1 root root     22 2008-07-30 00:21 libaprutil-1.so.0 -> libaprutil-1.so.0.2.12*
-rwxr-xr-x 1 root root 291520 2008-07-29 23:47 libaprutil-1.so.0.2.12*
-rwxr-xr-x 1 root root  98148 2007-09-23 13:33 libaprutil-1.so.0.2.9*
 
/usr/lib # ln -sf libaprutil-1.so.0.2.9 libaprutil-1.so.0
/usr/lib # ln -sf libapr-1.so.0.2.9 libapr-1.so.0
 
/usr/lib # l libapr*
-rw-r--r-- 1 root root 239306 2007-09-21 23:41 libapr-1.a
-rw-r--r-- 1 root root    821 2007-09-21 23:41 libapr-1.la
lrwxrwxrwx 1 root root     18 2008-07-30 00:34 libapr-1.so -> libapr-1.so.0.2.9*
lrwxrwxrwx 1 root root     18 2008-07-30 00:21 libapr-1.so.0 -> libapr-1.so.0.2.9*
-rwxr-xr-x 1 root root 543841 2008-07-29 23:47 libapr-1.so.0.2.12*
-rwxr-xr-x 1 root root 148372 2007-09-21 23:41 libapr-1.so.0.2.9*
-rw-r--r-- 1 root root 156300 2007-09-23 13:33 libaprutil-1.a
-rw-r--r-- 1 root root    912 2007-09-23 13:33 libaprutil-1.la
lrwxrwxrwx 1 root root     21 2008-07-30 00:35 libaprutil-1.so -> libaprutil-1.so.0.2.9*
lrwxrwxrwx 1 root root     21 2008-07-30 00:35 libaprutil-1.so.0 -> libaprutil-1.so.0.2.9*
-rwxr-xr-x 1 root root 291520 2008-07-29 23:47 libaprutil-1.so.0.2.12*
-rwxr-xr-x 1 root root  98148 2007-09-23 13:33 libaprutil-1.so.0.2.9*
 
/usr/lib # rcapache2 restart
Syntax OK
Shutting down httpd2 (waiting for all children to terminate)          done
Starting httpd2 (prefork)                                             done

Voila, apache starts now. Grrr, why linker, why??

● ● ●

Artem Russakovskii is a San Francisco programmer, blogger, and future millionaire (that last part is in the works). Follow Artem on Twitter (@ArtemR) or subscribe to the RSS feed.

In the meantime, if you found this article useful, feel free to buy me a cup of coffee below.



Share
  • Carlo

    Hey, I have the same problem. After I updated to Ubuntu 8.10 apache stopped working! I tried your solution to re-link the files but with no luck! Do you have any other suggestion?

  • http://beerpla.net Artem Russakovskii

    Well, it's hard to say without playing around with that particular system. I'd say double check everything, and if that doesn't work, try to work out another solution. But you already knew that. :-/

  • http://beerpla.net Artem Russakovskii

    The damn problem keeps coming back every once in a while. People, what keeps doing this!?

  • Cody Erben

    Based off this post, I was able to poke around and the the following resolved my issues with this on Ubuntu 8.10:

    sudo aptitude reinstall libapr1 libaprutil1

    Thanks for posting your original findings…it helped point me in the right direction !

  • Luis

    I had the same problem in Slackware 12.1 with default installation.

    The first link I tried to re-issue was the right one:
    ln -sf libaprutil-1.so.0.2.12 libaprutil-1.so.0

    Apparently the link is the same as the old, but httpd now runs.

    Thank you.

  • http://praqma.net Jes struck

    hey i have tried youre approach but it still not working for me

  • http://agentzlerich.blogspot.com/ Rhys Ulerich

    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.

  • http://yello.pk Mudassir

    i have still following error when starting apache

    /usr/sbin/apache2: symbol lookup error: /usr/sbin/apache2: undefined symbol: apr_os_uuid_get

  • http://mark.ossdl.de/2009/07/apr-on-opensuse-and-undefinde-symbol-apr_lda_ssl_init/ Mark

    If this does not help, check by 'ldd' whether your subversion Apache module is compiled with LDAP support enabled. If so, recompile apr-util with –with-ldap.

  • Gonzalo

    I was having this problem all day long. I'm using a VPS with ubuntu-8.10-i386-minimal and being a total Linux newbie like me, it was a nightmare to fix it.

    I searched in a lot of places but I kept having the same problems. After all, I combined all the commands that I found and it worked 😛

    sudo aptitude reinstall libapr1 libaprutil1
    sudo a2enmod ldap
    cd /usr/lib/
    sudo ln -sf libaprutil-1.so.0.2.12 libaprutil-1.so.0
    sudo ln -sf libapr-1.so.0.2.12 libapr-1.so.0
    sudo /etc/init.d/apache2 stop
    sudo /etc/init.d/apache2 start

    I hope it works for you!

  • newbie

    tried all those things..still doesnt work..can anyone help..its urgent..

    • ambinanitelo

      I have the same problem and something was wrong with apr version.

      ls -l libapr* gives me

      libapr-1.a
      libapr-1.la
      libapr-1.so -> libapr-1.so.0.4.2
      libapr-1.so.0 -> libapr-1.so.0.4.2
      libapr-1.so.0.3.8
      libapr-1.so.0.4.2
      libaprutil-1.so.0 -> libaprutil-1.so.0.3.9
      libaprutil-1.so.0.3.9

      so there is 0.4.2, 0.3.8 and 0.3.9 – Three libapr versions at the same time!

      I did sudo ln -sf libapr-1.so.0.3.8 libapr-1.so.0 and it resolves my problem – apache starts now.

  • Dave

    I just wanted to let others know who have this problem. I had also compiled a version of apr before finding the appropriate package.

    ldd /usr/sbin/apache2 helped me find that it was linking the library under /lib/* instead of /usr/lib where the library is installed.

    Once I removed the offending left over libraries from my apr compile, apache started to work again.

    Thanks all for your help.

  • jjcare

    Thanks for this. I had different versions of libapr and libaprutils in both /usr/lib and in /usr/local/lib. Your re-linking did the trick.

  • Pingback: Buy Vps In Artem – Web Hosting