HOME   ·Î±×ÀΠ  ȸ¿ø°¡ÀÔ
    
ȸ¿ø°¡ÀÔ
ºñ¹Ð¹øÈ£ ã±â ÀÚµ¿·Î±ä
ÀÌÀü°Ô½ÃÆÇ
   free_board
   °Ç°­°Ô½ÃÆÇ
   ¿À¶óŬDB
   Linux
   HTML/javascript
   Áú¹®°ú ´ä
È£¼­±â
   À̹ÌÁö°Ô½ÃÆÇ  
   °Ç°­°Ô½ÃÆÇ  
   À½¾ÇÀÚ·á  
   ¼ºÁØÀÌ °Ô½ÃÆÇ  
[ÀϹÝ] Linux ¹× Windows ȯ°æÀ» À§ÇÑ PHP, Oracle 10g Instant Client ¼³Ä¡
  È£¼® ´Ô²²¼­ ¾´ ±ÛÀÔ´Ï´Ù - 119.¢½.25.138 ÀÐÀ½:1647  
Linux ¹× Windows ȯ°æÀ» À§ÇÑ PHP, Oracle 10g Instant Client ¼³Ä¡
PHP 5.1.2 ¾÷µ¥ÀÌÆ®
ÀúÀÚ: Christopher Jones, Consulting Technical Staff, Oracle Corporation
¾÷µ¥ÀÌÆ®ÀÏ: 2006³â 1¿ù
Oracle 10g Instant Client (¹«·á·Î ´Ù¿î·Îµå°¡ °¡´ÉÇÕ´Ï´Ù)´Â PHP¸¦ ¿ø°Ý ¿À¶óŬ µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇϱâ À§ÇÑ °¡Àå ¼Õ½¬¿î ¹æ¹ýÀ¸·Î, 3 °³ÀÇ ¶óÀ̺귯¸®¸¸ ¼³Ä¡ÇÏ¸é »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.

PHP¿¡¼­ Oracle APIÀÇ ¾×¼¼½º¿¡ »ç¿ëµÇ´Â Instant Client ¶óÀ̺귯¸®´Â OCI8À̶ó´Â À̸§À¸·Î ºÒ¸³´Ï´Ù (ÀÌ À̸§Àº Oracle8 ¹öÀü¿¡¼­ ÃÖÃÊ·Î °³¹ßµÇ¸é¼­ ºÙ¿©Áø °ÍÀÔ´Ï´Ù). PHP Oracle 8 ÇÔ¼ö ¸¦ ÀÌ¿ëÇÏ¿© Oracle 8.1.7, 9.x, 10.x¸¦ Á÷Á¢ È£ÃâÇÒ ¼ö ÀÖ°í, ¶Ç´Â PEAR MDB2¿Í ADOdb µîÀÇ Ãß»óÈ­ Ŭ·¡½º(abstraction class)¸¦ ÇÔ²² ÀÌ¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

±¸ ¹öÀüÀÇ PHP ¡°oracle¡± ÀͽºÅÙ¼ÇÀ» Instant Client¿¡¼­ ÀÌ¿ëÇÏ´Â °Íµµ °¡´ÉÇÏÁö¸¸, ÀÌ °æ¿ì¿¡´Â (¿À¶óŬ¿¡ ÀÇÇØ ´õ ÀÌ»ó Áö¿øµÇÁö ¾Ê´Â) ±¸ ¹öÀüÀÇ Oracle API°¡ »ç¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î, PHP Ä¿¹Â´ÏƼ¿Í ¿À¶óŬÀº »õ·Î¿î °³¹ßÀÛ¾÷¿¡¼­ ÀÌ ÀͽºÅÙ¼ÇÀ» »ç¿ëÇÏ´Â °ÍÀ» ±ÇÀåÇÏÁö ¾Ê°í ÀÖ½À´Ï´Ù.

Apache ȯ°æ¿¡¼­ PHP 4 ¶Ç´Â PHP 5¿Í ÇÔ²² Instant Client¸¦ »ç¿ëÇϱâ À§ÇÑ ¹æ¹ýÀÌ ¾Æ·¡¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù. (5.1.2¿Í OCI8 ÀͽºÅټǿ¡ °ü·ÃÇÑ »ó¼¼ÇÑ Á¤º¸´Â ÀÌ ¼½¼ÇÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù.) Instant Client¿¡´Â ¿À¶óŬ µ¥ÀÌÅͺ£À̽º°¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¹Ç·Î, º°µµÀÇ µ¥ÀÌÅͺ£À̽º ȯ°æÀÌ ¹Ì¸® ±¸ÃàµÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù.

