[Apache][PHP4] Cannot load /etc/httpd/modules/libphp4.so into server: libpq.so.2.1: cannot open shared object file: No such file or directory

Tadashi Shigeoka ·  Tue, March 5, 2013

Here’s a memo on how to solve the following error when using Apache + PHP4 + PostgreSQL.

This is an error saying that libpq.so.2.1 used by libphp4.so is missing.

# /etc/init.d/httpd configtest
Syntax error on line 941 of /etc/httpd/conf/httpd.conf:
Cannot load /etc/httpd/modules/libphp4.so into server: libpq.so.2.1: cannot open shared object file: No such file or directory

When you display and check the dynamic link relationships of libphp4.so, you can confirm that libpq.so.2.1 => not found.

# ldd /etc/httpd/modules/libphp4.so
  libpam.so.0 => /lib/libpam.so.0 (0x40177000)
  libdl.so.2 => /lib/libdl.so.2 (0x40180000)
  libpq.so.2.1 => not found
  libcrypt.so.1 => /lib/libcrypt.so.1 (0x40184000)
  libresolv.so.2 => /lib/libresolv.so.2 (0x401b2000)
  libm.so.6 => /lib/libm.so.6 (0x401c4000)
  libnsl.so.1 => /lib/libnsl.so.1 (0x401e6000)
  libc.so.6 => /lib/libc.so.6 (0x401fd000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
# find / -name libpq.so.2.1
/usr/local/src/postgresql-7.0.3/src/interfaces/libpq/libpq.so.2.1
/usr/local/pgsql/lib/libpq.so.2.1

Create a symbolic link to /lib for libpq.so.2.1 located under postgres.

# ln -s /usr/local/pgsql/lib/libpq.so.2.1 /lib/libpq.so.2.1

I was able to confirm that libpq.so.2.1 is now being loaded properly.

# ldd /etc/httpd/modules/libphp4.so
  libpam.so.0 => /lib/libpam.so.0 (0x40177000)
  libdl.so.2 => /lib/libdl.so.2 (0x40180000)
  libpq.so.2.1 => /lib/libpq.so.2.1 (0x40184000)
  libcrypt.so.1 => /lib/libcrypt.so.1 (0x40196000)
  libresolv.so.2 => /lib/libresolv.so.2 (0x401c4000)
  libm.so.6 => /lib/libm.so.6 (0x401d6000)
  libnsl.so.1 => /lib/libnsl.so.1 (0x401f8000)
  libc.so.6 => /lib/libc.so.6 (0x4020f000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
# vi /etc/httpd/conf/httpd.conf
#LoadModule php4_module        lib/apache/libphp4.so
LoadModule php4_module        /usr/lib/apache/libphp4.so

[Reference]:2日目突入ちぅ - やちまうの戯言

That’s all from the Gemba.