sql >> Database teknologi >  >> RDS >> Oracle

Hvordan installeres oracle instantclient og pdo_oci på ubuntu-maskine?

Svaret er en replikering af denne artikel (på russisk), som igen er baseret på dette indlæg med nogle rettelser. Efter flere dages resultatløs søgning fungerede det problemfrit for mig.

Forudsætninger:

Du bør have administratorrettigheder

Du bør have php5 installeret med følgende pakker:

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

Du bør have libaio1 bibliotek installeret:

sudo apt-get install libaio1
 

Installation af Oracle Instant Client

Download Oracle instant-klient til din processorarkitektur og OS fra Oracle-webstedet (oracle.com/technetwork/database/features/instant-client/index-097480.html).

For Linux er der 2 muligheder for øjeblikkelig klient:RPM-pakke til Linux, CentOS, Fedora, Red Hat Enterprise Linux, Mandriva Linux, SUSE Linux, etc.ZIP-arkiv — for alle andre, der ikke understøtter RPM.

Der er 2 filer, der skal downloades:

instantclient-basic — Oracle instant client selv

instantclient-sdk — sæt af biblioteker til applikationsudvikling

Opret bibliotek til Oracle instant-klient ( /opt-bibliotek reserveret til softwareudvidelser passer godt til dette formål):

sudo mkdir -p /opt/oracle/
 

Flyt downloadede filer til /opt/oracle og skift til destinationsmappen (forudsat at du downloadede "zip"-arkiver til din bruger-"downloads"-mappe):

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

Udpakning af downloadede arkiver:

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

Endelig har vi instantclient_11_2 bibliotek oprettet i /opt/oracle til Oracle instant client 11.2.0.2.0. Omdøb denne mappe til instantclient (vær opmærksom på versionsnummeret) og skift til det:

sudo mv instantclient_11_2 instantclient
cd instantclient
 

Dernæst bliver vi nødt til at oprette flere yderligere mapper og symbolske links (vær opmærksom på versionsnummeret):

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 -
 

Opret konfigurationsfil, der indeholder navnet på mappen, hvor Oracle instant-klientbiblioteker skal søges efter, og aktivér den:

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

Så vidt der ikke er mappen /usr/include/php i Ubuntu, men klienten søger stadig efter det, opretter vi et symbollink til det tilsvarende - php5:

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

Installation af OCI8

Efter tidligere handlinger installeres oci8-udvidelsen med pecl kommando:

sudo pecl install oci8
 

du vil blive bedt om stien til Oracle instant-klient, svar med:

instantclient,/opt/oracle/instantclient
 

Oprettelse af udvidelsesforbindelsesfil:

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
 

Installation af PDO_OCI

For installation af PDO_OCI skal du downloade det fra pear repository (pear.php.net).

Opdater listen over pærepakker:

sudo pecl channel-update pear.php.net
 

Download og placer arkiv i midlertidigt bibliotek:

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

Uddrag arkivindhold:

sudo tar xvf PDO_OCI*.tgz
cd PDO_OCI*
 

Her bliver vi nødt til at ændre config.m4 fil, da den ikke indeholder oplysninger om vores version af Oracle instant client. Åbn filen og tilføj ændringer markeret med "+" (vær opmærksom på versionsnummer):

sudo vim config.m4
 

Nedenfor er diff af 2 filer:

*************** *** 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) ;; ***************

Forbered miljøet til php-udvidelse med phpize (php.net/manual/ru/install.pecl.phpize.php) kommando:

sudo phpize
 

Konfigurer pakkeinstallationsprogram og installer pakke (vær opmærksom på versionsnummer):

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

Opret forbindelsesfil til det:

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
 

Genstart apache og kontroller, om udvidelser er installeret:

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


  1. Sådan får du overordnet tabel, referencetabel, navn på fremmednøglebegrænsning og kolonner i SQL Server - SQL Server / TSQL vejledning del 71

  2. Omdøb en kolonne i MySQL

  3. Eksempel på Java i Oracle-database

  4. Android Pushing-opdateringer i Play Butik