ÀϹÝÀûÀ¸·Î µ¥ÀÌÅͺ£À̽º´Â ´Ù¸¥ ¸Ó½Å¿¡¼­ ¿î¿µµË´Ï´Ù. µ¥ÀÌÅͺ£À̽º°¡ ·ÎÄÿ¡ ¼³Ä¡µÈ °æ¿ì¿¡´Â, ÇÊ¿äÇÑ ¿À¶óŬ ÄÄÆ÷³ÍÆ®°¡ ÀÌ¹Ì »ç¿ë °¡´ÉÇϹǷÎ, Instant Client¸¦ µû·Î ¼³Ä¡ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.

¼ÒÇÁÆ®¿þ¾î ¿ä±¸»çÇ×: ¼ÒÇÁÆ®¿þ¾î Âü°í
Oracle Instant Client "Instant Client Package - Basic"À» ´Ù¿î·ÎµåÇÕ´Ï´Ù. Linux ȯ°æÀÇ °æ¿ì, "Instant Client Package - SDK"¸¦ ÇÔ²² ´Ù¿î·ÎµåÇÕ´Ï´Ù.
Apache HTTPD Server PHP Ä¿¹Â´ÏƼ´Â Apache 1.3À» ±ÇÀåÇÏ°í ÀÖ½À´Ï´Ù.
PHP - PHP Hypertext Processor Version 4.3 ¶Ç´Â ÀÌÈÄ ¹öÀü

Windows ȯ°æ¿¡¼­ PHP OCI8 Extension È°¼ºÈ­Çϱâ

Instant Client ¹ÙÀ̳ʸ®´Â PHP¿¡ Æ÷ÇÔµÈ Windows¿ë ¹ÙÀ̳ʸ®¸¦ º¸¿ÏÇÏ´Â ¿ªÇÒÀ» ´ã´çÇÏ°Ô µË´Ï´Ù.

(installer build°¡ ¾Æ´Ñ) PHP ¹ÙÀ̳ʸ® zip ÆÄÀÏ°ú Apache¸¦ ´Ù¿î·ÎµåÇÕ´Ï´Ù. PHP ¸Å´º¾óÀÇ Windows ½Ã½ºÅÛ ¼³Ä¡ °¡À̵带 Âü°íÇÏ¿© ¼³Ä¡ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù. OTNÀÇ ¿ÀÇ ¼Ò½º °³¹ßÀÚ ¼¾ÅÍ¿¡¼­ "Oracle, PHP, and Apache on Windows 2000/XP ȯ°æÀÇ Oracle, PHP, Apache ¼³Ä¡,"¿Í °°Àº À¯¿ëÇÑ ±â¼úÁ¤º¸¸¦ Âü°íÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹®¼­¿¡´Â Oracle 10g¸¦ Àüü ¼³Ä¡ÇÏ´Â ¹æ¹ýÀÌ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù (Instant Client ¼³Ä¡ ½Ã¿¡´Â ÀÌ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù).

´ÙÀ½ ´Ü°è·Î ÁøÇàÇϱâ Àü¿¡ PHP°¡ Á¦´ë·Î µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇÕ´Ï´Ù. ÀÌ ´Ü°è¿¡¼­´Â ¿À¶óŬ ¿¬µ¿ ±â´ÉÀº Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

OTNÀÇ Instant Client ÆäÀÌÁö¿¡¼­ Instant Client Basic package for Windows¸¦ ´Ù¿î·ÎµåÇÕ´Ï´Ù. zip ÆÄÀÏÀÇ »çÀÌÁî´Â ´ë·« 30 MB Á¤µµ µË´Ï´Ù.

¼­ºêµð·ºÅ丮(¿¹: c:\instantclient10_1)¸¦ »ý¼ºÇÏ°í zip ÆÄÀϷκÎÅÍ ¾Æ·¡ ¶óÀ̺귯¸®¸¦ º¹»çÇÕ´Ï´Ù:

oraociei10.dll
orannzsbb10.dll
oci.dll
3°³ ÆÄÀÏÀÇ ÃÑ ¿ë·®Àº ¾à 80MB Á¤µµ µË´Ï´Ù.

PHPÀÇ ±¸ ¹öÀü oracle extensionÀ» »ç¿ëÇÏ·Á´Â °æ¿ì, oci.dll ´ë½Å ociw32.dllÀ» º¹»çÇÕ´Ï´Ù (ÀÌ ÀͽºÅÙ¼ÇÀ» È°¼ºÈ­ÇÏ·Á¸é php.ini ÆÄÀÏ¿¡¼­ "extension=php_oracle.dll"·Î ¼³Á¤ÇÕ´Ï´Ù.)

PATH ȯ°æº¯¼ö¸¦ ÆíÁýÇÏ¿© ¡°c:\instantclient10_1¡±°¡ ´Ù¸¥ ¿À¶óŬ µð·ºÅ丮ÀÇ ¾Õ¿¡ À§Ä¡ÇÏ°Ô ÇÕ´Ï´Ù.

