| php에서 JAVA class 사용위한 연동 (FreeBSD) | 작성일 : 2005/10/30 01:53 |
| 조회수 : 14391 |
|
제 목 : php에서 JAVA class 사용위한 php/java 연동 (FreeBSD) 글쓴이 : 좋은진호(truefeel, http://coffeenix.net/ ) 작성일 : 2005.7.12(화)~14(목) 정리일 : 2005.10.28(금) php에 JAVA class를 호출하여 사용하기 위한 php 설정에 대해 알아본다. JDK나 APM 설치 과정은 미리 알거라 생각하고 연동과 관련된 부분 위주로 설명할 것이다. 1. JDK 설치 FreeBSD용으로 패치된 JDK 또는 linux-sun-jdk14 를 설치한다. make할 때 출력되는 URL에서 JDK는 직접 받아 /usr/ports/distfiles 에 복사해둬야 하는 것은 알겠죠?
이제 환경변수 설정을 한다. setenv JAVAHOME /usr/local/java setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib:/usr/local/lib/php: <-- 다음줄까지 한줄로 /usr/local/lib/php/20020429:$JAVA_HOME/jre/lib/i386:$JAVA_HOME/jre/lib/i386/server 2. apache 재설치 apache가 설치되어 있다면 pthread 사용하여 재컴파일한다. pthread를 사용하지 않고 컴파일을 하면 php에서 java class 사용시 에러가 발생할 것이다. /usr/ports/www/apache13/Makefile 파일에서 130여번째줄 정도에서 다음을 수정한다.
또한 대형 사이트일 경우 httpd.conf에서 MaxClients를 512 이상으로 설정할 수 있도록 HARD_SERVER_LIMIT 값을 1024나 2048로 늘린다.
이제 컴파일하자.
3. php 설치 /usr/port/lang/php4/Makefile 의 CONFIGURE_ARGS= 중간에 --with-java= 옵션을 삽입한다.
나머지는 apache에 php 연동하기 위한 형태로 설치를 하면 되며, 설치 후에는 다음 작업이 반드시 필요하다.
그리고, /usr/local/etc/php/extentions.ini 에 extension=java.so 추가. /usr/local/etc/php.ini에는 [java] section 설정이 필요하다. java.class.path= 에는 필요한 class 디렉토리나 jar 파일 full경로를 지정하면 된다.
4. 테스트 * javaver.html
웹브라우저에 다음과 같이 결과를 얻었다면 성공적으로 설치되었다.
5. 문제 해결 1) Fatal error: Unable to locate CreateJavaVM function in /home/truefeel/public_html/javaver.html on line 3 에러 발생 -> php.ini 의 [java] 부분에 java.library를 다음과 같이 한다. (/usr/local/java 는 JDK의 홈 경로임)
2) Fatal error: Cannot instantiate non-existent class: java in /home/truefeel/public_html/javaver.html on line 3 -> extensions.ini 에 extension=java.so 추가 3) php ~truefeel/public_html/javaver.html 실행시 /usr/libexec/ld-elf.so.1: /usr/local/java/jre/lib/i386/server/libjvm.so: Undefined symbol "pthread_main_np" 또는 apache의 error.log에 위의 메시지가 남을 때 -> apache를 pthread 사용해서 재컴파일한다. 4) php 실행시 PHP Warning: Function registration failed - duplicate name - java_last_exception_get in Unknown on line 0 PHP Warning: Function registration failed - duplicate name - java_last_exception_clear in Unknown on line 0 PHP Warning: java: Unable to register functions, unable to load in Unknown on line 0 -> extensions.ini 에 extension=java.so 이 2줄 이상일 때 발생 5) php 실행시 아무 에러메시지도 없고 apache error log에도 아무것도 없으나 결과가 안나올 때 -> 환경변수 LD_LIBRARY_PATH 를 셋팅했는지 확인해봐라. 6. 참고 자료 * PHP / Java Integration (연동테스트용 예제와 설치 방법 등에 대한 설명) http://www.php.net/java * java & php4 + apache 1.3.x http://lists.freebsd.org/pipermail/freebsd-questions/2003-December/029894.html * FreeBSD+PHP+Java(jdk1.4.2) http://blog.devep.net/adex/2005/03/11/1110477642312.html * Re: FreeBSD + ext/java http://aspn.activestate.com/ASPN/Mail/Message/php-install/1050662
|
||||||||||||||||||||||||||||||||||
|
|