Date: 06/29/00
- Next message: Adam Bennie: "[PHP-INST] PHP4 in PWS on NT doesn't work for me"
- Previous message: Nels Lindquist: "[PHP-INST] PHP4 Compile failure on RedHat 5.2"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
I'm attempting a rather complex installation of PHP 4.0.1 as a DSO with
several extensions loaded under Solaris 7 and Apache 1.3.12. Needless
to say, I'm running into problems (otherwise, I wouldn't be writing
here).
If you don't mind, I'd like to start from the beginning. Here's my
configure command line:
./configure \
--with-apxs=/opt/apache/bin/apxs \
--with-mysql=/opt/mysql \
--with-pgsql=/opt/postgres \
--with-gd=/opt/gd \
--with-pdflib=/opt/pdf \
--with-jpeg-dir=/opt/jpeg \
--with-tiff-dir=/opt/tiff \
--with-png-dir=/opt/png \
--with-zlib=/opt/zlib \
--with-zlib-dir=/opt/zlib \
--with-config-file-path=/etc/opt/apache \
--disable-debug
As you can see, on my systems I choose not to dump all third-party
software into a common directory. Instead, each software package gets
its own directory. In order to keep PATH and other environment
variables sane, I have a directory structure called
/opt/common/{bin,lib,include} that contains symlinks to the real files.
All of the third-party libraries have both .a and .so versions with the
sole exception of libgd, which has only a .a version.
Problem #1: configure was failing because it couldn't find libz, despite
my telling it where it was. Inspection of the configure script showed
libz was being linked without specifying a -L directory to look in.
It works fine under Linux and other Unixes because libz is a standard
library for those operating systems, but it's not under Solaris. The
configure script needs to obey the --with-zlib and --with-zlib-dir
directives.
I solved the problem by setting LD_LIBRARY_PATH and LD_RUN_PATH to
/opt/common/lib prior to running configure.
By this time I've been working on PHP for over 12 hours.
Secondary question: what's the difference between --with-zlib and
--with-zlib-dir?
Problem #2: PHP is compiling and linking OK. Installation goes well.
Time to fire up Apache and see if it all works. No go. I get this:
# /opt/apache/bin/apachectl start
Syntax error on line 208 of /opt/apache/conf/httpd.conf:
Cannot load /opt/apache/libexec/libphp4.so into server: ld.so.1: /opt/apache/bin/httpd: fatal: relocation error: file /opt/common/lib/libtiff.so: symbol __eprintf: referenced symbol not found
/opt/apache/bin/apachectl start: httpd could not be started
Sure enough, the output of "nm libtiff.a" shows numerous references to
__eprintf. Where did it come from? It occurs nowhere in the libtiff
source code, so it must be a low-level call. Still, who supplies it? I
ran nm on all the .a files in /usr/lib and couldn't find it referenced
anywhere.
What do I do to resolve this reference?
Ideally, what I'd REALLY like to do is remove PHP's dependencies on
external libraries. That is, I want PHP to be an Apache DSO, but
compile into PHP all the third-party extensions that it uses. Doing so
would eliminate the need to set LD_LIBRARY_PATH at runtime.
Any help would be appreciated.
Thanks!
Barry
-- PHP Install Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-install-unsubscribe <email protected> For additional commands, e-mail: php-install-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>
- Next message: Adam Bennie: "[PHP-INST] PHP4 in PWS on NT doesn't work for me"
- Previous message: Nels Lindquist: "[PHP-INST] PHP4 Compile failure on RedHat 5.2"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