Windows 2000ÀÇ °æ¿ì, ½ÃÀÛ -> ¼³Á¤ -> Á¦¾îÆÇ -> ½Ã½ºÅÛ -> °í±Þ -> ȯ°æ º¯¼ö·Î À̵¿ÇÏ¿© ½Ã½ºÅÛ º¯¼ö ¸ñ·ÏÀÇ PATH¸¦ ÆíÁýÇÕ´Ï´Ù.

tnsnames.ora ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© Oracle Net ¼­ºñ½º ³×ÀÓÀ» Á¤ÀÇÇÑ °æ¿ì, tnsnames.ora¸¦ c:\instantclient10_1·Î º¹»çÇÏ°í »ç¿ëÀÚ È¯°æº¯¼ö TNS_ADMINÀ» c:\instantclient10_1·Î º¹»çÇÕ´Ï´Ù. µðÆúÆ® ¼­ºñ½º ³×ÀÓÀº »ç¿ëÀÚ È¯°æº¯¼ö LOCAL¿¡ Ãß°¡·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

NLS_LANG°ú °°Àº Oracle globalization language ȯ°æº¯¼ö¸¦ ÇÊ¿ä¿¡ µû¶ó ¼³Á¤ÇÕ´Ï´Ù. ¾Æ¹«°Íµµ ¼³Á¤µÇÁö ¾ÊÀº °æ¿ì, µðÆúÆ® ·ÎÄà ȯ°æÀÌ ±×´ë·Î »ç¿ëµË´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â An Overview on Globalizing Oracle PHP Applications ¹®¼­¸¦ Âü°íÇϽʽÿÀ.

Unset unnecessary Oracle variables such as ORACLE_HOME and ORACLE_SID.

php.ini¸¦ ÆíÁýÇÏ°í OCI8 ÀͽºÅÙ¼ÇÀÇ Ä¿¸àÆ® ±âÈ£¸¦ »èÁ¦ÇÕ´Ï´Ù:

extension=php_oci8.dll

extension_dir Ç׸ñ¿¡ PHP ÀͽºÅÙ¼Ç DLLÀÇ Àüü °æ·Î¸¦ ¼³Á¤ÇÕ´Ï´Ù. PHP4ÀÇ °æ¿ì DLLÀº PHP ¼ÒÇÁÆ®¿þ¾îÀÇ ¡°extensions¡± ¼­ºêµð·ºÅ丮¿¡ À§Ä¡ÇÕ´Ï´Ù. PHP5¿¡¼­´Â ¡°ext¡± ¼­ºêµð·ºÅ丮¿¡ À§Ä¡ÇÕ´Ï´Ù.

Apache¸¦ Àç½ÃÀÛÇÕ´Ï´Ù.

ÀͽºÅÙ¼ÇÀÌ ¼³Á¤µÇ¾úÀ½À» È®ÀÎÇß´Ù¸é, À¥ ¼­¹ö¿¡¼­ Á¢±ÙÇÒ ¼ö ÀÖ´Â À§Ä¡¿¡ °£´ÜÇÑ PHP ½ºÅ©¸³Æ®(phpinfo.php)¸¦ »ý¼ºÇÕ´Ï´Ù.

<?php
  phpinfo();
?>

"http://" URLÀ» »ç¿ëÇÏ¿© ºê¶ó¿ìÀú¿¡¼­ ½ºÅ©¸³Æ®¸¦ ·ÎµåÇÕ´Ï´Ù. ºê¶ó¿ìÀú ÆäÀÌÁöÀÇ "oci8" ¼½¼Ç¿¡¼­ "OCI8 Support enabled"¶ó´Â ¹®±¸¸¦ È®ÀÎÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.

Linux¿¡¼­ PHP OCI8 Extension È°¼ºÈ­Çϱâ
Linux ȯ°æ¿¡¼­ ¿À¶óŬ ¿¬°áÀ» Ãß°¡ÇÏ·Á¸é, ¸ÕÀú PHP¸¦ ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÕ´Ï´Ù.

