Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara menginstal Oracle instantclient dan pdo_oci di mesin ubuntu?

Jawabannya adalah replikasi artikel ini (dalam bahasa Rusia) yang pada gilirannya didasarkan pada posting ini dengan beberapa koreksi. Setelah beberapa hari pencarian tanpa hasil, itu bekerja dengan lancar untuk saya.

Prasyarat:

Anda harus memiliki hak administrator

Anda harus menginstal php5 dengan paket-paket berikut:

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

Anda harus menginstal pustaka libaio1:

sudo apt-get install libaio1

Instalasi Oracle Instant Client

Unduh klien instan Oracle untuk arsitektur prosesor dan OS Anda dari situs web Oracle (oracle.com/technetwork/database/features/instant-client/index-097480.html).

Untuk Linux ada 2 pilihan klien instan:paket RPM untuk Linux, CentOS, Fedora, Red Hat Enterprise Linux, Mandriva Linux, SUSE Linux, dll. Arsip ZIP — untuk semua yang tidak mendukung RPM.

Ada 2 file yang harus didownload:

instantclient-basic — klien instan Oracle itu sendiri

instantclient-sdk — kumpulan perpustakaan untuk pengembangan aplikasi

Buat direktori untuk klien instan Oracle ( /opt direktori dicadangkan untuk ekstensi perangkat lunak cocok untuk tujuan ini):

sudo mkdir -p /opt/oracle/

Pindahkan file yang diunduh ke /opt/Oracle dan alihkan ke folder tujuan (dengan asumsi Anda mengunduh arsip "zip" ke direktori "unduhan" pengguna Anda):

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

Mengekstrak arsip yang diunduh:

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

Akhirnya kami memiliki instantclient_11_2 direktori yang dibuat di /opt/oracle untuk klien instan Oracle 11.2.0.2.0. Ganti nama direktori ini menjadi instantclient (perhatikan nomor versi) dan beralih ke sana:

sudo mv instantclient_11_2 instantclient
cd instantclient

Selanjutnya kita harus membuat beberapa direktori dan symlink tambahan (perhatikan nomor versi):

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 -

Buat file konfigurasi yang berisi nama direktori tempat perpustakaan klien instan Oracle akan dicari dan aktifkan:

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

Sejauh tidak ada direktori /usr/include/php di Ubuntu, tetapi klien masih mencarinya, kami akan membuat symlink yang setara - php5:

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

Pemasangan OCI8

Setelah tindakan sebelumnya, ekstensi oci8 diinstal dengan pecl perintah:

sudo pecl install oci8

Anda akan dimintai jalur ke klien instan Oracle, tanggapi dengan:

instantclient,/opt/oracle/instantclient

Membuat file koneksi ekstensi:

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

Pemasangan PDO_OCI

Untuk instalasi PDO_OCI, unduh dari repositori pir (pear.php.net).

Perbarui daftar paket pir:

sudo pecl channel-update pear.php.net

Unduh dan tempatkan arsip ke direktori temp:

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

Ekstrak konten arsip:

sudo tar xvf PDO_OCI*.tgz
cd PDO_OCI*

Di sini kita harus mengubah config.m4 file karena tidak berisi informasi tentang versi klien instan Oracle kami. Buka file dan tambahkan perubahan yang ditandai dengan "+" (perhatikan nomor versi):

sudo vim config.m4

Di bawah ini adalah diff dari 2 file:

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

Siapkan lingkungan untuk ekstensi php dengan phpize (php.net/manual/ru/install.pecl.phpize.php) perintah:

sudo phpize

Konfigurasikan penginstal paket dan instal paket (perhatikan nomor versi):

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

Buat file koneksi untuk itu:

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

Mulai ulang apache dan periksa apakah ekstensi telah dipasang:

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. Perjalanan OOW15 Saya Selesai

  2. Waktu habis untuk Metode OracleDataReader.Read

  3. Gabung Kiri dan Kanan Menggunakan Tanda Plus (+) di Oracle

  4. ORA-12557 TNS:adaptor protokol tidak dapat dimuat

  5. Oracle PL/SQL - Tingkatkan Pengecualian Buatan Pengguna Dengan SQLERRM Kustom