系統環境
- RedHat 9.0
- Apache 1.3.27
- MySQL 3.23.54a
- PHP 4.3.2
- JDK 1.4.1_03 (
/usr/java/j2sdk1.4.1_03)
編譯安裝步驟
1. Apache 編譯
tar zxvf apache_1.3.27.tar.gz
cd apache_1.3.27
./configure --prefix=/usr/local/apache --enable-module=so --enable-shared=max
make && make install
2. PHP 編譯(關鍵:--with-java 指定 JDK 路徑)
tar zxvf php-4.3.2.tar.gz
cd php-4.3.2
./configure --prefix=/usr/local/php --with-mysql \
--with-apxs=/usr/local/apache/bin/apxs \
--with-java=/usr/java/j2sdk1.4.1_03
make && make install
3. Apache 配置 PHP 支援
# /usr/local/apache/conf/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
4. PHP.ini Java 區段配置
cp php.ini-dist /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
[Java]
java.class.path = /usr/local/php/lib/php/php_java.jar
java.home = /usr/java/j2sdk1.4.1_03
java.library = /usr/java/j2sdk1.4.1_03/jre/lib/i386/libjava.so
java.library.path = /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
extension=java.so
5. 關鍵符號連結(解決模組載入失敗)
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
ln -s java.so libphp_java.so
6. 環境變數與啟動
export LD_LIBRARY_PATH=/usr/java/j2sdk1.4.1_03/jre/lib/i386:/usr/java/j2sdk1.4.1_03/jre/lib/i386/server
/usr/local/apache/bin/apachectl start
驗證測試
<?php
$sys = new Java('java.lang.System');
echo 'Java version: ' . $sys->getProperty('java.version');
// 預期輸出: Java version=1.4.1_03
?>
避坑總結
--with-java 必須指向 JDK 根目錄(含 include、lib)
libphp_java.so 符號連結不可省略
LD_LIBRARY_PATH 必須包含 client 和 server 兩個 JVM 库目錄
- PHP 4.3.x 系列較穩定,PHP 5.x 需對應
php_java.jar 版本