OTNÀÇ ¿ÀÇ ¼Ò½º °³¹ßÀÚ ¼¾ÅÍ¿¡¼­ " Linux¿¡¼­ Oracle, PHP, Apache ¼³Ä¡Çϱâ",¿Í °°Àº À¯¿ëÇÑ ±â¼úÁ¤º¸¸¦ Âü°íÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹®¼­¿¡´Â Oracle 10g¸¦ Àüü ¼³Ä¡ÇÏ´Â ¹æ¹ýÀÌ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù (Instant Client ¼³Ä¡ ½Ã¿¡´Â ÀÌ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù.

Apache¸¦ ´Ù¿î·ÎµåÇÏ¿© ¼³Ä¡ÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ È¨ µð·ºÅ丮¿¡ Apache¸¦ ¼³Ä¡ÇÏ´Â ¿¹°¡ ¾Æ·¡¿Í °°½À´Ï´Ù:
cd apache_1.3.31
./configure --enable-module=so --prefix=$HOME/apache --with-port=8888
make
make install

$HOME/apache/conf/httpd.conÀ» ÆíÁýÇÏ¿© ¾Æ·¡ Ç׸ñÀ» Ãß°¡ÇÕ´Ï´Ù:

AddType application/x-httpd-php        .php
AddType application/x-httpd-php-source .phps

PHP¸¦ ´Ù¿î·ÎµåÇÏ¿© tar ¾ÐÃàÀ» DZ´Ï´Ù.
OTNÀÇ Instant Client ÆäÀÌÁö¿¡¼­ Basic/SDK Instant Client Package¸¦ ´Ù¿î·ÎµåÇÕ´Ï´Ù. µÎ RPMÀÇ Àüü Å©±â´Â ¾à 30MB °¡·® µË´Ï´Ù.
root »ç¿ëÀÚ·Î RPMÀ» ¼³Ä¡ÇÕ´Ï´Ù.
rpm -Uvh oracle-instantclient-basic-10.1.0.3-1.i386.rpm
rpm -Uvh oracle-instantclient-devel-10.1.0.3-1.i386.rpm

ù ¹ø° RPMÀº ¿À¶óŬ ¶óÀ̺귯¸®¸¦ /usr/lib/oracle/10.1.0.3/client/lib¿¡ ¼³Ä¡ÇÏ°í, µÎ ¹ø° RPMÀº /usr/include/oracle/10.1.0.3/client¿¡ Çì´õ¸¦ »ý¼ºÇÕ´Ï´Ù.

¹é¾÷ ÈÄ ÀÌ ÆÐÄ¡¸¦ PHPÀÇ ext/oci8/config.m4¿¡ Àû¿ëÇÕ´Ï´Ù. ÆÐÄ¡ ¶óÀÎ ³Ñ¹ö´Â PHP 4.3.9¸¦ ±âÁØÀ¸·Î ÇÏ°í ÀÖ½À´Ï´Ù. (PHP 4.3.11¿Í 5.0.4ÀÇ °æ¿ìó·³) PHP bug 31084°¡ ÇØ°áµÇ¾ú´Ù¸é ÀÌ ÆÐÄ¡¸¦ Àû¿ëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
PHP 4.3.9 ¶Ç´Â 4.3.10À» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ÀÌ ÆÐÄ¡¸¦ ÆÄÀÏ(¿¹: php_oci8ic_buildpatch)¿¡ ÀúÀåÇÑ ÈÄ ¾Æ·¡¿Í °°ÀÌ ¼³Ä¡ÇÕ´Ï´Ù:

patch -u config.m4 php_oci8ic_buildpatch

À§ ÆÐÄ¡¸¦ ½ÇÇàÇÏ¸é »õ·Î¿î PHP ¼³Á¤ ¸Å°³º¯¼ö --with-oci8-instant-client[=DIR]ÀÌ »ý¼ºµË´Ï´Ù. Linux ¿î¿µÃ¼Á¦´Â ±âº»ÀûÀ¸·Î RPMÀ» ÅëÇØ ¼³Ä¡µÈ Instant ClientÀÇ ÃֽŠ¹öÀüÀ» »ç¿ëÇÕ´Ï´Ù. ¿À¶óŬ ¶óÀ̺귯¸®ÀÇ °æ·Î¸¦ ÁöÁ¤ÇÔÀ¸·Î½á ´Ù¸¥ ¹öÀüÀ» »ç¿ëÇϵµ·Ï ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¾î¶² °æ¿ìµç ¹öÀü¿¡ ¸Â´Â SDK Çì´õ°¡ ÀÚµ¿ÀûÀ¸·Î Àû¿ëµË´Ï´Ù.

»õ·Î¿î ¸Å°³º¯¼ö´Â ±âÁ¸ÀÇ --with-oci8 ¸Å°³º¯¼ö¸¦ ´ëüÇÕ´Ï´Ù.

Âü°í: Linux ÀÌ¿ÜÀÇ ¿î¿µÃ¼Á¦¿¡¼­´Â, »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ µð·ºÅ丮¿¡ Instant Client ÆÐÅ°ÁöÀÇ ¾ÐÃàÀ» Ç®°Ô µË´Ï´Ù. --with-oci8-instant-client ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ·Á¸é ÀÌ µð·ºÅ丮¸¦ ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù (¿¹: --with-oci8-instant-client=/home/instantclient10_1) Instant Client SDK´Â Basic Package¿Í °°Àº µð·ºÅ丮¿¡ ¾ÐÃàÀ» Ç®¾î¾ß¸¸, À籸¼ºµÈ configure ½ºÅ©¸³Æ®¿¡¼­ Çì´õ ÆÄÀÏÀÇ ¼­ºêµð·ºÅ丮¸¦ Á¤È®ÇÏ°Ô Ã£À» ¼ö ÀÖ½À´Ï´Ù.

¡°configure¡± ½ºÅ©¸³Æ®¸¦ ÃÖ»óÀ§ PHP µð·ºÅ丮¿¡¼­ rebuild ÇÕ´Ï´Ù.
cd php-4.3.9
rm -rf autom4te.cache config.cache
./buildconf --force

»õ·Î¿î ¿É¼ÇÀ» ÀÌ¿ëÇÏ¿© configure¸¦ ½ÇÇàÇÕ´Ï´Ù. Ȩ µð·ºÅ丮¿¡ Apache¸¦ ¼³Ä¡ÇÑ È¯°æ¿¡¼­ÀÇ ½ÇÇà ¿¹°¡ ¾Æ·¡¿Í °°½À´Ï´Ù.
   ./configure \
      --with-oci8-instant-client \
      --prefix=$HOME/php --with-apxs=$HOME/apache/bin/apxs \
      --enable-sigchild --with-config-file-path=$HOME/apache/conf

PHP¸¦ rebuildÇÕ´Ï´Ù.
make
make install

php.ini ÆÄÀÏÀ» --with-config-file-path¿¡¼­ ÁöÁ¤µÈ À§Ä¡¿¡ º¹»çÇÕ´Ï´Ù.
cp php.ini-recommended $HOME/apache/conf/php.ini

LD_LIBRARY_PATH¸¦ /usr/lib/oracle/10.1.0.3/client/libÀ¸·Î ¼³Á¤ÇÏ°í Apache¸¦ Àç½ÃÀÛÇÕ´Ï´Ù.
tnsnames.ora ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© Oracle Net ¼­ºñ½º ³×ÀÓÀ» Á¤ÀÇÇÑ °æ¿ì, TNS_ADMINÀ» ÆÄÀÏÀÌ À§Ä¡ÇÑ µð·ºÅ丮·Î ¼³Á¤ÇØ ÁÝ´Ï´Ù.

Apache¸¦ ½ÃÀÛÇϱâ Àü¿¡ ¸ðµç ¿À¶óŬ ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇØ ÁÖ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ½ºÅ©¸³Æ®ÀÇ ¿¹°¡ ¾Æ·¡¿Í °°½À´Ï´Ù:

#!/bin/sh

APACHEHOME=/home/apache

LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.3/client/lib:${LD_LIBRARY_PATH}
TNS_ADMIN=/home
export LD_LIBRARY_PATH TNS_ADMIN

echo Starting Apache
$APACHEHOME/apachectl start

ÀͽºÅÙ¼ÇÀÇ ¼³Á¤À» È®ÀÎÇÑ ÈÄ, À¥ ¼­¹ö°¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â À§Ä¡¿¡ °£´ÜÇÑ PHP ½ºÅ©¸³Æ®(phpinfo.php)¸¦ »ý¼ºÇÕ´Ï´Ù.
<?php
  phpinfo();
?>

URL("http://localhost:8888/<path>/phpinfo.php¡±)À» »ç¿ëÇÏ¿© ½ºÅ©¸³Æ®¸¦ ºê¶ó¿ìÀú¿¡ ·ÎµåÇÕ´Ï´Ù. ºê¶ó¿ìÀú ÆäÀÌÁöÀÇ "oci8" ¼½¼Ç¿¡¼­ "OCI8 Support enabled"¶ó´Â ¹®±¸¸¦ È®ÀÎÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.

¿À¶óŬ·ÎÀÇ ¿¬°á
¿À¶óŬ ¿¬°áÀ» »ý¼ºÇÏ·Á¸é ¸ÕÀú ¿À¶óŬ ¿¬°á Á¤º¸¸¦ OCILogon()¿¡ Àü´ÞÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. Instant Client¿Í °ü·ÃµÈ ¸ðµç ÅøÀº µ¥ÀÌÅͺ£À̽º ¼­¹öÀÇ ¡°¿ø°Ý¡±¿¡ À§Ä¡Çϸç, µû¶ó¼­ »ç¿ëÀÚ À̸§, ¾ÏÈ£¿Í ÇÔ²² Oracle Net connection identifier°¡ »ç¿ëµÇ¾î¾ß ÇÕ´Ï´Ù. ±âÁ¸¿¡ ±¸¼ºµÈ ¿À¶óŬ µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ¿¬°á Á¤º¸´Â ¿ÜºÎ¿¡¼­ ¡°well-known¡± Á¤º¸·Î È®ÀÎÀÌ °¡´ÉÇÕ´Ï´Ù. »õ·Î ±¸¼ºµÈ ½Ã½ºÅÛ¿¡¼­´Â µ¥ÀÌÅͺ£À̽º ¼Â¾÷ °úÁ¤¿¡¼­ ¿À¶óŬ ¼³Ä¡ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ¼³Á¤µË´Ï´Ù. ÀνºÅç·¯´Â Oracle Net ¼³Á¤ ¹× ¼­ºñ½º ³×ÀÓ »ý¼º ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.

»õ·Î¿î µ¥ÀÌÅͺ£À̽º¿¡¼­ HR¿Í °°Àº »ùÇà ½ºÅ°¸¶¸¦ »ç¿ëÇÏ·Á¸é unlock ÀÛ¾÷À» ¼öÇàÇÏ°í ¾ÏÈ£¸¦ ÀÔ·ÂÇØ¾ß ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸¦ À§ÇØ SQL*Plus¿¡¼­ SYSTEM »ç¿ëÀÚ·Î ¿¬°áÇÑ µÚ ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇØ ÁÝ´Ï´Ù:

ALTER USER username IDENTIFIED BY new_password ACCOUNT UNLOCK;

¿¬°á Á¤º¸¸¦ PHP¿¡ Àü´ÞÇÏ´Â ¹æ¹ý¿¡´Â ¿©·¯ °¡Áö°¡ ÀÖ½À´Ï´Ù. ¸ÕÀú Oracle 10gÀÇ Easy Connect ½ÅÅýº¸¦ ÀÌ¿ëÇÏ¿© mymachine¿¡¼­ ½ÇÇà ÁßÀÎ the MYDB µ¥ÀÌÅͺ£À̽º ¼­ºñ½ºÀÇ HR ½ºÅ°¸¶¿¡ ¿¬°áÇÏ´Â ¹æ¹ýÀÌ ¾Æ·¡¿Í °°½À´Ï´Ù. ÀÌ °æ¿ì tnsnames.ora ¶Ç´Â ´Ù¸¥ Oracle Network ÆÄÀÏÀÌ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù:
$c = OCILogon('hr', 'hr_password', '//mymachine.mydomain/MYDB');

Easy Connect ½ÅÅýº °ü·Ã ¿À¶óŬ ¹®¼­(Using the Easy Connect Naming Method)¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

¶Ç´Â, /home/tnsnames.ora¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀÌ Æ÷ÇÔµÈ °æ¿ì:
MYDB =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.mydomain)(PORT = 1521))
   (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYDB)
    )
  )

