DSO woes :(
| From: | Jon Niola | Date: | Thu, 29 Nov 2001 06:15:39 +0000 |
| Subject: | DSO woes :( | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-75986@lists.php.net to get a copy of this message | ||
Hey folks,
I am having some annoying problems with building PHP 4.0.6 as a DSO. In summary, Apache is not finding various library files that the libphp4.so wants...
First I built Apache 1.3.22 w/ mod_ssl. That all went smooth. Built it in /usr/local/apache
SSL_BASE=../openssl-0.9.6b \
RSA_BASE=../rsaref-2.0/local \
./configure \
--enable-module=ssl \
--prefix=/usr/local/apache \
--enable-shared=ssl \
--with-perl=/usr/bin/perl \
--enable-module=rewrite \
--enable-module=so \
--enable-module=userdir
Then I configured PHP:
./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mysql \
--with-pgsql=/usr/local/pgsql \
--with-oci8=/u01/app/oracle/product/8.1.7/OraHome1 \
--with-openssl=/usr/local/ssl \
--enable-bcmath \
--enable-calendar \
--with-bz2=/usr/bin/bzip2 \
--enable-ftp \
--with-xml \
--enable-track-vars \
--enable-trans-sid \
--enable-shmop \
--enable-sockets \
--enable-wddx \
--with-gd \
--enable-gd-native-ttf \
--with-jpeg-dir \
--with-freetype-dir \
--with-ttf \
--with-gettext \
--with-gmp \
--with-iconv \
--with-readline \
Did make and make install, and copied over the php.ini file. All worked fine.
Then I ran Apache:
[root@megatron bin]# ./apachectl startssl
Syntax error on line 207 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/libphp4.so into server: libpq.so.2: cannot open shared object
file: No such file or directory
./apachectl startssl: httpd could not be started
Took me like 20 minutes to figure out that that libpq.so.2 is a Postgres library. The file is in my /usr/local/pgsql/bin. Searched mailing list archives and the consensus answer was to add /usr/local/pgsql/lib to the bottom of my /etc/ld.so.conf and then run /sbin/ldconfig to read in the new config.
I then ran Apache again:
[root@megatron bin]# ./apachectl startssl
Syntax error on line 207 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/libphp4.so into server: libmysqlclient.so.10: cannot open shared object file: No such file or directory
./apachectl startssl: httpd could not be started
Now, if I add the path to that library to the /etc/ld.so.conf, I get another error because it can't find the next module.
My gut feeling is that I am doing something wrong because it makes no sense to add every single library it needs to the /etc/ld.so.conf file. I have a feeling that that is not good for performance either. Is there another way to go about this?
Thanks in advance for any help you can give :)
--Jon