Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
* HanIRCÀÇ #coffeenix ¹æ
[ Àåºñ ¹× ȸ¼± ÈÄ¿ø ]
HOME > ÇÁ·Î±×·¡¹Ö / °³¹ß > À¥ ÇÁ·Î±×·¡¹Ö / PHP µµ¿ò¸»
°Ë»ö : »çÀÌÆ® WHOIS À¥¼­¹ö Á¾·ù


  php¿¡¼­ JAVA class »ç¿ëÀ§ÇÑ ¿¬µ¿ (FreeBSD) ÀÛ¼ºÀÏ : 2005/10/30 01:53
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 13388
          [ ÀÌÀüÈ­¸é / ¼öÁ¤ ]   ºñ¹Ð¹øÈ£ :     Àμâ¿ë È­¸é
      Á¦  ¸ñ : 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 ¿¡ º¹»çÇØµÖ¾ß ÇÏ´Â °ÍÀº ¾Ë°ÚÁÒ?

     
    # cd /usr/ports/java/jdk14 (FreeBSD¿ëÀ¸·Î ÆÐÄ¡µÈ JDK) ¶Ç´Â /usr/ports/java/linux-sun-jdk14
    # make install
    # cd /usr/local
    # ln -s jdk1.4.2 java ¶Ç´Â ln -s linux-sun-jdk1.4.2 java
     


       ÀÌÁ¦ ȯ°æº¯¼ö ¼³Á¤À» ÇÑ´Ù.

       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¿©¹ø°ÁÙ Á¤µµ¿¡¼­ ´ÙÀ½À» ¼öÁ¤ÇÑ´Ù.

     
    CONFIGURE_ENV+= \
                    INCLUDES=-I${LOCALBASE}/include \
                    LDFLAGS=-L${LOCALBASE}/lib

    ´ë½Å

    CONFIGURE_ENV+= \
                    INCLUDES=-I${LOCALBASE}/include \
                    LDFLAGS="-L${LOCALBASE}/lib -pthread -lc_r"
     


       ¶ÇÇÑ ´ëÇü »çÀÌÆ®ÀÏ °æ¿ì httpd.conf¿¡¼­ MaxClients¸¦ 512 ÀÌ»óÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï
       HARD_SERVER_LIMIT °ªÀ» 1024³ª 2048·Î ´Ã¸°´Ù.

     
    CFLAGS+=-DHARD_SERVER_LIMIT=2048
     


       ÀÌÁ¦ ÄÄÆÄÀÏÇÏÀÚ.

     
    # cd /usr/ports/www/apache13
    # make
    # make install clean
     


    3. php ¼³Ä¡

       /usr/port/lang/php4/Makefile ÀÇ CONFIGURE_ARGS= Áß°£¿¡ --with-java= ¿É¼ÇÀ» »ðÀÔÇÑ´Ù.

      
     
       --with-java=/usr/local/java \
      
     


       ³ª¸ÓÁö´Â apache¿¡ php ¿¬µ¿Çϱâ À§ÇÑ ÇüÅ·Π¼³Ä¡¸¦ ÇÏ¸é µÇ¸ç, ¼³Ä¡ ÈÄ¿¡´Â ´ÙÀ½ ÀÛ¾÷ÀÌ
       ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.

     
    # cd /usr/local/lib/php/20020429
    # ln -s java.so libphp_java.so
    # ls -l *java*
    -rwxr-xr-x  1 root  wheel  13225  7 14 13:52 java.so
    lrwxr-xr-x  1 root  wheel      7  7 11 17:34 libphp_java.so -> java.so
     


       ±×¸®°í, /usr/local/etc/php/extentions.ini ¿¡ extension=java.so Ãß°¡.
       /usr/local/etc/php.ini¿¡´Â [java] section ¼³Á¤ÀÌ ÇÊ¿äÇÏ´Ù.
       java.class.path= ¿¡´Â ÇÊ¿äÇÑ class µð·ºÅ丮³ª jar ÆÄÀÏ full°æ·Î¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.

     
    [java]
    java.class.path =/usr/local/lib/php/php_java.jar:/home/truefeel/java/lib/mysql-connector-java-...-bin.jar
    java.home = /usr/local/java
    java.library = /usr/local/java/jre/lib/i386/server/libjvm.so
    java.library.path =/usr/local/lib/php/20020429
     


    4. Å×½ºÆ®

    * javaver.html
     
    <?
    // 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'));
    ?>
     


    À¥ºê¶ó¿ìÀú¿¡ ´ÙÀ½°ú °°ÀÌ °á°ú¸¦ ¾ò¾ú´Ù¸é ¼º°øÀûÀ¸·Î ¼³Ä¡µÇ¾ú´Ù.

     
    Java version=1.4.2-p7
    Java vendor=Sun Microsystems Inc.
    OS=FreeBSD x.xx-RELEASE-px on i386
    Åä¿äÀÏ, 10¿ù 29, 2005 at 1:02:35 ¿ÀÀü GMT+09:00
     


    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ÀÇ È¨ °æ·ÎÀÓ)

      
     
       java.library = /usr/local/java/jre/lib/i386/server/libjvm.so
      
     


       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

     
       | However, when accessing a php script containing a java call, I get:
       | ---
       | Fatal error: Unable to locate CreateJavaVM function in java.php on line 6


       I had a similar with (php+java+freebsd), but I gave up on a similar problem.
       Later I found out that the problem could possibly be solved by forcing
       Apache to be built with libc_r (multithreading library) by manually
       adding -pthread switch to Apache Makefile.

       Please, tell me if it works for you.
     

      Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
    [04/18] ??? ?????
    [04/17] ???? onion ?????? -
    [04/11] ±¹°¡&#5
    [04/10] Stride Into Dream:
    [03/20] Re: ¿Â¶óÀΰÔÀÓÀÇ Á¾ÁÖ±¹ ´ëÇѹα¹
    [10/20] Cross Compiler ±ò
    [07/14] SSL ¬¡¬°
    [04/26] Re: µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [04/25] µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [10/30] Cshell¿¡¼­ ³­¼ö ¼³Á¤
    [10/23] °øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
    [01/26] Re: wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/25] wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/11] ƯÁ¤ ¾Èµå·ÎÀ̵å WebView ¹öÀü¿¡¼­ SSL ¹®Á¦ (WebView ¹ö±×)
    [08/01] DNS forwarder (Àü´ÞÀÚ) ¼­¹ö¸¦ ÅëÇؼ­ Äõ¸®ÇÏ¸é ¿ª¹æÇâÀ» ¹Þ¾Æ¿ÀÁú ¸øÇÕ´Ï´Ù.
      New!   ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      ¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI¸¦ È°¿ëÇÑ ¸®´ª½º ¼­¹ö°ü¸®
      DNS ¼³Á¤ °Ë»ç
      nagiosgraph ¼³Ä¡ ¹æ¹ý
      Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
      Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
      clusterssh

    [ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]




    ¿î¿µÁø : ÁÁÀºÁøÈ£(truefeel), ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
    2003³â 8¿ù 4ÀÏ~