±×¸®°í TNS_ADMIN ȯ°æº¯¼ö°¡ (Apache ½ÃÀÛ ÀÌÀü¿¡) /homeÀ¸·Î ¼³Á¤µÈ °æ¿ì, ¿¬°á ¹®ÀÚ¿­À» ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù:

$c = OCILogon('hr', 'hr_password', 'MYDB');

     
ȯ°æº¯¼ö LOCAL(Windows) ¶Ç´Â TWO_TASK(Linux)°¡ MYDB·Î ¼³Á¤µÈ °æ¿ì, MYDB·ÎÀÇ ¿¬°áÀ» À§ÇÑ ¹®ÀÚ¿­ÀÌ ´ÙÀ½°ú °°½À´Ï´Ù:
$c = OCILogon('hr', 'hr_password');

OracleÀÇ »ç¿ë

±âº»ÀûÀÎ ¿¬°á¿¡ ¼º°øÇß´Ù¸é, °£´ÜÇÑ ½ºÅ©¸³Æ®(testoci.php)¸¦ Å×½ºÆ®ÇØ º¼ Â÷·ÊÀÔ´Ï´Ù. »ç¿ëÀÚÀÇ µ¥ÀÌÅͺ£À̽º ȯ°æ¿¡ ¸Â°Ô ¿¬°á ¼³Á¤À» ¼öÁ¤ÇÑ ÈÄ ºê¶ó¿ìÀú¿¡¼­ ½ºÅ©¸³Æ®¸¦ ·ÎµåÇÕ´Ï´Ù. HR »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ¸ðµç Å×À̺íÀÇ ¸ñ·ÏÀ» Ç¥½ÃÇÏ´Â ½ºÅ©¸³Æ® ¿¹°¡ ¾Æ·¡¿Í °°½À´Ï´Ù:

