Hola a todos este post es un tanto especial ya que aun cuando el titulo es muy general y los errores que causan que apache no arranque son varios, no es el objetivo en este post describir todos ellos, unicamente uno que hoy me causo un lio tremendo y seguro que algun momento les sucedera a alguien mas.

Me encontraba configurando un servidor y de pronto cuado quise arrancar apache obtuve el siguiente error.

Iniciando httpd: /usr/sbin/httpd: error while loading shared libraries: libaprutil-1.so: cannot open shared object file: No such file or directory

Si vemos a simple vista el error pues aparentemente no existe el archivo en cuestion, pues vamos a ver si existe o no dicho archivo.

Primero ejecuto un find para ver si existe o no el archivo en cuestión.

# find / -name “libapr-1.so.0”

Resultado de la busqueda.

# /usr/lib64/libaprutil-1.so<

Bien el archivo existe, entonces por qué me sale ese error?

Vamos a verificar los enlaces simbólicos hacia las librerias que usa apache:

ldd /usr/sbin/httpd

Resultado:

linux-vdso.so.1 => (0x00007fffd8dff000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5eb75ba000)
libpcre.so.0 => /lib64/libpcre.so.0 (0x00007f5eb738e000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f5eb716e000)
libaprutil-1.so.0 => not found
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f5eb6d13000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f5eb6aea000)
libdb-4.7.so => /lib64/libdb-4.7.so (0x00007f5eb6776000)
libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f5eb654a000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5eb632c000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5eb5f99000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5eb5d95000)
/lib64/ld-linux-x86-64.so.2 (0x00000035a0800000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f5eb5b90000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f5eb592e000

Mmm OK he aqui el problema, si te fijas todas las librerias tienen un enlace simbólico, excepto la que nos interese dicenot foun.

Ok como lo arreglas?, simple, hay que crear el enlace simbolico de ese libreria, con el siguiente comando.

ln -s /usr/lib/libaprutil-1.so /usr/lib/libaprutil-1.so

Listo ahora vamos a verificar nuevamente los enlaces simbólicos.

ldd /usr/sbin/httpd

linux-vdso.so.1 => (0x00007fffd8dff000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5eb75ba000)
libpcre.so.0 => /lib64/libpcre.so.0 (0x00007f5eb738e000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f5eb716e000)
libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00007f5eb6f4a000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f5eb6d13000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f5eb6aea000)
libdb-4.7.so => /lib64/libdb-4.7.so (0x00007f5eb6776000)
libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f5eb654a000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5eb632c000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5eb5f99000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5eb5d95000)
/lib64/ld-linux-x86-64.so.2 (0x00000035a0800000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f5eb5b90000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f5eb592e000)

Perfecto todo enlazado, ahora arranquemos apache.

/etc/init.d/httpd start
Iniciando apache [OK]

Perfecto problema resuelto.

Nota: Si tienes un sistema de 32bits pues tu ruta o lib aparecera asi:
/usr/lib/lo que sea.

MFCP!!!