Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

उबंटू मशीन पर ओरेकल इंस्टेंट क्लाइंट और pdo_oci कैसे स्थापित करें?

उत्तर इस लेख (रूसी में) की एक प्रतिकृति है जो बदले में कुछ सुधारों के साथ इस पोस्ट पर आधारित है। कई दिनों की निष्फल खोज के बाद इसने मेरे लिए सुचारू रूप से काम किया।

आवश्यकताएं:

आपके पास व्यवस्थापकीय विशेषाधिकार होने चाहिए

आपके पास निम्न पैकेज के साथ php5 स्थापित होना चाहिए:

sudo apt-get install php5 php5-dev php-pear php5-cli
sudo pecl install pdo

आपके पास libaio1 पुस्तकालय स्थापित होना चाहिए:

sudo apt-get install libaio1

Oracle Instant Client की स्थापना

Oracle वेबसाइट (oracle.com/technetwork/database/features/instant-client/index-097480.html) से अपने प्रोसेसर आर्किटेक्चर और OS के लिए Oracle इंस्टेंट क्लाइंट डाउलोड करें।

Linux के लिए तत्काल क्लाइंट के 2 विकल्प हैं:Linux के लिए RPM पैकेज, CentOS, Fedora, Red Hat Enterprise Linux, Mandriva Linux, SUSE Linux, आदि.ZIP संग्रह - अन्य सभी के लिए जो RPM का समर्थन नहीं करते हैं।

डाउनलोड करने के लिए 2 फ़ाइलें हैं:

इंस्टेंट क्लाइंट-बेसिक — Oracle इंस्टेंट क्लाइंट ही

तत्काल क्लाइंट-एसडीके - अनुप्रयोग विकास के लिए पुस्तकालयों का सेट

Oracle तत्काल क्लाइंट के लिए निर्देशिका बनाएं (/ऑप्ट निर्देशिका सॉफ़्टवेयर एक्सटेंशन के लिए आरक्षित है जो इस उद्देश्य के लिए उपयुक्त है):

sudo mkdir -p /opt/oracle/

डाउनलोड की गई फ़ाइलों को /opt/oracle में ले जाएं और गंतव्य फ़ोल्डर में स्विच करें (यह मानते हुए कि आपने "ज़िप" संग्रह को अपने उपयोगकर्ता "डाउनलोड" निर्देशिका में डाउनलोड किया है):

sudo mv ~/downloads/instantclient-*.zip /opt/oracle/
cd /opt/oracle/

डाउनलोड किए गए संग्रह निकालना:

sudo unzip instantclient-basic-*-*.zip
sudo unzip instantclient-sdk-*-*.zip

अंत में हमारे पास instantclient_11_2 है /opt/oracle . में बनाई गई निर्देशिका Oracle तत्काल क्लाइंट के लिए 11.2.0.2.0। इस निर्देशिका का नाम बदलकर instantclient कर दें (संस्करण संख्या पर ध्यान दें) और उस पर स्विच करें:

sudo mv instantclient_11_2 instantclient
cd instantclient

आगे हमें कई अतिरिक्त निर्देशिकाएँ और सिम्लिंक बनाने होंगे (संस्करण संख्या पर ध्यान दें):

sudo ln -s /opt/oracle/instantclient/libclntsh.so.* /opt/oracle/instantclient/libclntsh.so
sudo ln -s /opt/oracle/instantclient/libocci.so.* /opt/oracle/instantclient/libocci.so
sudo ln -s /opt/oracle/instantclient/ /opt/oracle/instantclient/lib

sudo mkdir -p include/oracle/11.2/
cd include/oracle/11.2/
sudo ln -s ../../../sdk/include client
cd -

sudo mkdir -p lib/oracle/11.2/client
cd lib/oracle/11.2/client
sudo ln -s ../../../ lib
cd -

निर्देशिका के नाम वाली कॉन्फ़िगरेशन फ़ाइल बनाएं जहां Oracle तत्काल क्लाइंट लाइब्रेरी की खोज की जानी है और इसे सक्षम करना है:

