PHP/PHP-Java bridge
From Gentoo Linux Wiki
| Installation • Kernel & Hardware • Networks • Portage • Software • System • X Server • Gaming • Non-x86 • Emulators • Misc |
[edit] What is it good for?
You may want to run Java inside PHP scripts for whatever reason. In my case, I want to run fop to convert HTML to PDF. You should have installed a webserver and PHP before trying this.
[edit] Install
Just issue the command:
emerge php-java-bridge
[edit] Configure
After restarting your webserver, you can test it by using the default test php (extracted from http://www.php.net/java, Example 1):
| File: test.php |
<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');
// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br />';
// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo $formatter->format(new Java('java.util.Date'));
?>
|
If there is an error you may check your php.ini to see if the extension_dir path is correct. This variable requires a single path to work. It cannot be separated by colons (:) like the include_path variable (I tried).
My installation had it set incorrectly, possibly because of my migration from dev-php/mod_php to dev-lang/php.
In my case I use /etc/php/apache2-php5/php.ini, the specific path may vary according to your setup. See PHP#Configure to find out where your php.ini is located.
| File: php.ini |
;This is correct for dev-lang/php-5.0.5-r4, other versions may have it different extension_dir = /usr/lib/php5/lib/php/extensions/no-debug-non-zts-20041030/ |
This should be enough for a 'developer environment' as recommended by the php-java-bridge developers. There is also a recommended config for a 'production environment' (see /usr/share/doc/dev-php5/php-java-bridge-2.0.8/README.gz), but I have not had time to try that yet. Besides, it looks like the portage package for php-java-bridge does not ship a start-stop daemon for this kind of setup, so you would have to be prepared for a bit more of manual labor to set this up.
If anyone wants to contribute with hints for the production environment, feel free to do so!
