I upgraded the Apache to 2.2.27 on my FreeBSD box via portmaster. The upgrade went very smooth. After the upgrade, I decide to test the Apache by restarting the server. Oh well, I got the following error message:
[FreeBSD]Shared object "libaprutil-1.so.5" not found, required by "httpd"
Oh well, looks like libaprutil-1.so.5 is missing. How about I create this file by soft-linking from the newer version, such as libaprutil-1.so.6, libaprutil-1.so.7 etc. However, when I check the lib directory, I don’t see anything like that.
#/usr/local/lib -rw-r--r-- 1 root wheel 251k Jun 11 10:58 libaprutil-1.a -rwxr-xr-x 1 root wheel 961B Jun 11 10:58 libaprutil-1.la lrwxr-xr-x 1 root wheel 21B Jun 11 10:58 libaprutil-1.so -> libaprutil-1.so.0.5.3 lrwxr-xr-x 1 root wheel 21B Jun 11 10:58 libaprutil-1.so.0 -> libaprutil-1.so.0.5.3 -rwxr-xr-x 1 root wheel 148k Jun 11 10:58 libaprutil-1.so.0.5.3
Looks like it is not that simple to solve the problem. After couple trials and errors, I came up a solution. First, I need to reinstall the Apache, and then I need to reinstall Apr1.
cd /usr/local/www/apache22 make
Notice that I compile the file without installing it. That’s because I want to check the library dependence.
cd /usr/ports/www/apache22/work/httpd-2.2.27
ldd ./httpd
./httpd:
libm.so.5 => /lib/libm.so.5 (0x80087d000)
libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x800a9e000)
libaprutil-1.so.0 => /usr/local/lib/libaprutil-1.so.0 (0x800d02000)
libdb-4.8.so.0 => /usr/local/lib/libdb-4.8.so.0 (0x800f27000)
libgdbm.so.4 => /usr/local/lib/libgdbm.so.4 (0x801299000)
libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x8014a4000)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x8016c8000)
libapr-1.so.0 => /usr/local/lib/libapr-1.so.0 (0x8019c4000)
libcrypt.so.5 => /lib/libcrypt.so.5 (0x801bf5000)
libthr.so.3 => /lib/libthr.so.3 (0x801e14000)
libc.so.7 => /lib/libc.so.7 (0x802037000)
libapr-1.so.5 => not found (0)
libintl.so.9 => /usr/local/lib/libintl.so.9 (0x802392000)
So it is libaprutil-1.so.0, which is what we have in /usr/local/lib/. That’s good. Now we can hit the install button.
cd /usr/ports/www/apache22/ make reinstall
So let’s try to run Apache again. Looks like we got a different error message:
/usr/local/etc/rc.d/apache22 restart Performing sanity check on apache22 configuration: Shared object "libapr-1.so.5" not found, required by "libaprutil-1.so.0"
It’s okay. Let’s do something similar to the apr1:
cd /usr/ports/devel/apr1/ make reinstall
Try to restart Apache again. The problem should be gone:
/usr/local/etc/rc.d/apache22 restart Performing sanity check on apache22 configuration: Syntax OK Stopping apache22. Waiting for PIDS: 1022. Performing sanity check on apache22 configuration: Syntax OK Starting apache22.
Hope my solutions help!
–Derrick
Our sponsors:

Thanks this solved my apache nightmare
portmaster -Bd devel/apr1 www/apache22