echo /opt/oracle/instantclient/ | sudo tee -a /etc/ld.so.conf.d/oracle.conf
sudo ldconfig

जहाँ तक निर्देशिका नहीं है /usr/include/php उबंटू में, लेकिन क्लाइंट अभी भी इसकी खोज कर रहा है, हम इसके समकक्ष सिमलिंक बनाएंगे - php5:

sudo ln -s /usr/include/php5 /usr/include/php

OCI8 की स्थापना

पिछली क्रियाओं के बाद oci8 एक्सटेंशन pecl . के साथ स्थापित किया गया है आदेश:

sudo pecl install oci8

आपको Oracle तत्काल क्लाइंट के पथ के लिए संकेत दिया जाएगा, इसके साथ प्रतिक्रिया दें:

instantclient,/opt/oracle/instantclient

एक्सटेंशन कनेक्शन फ़ाइल बनाना:

echo "; configuration for php oci8 module" | sudo tee /etc/php5/conf.d/oci8.ini
echo extension=oci8.so | sudo tee -a /etc/php5/conf.d/oci8.ini

PDO_OCI की स्थापना

PDO_OCI की स्थापना के लिए इसे नाशपाती भंडार (pear.php.net) से डाउनलोड करें।

नाशपाती पैकेज सूची अपडेट करें:

sudo pecl channel-update pear.php.net

डाउनलोड करें और संग्रह को अस्थायी निर्देशिका में रखें:

sudo mkdir -p /tmp/pear/download/
cd /tmp/pear/download/
sudo pecl download pdo_oci

संग्रह सामग्री निकालें:

sudo tar xvf PDO_OCI*.tgz
cd PDO_OCI*

यहां हमें config.m4 में संशोधन करना होगा फ़ाइल क्योंकि इसमें Oracle इंस्टेंट क्लाइंट के हमारे संस्करण की जानकारी नहीं है। फ़ाइल खोलें और "+" के साथ चिह्नित परिवर्तन जोड़ें (संस्करण संख्या पर ध्यान दें):

sudo vim config.m4

नीचे diff है 2 फाइलों में से:

***************
*** 7,12 ****
--- 7,14 ----
if test -s "$PDO_OCI_DIR/orainst/unix.rgs"; then
PDO_OCI_VERSION=`grep '"ocommon"' $PDO_OCI_DIR/orainst/unix.rgs | sed 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
test -z "$PDO_OCI_VERSION" && PDO_OCI_VERSION=7.3
+ elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
+ PDO_OCI_VERSION=11.2
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
PDO_OCI_VERSION=10.1 
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
***************
*** 119,124 ****
--- 121,129 ----
10.2)
PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
;;
+ 11.2)
+ PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+ ;;
*)
AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION)
;;
***************

PHP एक्सटेंशन के लिए phpize . के साथ वातावरण तैयार करें (php.net/manual/ru/install.pecl.phpize.php) कमांड:

sudo phpize

पैकेज इंस्टॉलर कॉन्फ़िगर करें और पैकेज इंस्टॉल करें (संस्करण संख्या पर ध्यान दें):

sudo ./configure --with-pdo-oci=instantclient,/opt/oracle/instantclient/,11.2
sudo make
sudo make install

इसके लिए कनेक्शन फाइल बनाएं:

echo "; configuration for php PDO_OCI module" | sudo tee /etc/php5/conf.d/pdo_oci.ini
echo extension=pdo_oci.so | sudo tee -a /etc/php5/conf.d/pdo_oci.ini

अपाचे को पुनरारंभ करें और जांचें कि क्या एक्सटेंशन इंस्टॉल किए गए थे:

sudo /etc/init.d/apache2 restart
php -m


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ईएम एसक्यूएल मॉनिटर प्रभाव

  2. ओरेकल में अलग CURRENT_TIMESTAMP और SYSDATE

  3. Oracle - मुझे स्टैंडअलोन प्रक्रियाओं या कार्यों के बजाय संकुल का उपयोग क्यों करना चाहिए

  4. Oracle EXPAND_SQL_TEXT का उपयोग करना

  5. पीएल/एसक्यूएल - जहां खंड में सूची चर का प्रयोग करें