Add suggestions for dealing with difficult installations, based on feedback

from multiple people.  The .bashrc suggestion was from Rael Dornfest.
This commit is contained in:
Sam Ruby 2000-07-03 09:00:54 +00:00
parent e24f505bf9
commit 1a6116c1f2
2 changed files with 114 additions and 0 deletions

View file

@ -59,6 +59,10 @@ Build and execution instructions:
to utilize the existing JVM and threads from the servlet engine, and
provides direct access to the servlet request and response objects.
Finally, the bottom of this readme contains some guidance for how to
approach situations in which these instructions don't work on your
machine.
========================================================================
=== JVM=Kaffe 1.0.4 (as delivered with OS), OS=Redhat Linux 6.1 ===
========================================================================
@ -160,3 +164,56 @@ php.ini:
[java]
java.class.path=F:\PHP4\Debug_TS\php_java.jar
extension=php_java.dll
=========================================================================
Guidance for when these instructions don't work.
JDK vendors don't typically document their internal workings, and are
typically very reliant on code inside of the JAVA main program and the
installation directory structure. For this reason, running PHP as a
servlet is typically much easier to get working. But if for some reason
this is not appropriate for you, and the instructions above don't work,
then read on.
The first thing to realize is that the directory structure of the JDK is
very important. Some users (particularly on Windows) get a message about
a DLL or shared library not being available and proceed to find that file
and copy it into a system directory. This typically just gets you to the
next problem - for example, it appears that many JDKs attempt to locate
the runtime Java classes (rt.jar) in a directory relative to these system
libraries. So unless you are inclined to copy your entire Java
installation, you are much better ajusting your PATHs.
Not documented above, but useful for many JDK's is ability to specify the
library path via java.library.path in the php.ini. On many Unix machines,
determining the initial value for this can be done by changing directory
to where you find a shared library that can't be loaded (example:
libjava.so), and executing "ld libjava.so". If you see some modules
listed as "not found", add the necessary directories to LD_LIBRARY_PATH
and repeat until successful. On my system, I require the following
two directories.
/home/jdk1.2.2/jre/lib/i386/native_threads
/home/jdk1.2.2/jre/lib/i386/classic
Note: this only determines the statically loaded libraries. Additional
libraries (such as libzip.so) may be loaded dynamically. On my system,
libzip.so is located in
/home/jdk1.2.2/jre/lib/i386
Another php.ini variable which may be helpful is java.home.
If java.library.path doesn't work for you (it won't on any JDK 1.1
implementations, for example), then try setting the system PATH or the
LD_LIBRARY_PATH before starting your web server. For Apache on Linux
systems, this can be accomplished by editing the Root's .bashrc and
adding the necessary export LD_LIBRARY_PATH statement.
If that doesn't work, try dividing an (hopefully) conquering by temporarily
eliminating items such as Apache from the process by adjusting the
arguments passed to the ./configure command (i.e., removing --with-apxs).
If all else fails, "man dlopen" on Unix systems will give more insight on
what the system is trying to do internally.

View file

@ -59,6 +59,10 @@ Build and execution instructions:
to utilize the existing JVM and threads from the servlet engine, and
provides direct access to the servlet request and response objects.
Finally, the bottom of this readme contains some guidance for how to
approach situations in which these instructions don't work on your
machine.
========================================================================
=== JVM=Kaffe 1.0.4 (as delivered with OS), OS=Redhat Linux 6.1 ===
========================================================================
@ -160,3 +164,56 @@ php.ini:
[java]
java.class.path=F:\PHP4\Debug_TS\php_java.jar
extension=php_java.dll
=========================================================================
Guidance for when these instructions don't work.
JDK vendors don't typically document their internal workings, and are
typically very reliant on code inside of the JAVA main program and the
installation directory structure. For this reason, running PHP as a
servlet is typically much easier to get working. But if for some reason
this is not appropriate for you, and the instructions above don't work,
then read on.
The first thing to realize is that the directory structure of the JDK is
very important. Some users (particularly on Windows) get a message about
a DLL or shared library not being available and proceed to find that file
and copy it into a system directory. This typically just gets you to the
next problem - for example, it appears that many JDKs attempt to locate
the runtime Java classes (rt.jar) in a directory relative to these system
libraries. So unless you are inclined to copy your entire Java
installation, you are much better ajusting your PATHs.
Not documented above, but useful for many JDK's is ability to specify the
library path via java.library.path in the php.ini. On many Unix machines,
determining the initial value for this can be done by changing directory
to where you find a shared library that can't be loaded (example:
libjava.so), and executing "ld libjava.so". If you see some modules
listed as "not found", add the necessary directories to LD_LIBRARY_PATH
and repeat until successful. On my system, I require the following
two directories.
/home/jdk1.2.2/jre/lib/i386/native_threads
/home/jdk1.2.2/jre/lib/i386/classic
Note: this only determines the statically loaded libraries. Additional
libraries (such as libzip.so) may be loaded dynamically. On my system,
libzip.so is located in
/home/jdk1.2.2/jre/lib/i386
Another php.ini variable which may be helpful is java.home.
If java.library.path doesn't work for you (it won't on any JDK 1.1
implementations, for example), then try setting the system PATH or the
LD_LIBRARY_PATH before starting your web server. For Apache on Linux
systems, this can be accomplished by editing the Root's .bashrc and
adding the necessary export LD_LIBRARY_PATH statement.
If that doesn't work, try dividing an (hopefully) conquering by temporarily
eliminating items such as Apache from the process by adjusting the
arguments passed to the ./configure command (i.e., removing --with-apxs).
If all else fails, "man dlopen" on Unix systems will give more insight on
what the system is trying to do internally.