<?php

$conn = OCILogon("hr", "hr_password", '//mymachine.mydomain:port/MYDB);

$query = 'select table_name from user_tables';

$stid = OCIParse($conn, $query);
OCIExecute($stid, OCI_DEFAULT);
 while ($succ = OCIFetchInto($stid, $row)) {
    foreach ($row as $item) {
      echo $item." ";
    }
    echo "<br>\n";
 }

 OCILogoff($conn);

 ?>

Æ®·¯ºí½´ÆÃ
Oracle PHP Troubleshooting FAQ¿¡¼­ ¿À¶óŬ ¿¬°á¿¡ °ü·ÃÇÑ À¯¿ëÇÑ Á¤º¸¸¦ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

¿À¶óŬÀÇ SQL*Plus Ä¿¸Çµå¶óÀÎ ÅøÀ» Instant Client ÆäÀÌÁö¿¡¼­ ´Ù¿î·ÎµåÇÏ¿© ȯ°æ ¹× ¿¬°á ¹®Á¦¸¦ ÇØ°áÇϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. SQL*Plus Instant Client Release Notes¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

SQL*Plus¸¦ ÀÌ¿ëÇÏ¿© ȯ°æÀ» Á¡°ËÇÏ´Â ¹æ¹ýÀº phpino.php ½ºÅ©¸³Æ®ÀÇ ¿¹¿Í µ¿ÀÏÇÕ´Ï´Ù.

Windows µµ¿ò¸»

phpinfo.php ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇßÀ» ¶§ ¡°oci8¡± ¼½¼Ç¿¡¼­ "OCI8 Support enabled" ¸Þ½ÃÁö¸¦ È®ÀÎÇÒ ¼ö ¾ø´Ù¸é, php.ini ÆÄÀÏ¿¡¼­ "extension=php_oci8.dll" Ç׸ñÀÇ ÁÖ¼® 󸮰¡ ÇØÁ¦µÇ¾ú´ÂÁö Á¡°ËÇÕ´Ï´Ù.

PATH°¡ À߸ø ¼³Á¤µÇ¾î Àְųª ¿À¶óŬ ¶óÀ̺귯¸®¸¦ ãÀ» ¼ö ¾ø´Â °æ¿ì, Apache ½ÃÀÛ ½Ã ´ÙÀ½°ú °°Àº °æ°í ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù: "The dynamic link library OCI.dll could not be found in the specified path." phpinfo() ÆäÀÌÁöÀÇ Environment ¼½¼Ç¿¡¼­, PHP¿¡ ÀÇÇØ ½ÇÁ¦·Î »ç¿ëµÇ´Â PATH¿Í Oracle º¯¼öÀÇ °ªÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

php.ini¿¡ extension_dir ¸Å°³º¯¼ö°¡ ¿Ã¹Ù¸£°Ô ¼³Á¤µÇÁö ¾ÊÀº °æ¿ì Apache ½ÃÀÛ ½Ã ´ÙÀ½°ú °°Àº °æ°í ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù: "PHP Startup: Unable to load dynamic library php_oci8.dll."

Linux µµ¿ò¸»

config.m4°¡ ¿Ã¹Ù¸£°Ô ÆÐÄ¡µÇ¾ú´ÂÁö È®ÀÎÇÕ´Ï´Ù. ¡°configure¡±ÀÇ ½ÇÇà¿¡ ½ÇÆÐÇÑ °æ¿ì, config.log ÆÄÀÏÀ» Á¡°ËÇÕ´Ï´Ù. config.m4¸¦ ÀÌÀü »óÅ·ΠµÇµ¹¸®°í ij½Ã ÆÄÀÏÀ» Á¦°ÅÇÑ ÈÄ ¡°./buildconf --force and configure¡±¸¦ ½ÇÇàÇÑ ´ÙÀ½, ¹ß»ýÇÑ ¹®Á¦°¡ ÆÐÄ¡ ÀÛ¾÷°ú °ü·ÃµÈ °ÍÀÎÁö È®ÀÎÇÕ´Ï´Ù.

¡°configure¡±ÀÇ Å¸ÀÓ½ºÅÆÇÁ°¡ ÇöÀç ½ÃÁ¡À¸·Î ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù. ij½Ã ÆÄÀÏÀ» ¸ðµÎ Á¦°ÅÇÏ°í ÇÊ¿äÇÑ °æ¿ì rebuild ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.

Apache¸¦ ½ÃÀÛÇÏ´Â ½©¿¡¼­ ÇÊ¿äÇÑ ¸ðµç Oracle ȯ°æº¯¼ö¸¦ ¼³Á¤ÇØ ÁÝ´Ï´Ù.

PHP 5.1.2 ¹× ÀÌÈÄ ¹öÀü

¡°re-factored¡± OCI8 ÀͽºÅÙ¼ÇÀº Instant Client¸¦ À§ÇÑ »õ·Î¿î ½ÅÅýº¸¦ Áö¿øÇÕ´Ï´Ù. re-factored ÀͽºÅÙ¼ÇÀº PHP 5.1.2¿¡ óÀ½À¸·Î Æ÷ÇԵǾúÀ¸¸ç, ÀÌÀü ¹öÀüÀÇ PHPÀÇ °æ¿ìpecl.php.net/package/oci8, pecl4win.php.net/ext.php/php_oci8.dll¿¡¼­ ´Ù¿î·ÎµåÇÒ ¼ö ÀÖ½À´Ï´Ù.

Technical Note¿¡ ¸í½ÃµÈ ´ë·Î Instant Client RPMÀ» ¼³Ä¡Çß´Ù¸é, PHP¸¦ ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇØ ÁÝ´Ï´Ù:

./configure \
    --with-oci8=instantclient,/usr/lib/oracle/10.1.0.3/client/lib \
    --prefix=$HOME/php --with-apxs=$HOME/apache/bin/a
pxs \
    --enable-sigchild --with-config-file-path=$HOME/apache/conf

Instant Client Basic, SDK zip ÆÄÀÏÀ» »ç¿ëÇÏ´Â °æ¿ì, ¾ÐÃàÀ» Ǭ µð·ºÅ丮ÀÇ --with-oci8 ¿É¼ÇÀ» º¯°æÇØ ÁÝ´Ï´Ù. ±× ¿¹°¡ ¾Æ·¡¿Í °°½À´Ï´Ù:
--with-oci8=instantclient,$HOME/instantclient10_1

re-factored ¹öÀüÀÌ ¿Ã¹Ù¸£°Ô ¼³Ä¡µÇ¾ú´ÂÁö Á¡°ËÇÏ·Á¸é phpinfo() ½ÇÇà °á°ú¸¦ È®ÀÎÇÏ¸é µË´Ï´Ù. ¡°oci8.¡± Á¢µÎ¾î·Î ½ÃÀ۵Ǵ 7°¡Áö ¸Å°³º¯¼ö¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù (ÀÌÀü ¹öÀü¿¡¼­´Â ÀÌ ¸Å°³º¯¼ö°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù).
°á·Ð

ÀÌ ¹®¼­°¡ ¿©·¯ºÐ¿¡°Ô µµ¿òÀÌ µÇ¾ú±â¸¦ ¹Ù¶ø´Ï´Ù. Áú¹®À̳ª ÀÇ°ßÀº OTN Instant Client ¶Ç´Â PHP Æ÷·³¿¡ ¿Ã·Á Áֽñ⠹ٶø´Ï´Ù.


¸ñ·Ï

ºÐ·ù ¼±ÅÃ
138 ÀÏ¹Ý ÀÏ°ýó¸® Äõ¸®¹® È£¼® 13-02-21 1847
137 ÀÏ¹Ý mysql Æ©´× ÃÖÀûÈ­ È£¼® 12-04-07 1802
136 ÀÏ¹Ý ¿À¶óŬÀÇ sequence ÃʱâÈ­ È£¼® 11-11-24 2253
135 ÀÏ¹Ý ·¹µåÇÞ ¿£ÅÍÇÁ¶óÀÌÁî4¿¡ ¿À¶óŬ9i(9.2.0.4)¼³Ä¡ È£¼® 11-10-07 1818
134 ÀÏ¹Ý not in º¸´Ù´Â exist ¸¦ ¸¹ÀÌ »ç¿ëÇغ¸ÀÚ È£¼® 11-04-04 2084
133 ÀÏ¹Ý INDEXÀÇ »ç¿ë¿©ºÎ È®ÀÎÇϱâ È£¼® 11-04-01 1571
132 ÀÏ¹Ý Standby Database ±¸Ãà[ GOOD GOOD ] È£¼® 11-03-16 1640
ÀÏ¹Ý Linux ¹× Windows ȯ°æÀ» À§ÇÑ PHP, Oracle 10g Instant Client ¼³Ä¡ È£¼® 11-01-07 1648
130 ÀÏ¹Ý Åäµå³ª ¿À·»Áö ´ëü ¹«·á ¿À¶óŬ Åø È£¼® 10-12-30 1939
129 ÀÏ¹Ý ½ÃÄö½º »ç¿ë¹æ¹ý ( SEQUENCE ) È£¼® 10-04-22 2991
128 ÀÏ¹Ý ¿À¶óŬ ¶óÀ̼¾½º À¯Á® »êÁ¤¹ý È£¼® 10-04-13 2856
127 ÀÏ¹Ý ¿À¶óŬ ¹é¾÷ ¹æ¹ý ( cold ¹é¾÷, hot¹é¾÷, export ¹é¾÷ ) È£¼® 10-02-17 3458
126 ÀÏ¹Ý ¿À¶óŬ ¼³Ä¡½Ã ÀÚ¹Ù°ü·Ã ¿¡·¯Ã³¸® ÄÉÀ̽º È£¼® 10-02-17 2708
125 ÀÏ¹Ý pfile°ú spfile ÀÇ Â÷ÀÌÁ¡ È£¼® 10-02-01 3393
124 ÀÏ¹Ý Standby Database ±¸Ãà È£¼® 10-01-31 2803
1 [2] [3] [4] [5] [6] [7] [8] [9] [10]  ´ÙÀ½¸Ç³¡

 
Copyright © zenos.pe.kr. All rights reserved.