]> granicus.if.org Git - php/commitdiff
Add suggestions for dealing with difficult installations, based on feedback
authorSam Ruby <rubys@php.net>
Mon, 3 Jul 2000 09:00:54 +0000 (09:00 +0000)
committerSam Ruby <rubys@php.net>
Mon, 3 Jul 2000 09:00:54 +0000 (09:00 +0000)
from multiple people.  The .bashrc suggestion was from Rael Dornfest.

ext/java/README
ext/rpc/java/README

index 34d91ab8c5618d7791351df74e30b4ac906b1078..20b5218279daa9506ed9019c5e4d211f2c6ba6f4 100644 (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.
index 34d91ab8c5618d7791351df74e30b4ac906b1078..20b5218279daa9506ed9019c5e4d211f2c6ba6f4 100644 (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.