我看過後,有兩個結論:
1. 將 php整合入java servlet 的環境,如tomcat
2. 將php對java支援的功能整合進來
如果要整合,
1.在compile php 前的configure 要打: ./configure --with-java=<java directory>
2. 將/usr/local/bin/php加到 apache 的cpi-bin的目錄中(ava支援的功能整合進來,php必須要是cgi模式,而非 sapi模組才能成功)
安裝要點:
-------------------------------------------------------------------
1. download
2. cd /usr/local
3. gunzip php-4.2.3.tar.gz
4. cd php-4.2.3
5. ./configure -with-java=<java directory>
6. make
7. make install
8.將/usr/local/bin/php加到 apache 的cpi-bin的目錄中(ava支援的功能整合進來,php必須要是cgi模式,而非 sapi模組才能成功)
9. 改php.ini
[java]
java.class.path=/usr/local/lib/php/php_java.jar:/usr/share/pgsql/jdbc7.1-1.2.jar:/var/www/html
java.home=/usr/local/j2sdk1.4.0_02
java.library=/usr/local/j2sdk1.4.0_02/jre/lib/i386/libjava.so
extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20020429
extension=java.so
10.到java.library.path 打 ln -s java.so libphp_java.so
註: 不僅是標準的jdk class 可call , 以下是convert XML FO files into PDF/PS/... 範例
<?
$basedir = new Java("java.io.File", ".");
$outdir = new Java("java.io.File", "out");
$outdir->mkdirs();
$fofile = new Java("java.io.File", $basedir, "xml/fo/helloworld.fo");
$pdffile = new Java("java.io.File", $outdir, "ResultFO2PDF.pdf");
echo "Input: ".$fofile->toString()."\n";
echo "Output: ".$pdffile->toString()."\n";
$driver = new Java("org.apache.fop.apps.Driver");
$logger = new Java("org.apache.avalon.framework.logger.ConsoleLogger");
$driver->setLogger($logger);
$driver->setRenderer($driver->RENDER_PDF);
$out = new Java("java.io.FileOutputStream", $pdffile);
$driver->setOutputStream($out);
$in = new Java("java.io.FileInputStream", $fofile);
$driver->setInputSource(new Java("org.xml.sax.InputSource", $in));
$driver->run();
$in->close();
$out->close();
?>