[Tech] PHP+JAVA+APACHE ???
St0rM
storm@elemental.it
Lun 1 Ott 2001 12:54:40 CEST
Allora.
Quello che a me serve, e che mi accingo a fare, e' installare il
supporto per gli oggetti JAVA sotto PHP. Non mi interessa far funzionare
APACHE con Java, l'unica cosa che mi serve e' farlo con PHP.
Le operazioni che ho fatto sono le seguenti:
-Installare JDK 1.2.2 (1.3.1 mi ha dato dei problemi). Banale, basta
scompattare una directory, e casomai sistemare ld.so.conf e dare ldconfig.
-Ricompilare PHP. QUI ho avuto dei problemi. Con la versione 1.3.1 di
JDK, aggiungendo --with-java si impallava durante il configure, dicendo
che non trovava le zlib, che sono assolutamente li a posto loro.
Cambiando il JDK con il 1.2.2 tutto va a meraviglia.
Qui la prima domanda. Se ho capito bene si PUO' compilare il tutto come
un modulo esterno, da aggiungere eventualmente ad una installazione di
PHP preesistente badando ad avere LE STESSE JDK e LO STESSO PHP, in
termini di versione.
Come si fa???
Inoltre: Mi sembra pure di aver capito che alla fine quello che serve
sta tutto nelle JRE, quindi dovrebbe essere possibile compilare il PHP
anche avendo il JRE e non il JDK...giusto? L'unico problema e' che il
PHP cerca le librerie COME SE ci fosse il JDK, sarebbe allor apossibile
prenderlo in giro creando una dir JDKx.y.z e metterci dentro le JRE?
A questo punto, configuro il php.ini:
-------
(da qualche parte c'e' la extension_dir o come si chiama, uso gia'
un'estensione per mysql)
[Java]
extension=libphp_java.so
java.class.path=/usr/lib/php4/php_java.jar:/usr/lib/php4
java.library.path=/usr/lib/php4
-------
Ok.
Preparo allora una pagina di prova:
---------
java.php
<?php
$system = new Java("java.lang.System");
print "Java version=".$system->getProperty("java.version")." <br>\n";
print "Java vendor=".$system->getProperty("java.vendor")." <p>\n\n";
print "OS=".$system->getProperty("os.name")." ".
$system->getProperty("os.version")." on ".
$system->getProperty("os.arch")." <br>\n";
$formatter = new Java("java.text.SimpleDateFormat","EEEE,
MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java("java.util.Date"))."\n";
?>
----------
Da shell tutto va bene:
[root@wind html]# php ./java.php
mi da l'output in HTML corretto (e' di la sull'altro PC non mi fate
copiare tutto =)
Se provo ad aprire la pagina da APACHE... Mi da Errore!!! Mi dice che
NON RIESCE ad avviare la JVM, e nel lor di errore di Apache trovo una
riga che dice che non riesce a caricare libjava.so .
Ok problema intuibile, non trova le librerie, qualcosa relativo al Path.
Mi ricordo di una certa variabile di sistema, LD_LIBRARY_PATH (e mi
ricordo pure che dove la descriveva invitava a NON usarla, ma vabbe').
Gioco un po' per impostarla e noto che le cose cambiano.
LD_LIBRARY_PATH=/usr/lib:/lib:/usr/java/jdk1.2.2/lib:/usr/java/jdk1.2.2/jre/lib:/usr/java/jdk1.2.2/jre/lib/i386:/usr/java/jdk1.2.2/lib/i386
CLASSPATH=/usr/lib/php4
Imposto queste variabili e l'errore sparisce. Ma la pagina non si
carica...Rimane li fermo in loading e dopo un po' va in timeout..
Idee ???
Ah, un'altra cosa. Ho letto su phpbuilder che usare il php per caricare
oggetti java e' poco conveniente perche' il PHP ha un "cattivo" modo di
gestire la cosa, e che sarebbe molto meglio usare Jakarta... Io che sono
ignorante, so solo che jakarta e' un prodotto collegato ad Apache, ma
niente di piu'. Tenendo conto che quello che serve a me e' far
funzionare un oggetto Java per gestire un collegamento server to server
(quello con Banca Sella per un sito di e-commerce), e che loro
forniscono degli script gia' pronti (casomai da modificare) in PHP, JSP,
ASP, coldfusion e basta... Insomma jakarta fa al caso mio?
Maggiori informazioni sulla lista
flug-tech