How to install oacle instantclient and pdo_oci on an ubuntu machine?

I need to install PDO_OCI on an ubuntu machine, there is no default package that I could install using apt-get.

There are many tutorials showing how to do this, but when I follow them, I have problems with compilation (configure, make, ...)

Here is what I did:

  • I completed this tutorial to install an instant client

  • Install oci8

    pecl install oci8
    

    I get an error:

    error: oci.h not found

  • Set PDO_OCI

    mkdir -p /tmp/pear/download/
    cd /tmp/pear/download/
    pecl download pdo_oci
    phpize
    ./configure –with-pdo-oci=instantclient,/usr,11.2
    

    Mistake:

    pdo_driver.h not found ...

Do you have any serious tutorial that works great on UBUNTU 12.04?

+4
source share
4 answers

PDO, PDO_OCI pecl install , PHP ​​ .

, , , , : PHP.

, : http://itblog.study.land/how-to-install-php5-pdo_oci-oci8-and-other-extensions-for-ubuntu/

:

  • Oracle, ORACLE_HOME
  • PDO_OCI ( OCI8, ) PHP, , , :

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

    Makefile:

    EXTRA_INCLUDES = -I/usr/include/oracle/11.2/client64

  • -

Debian 7.6

, .

+3

- article, , , post . .

:

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 (oracle.com/technetwork/database/features/instant-client/index-097480.html).

Linux 2 : RPM- Linux, CentOS, Fedora, Red Hat Enterprise Linux, Mandriva Linux, SUSE Linux .. ZIP- - , RPM.

2 :

instantclient-basic - Oracle

instantclient-sdk -

Oracle (/opt, , ):

sudo mkdir -p /opt/oracle/

/opt/oracle ( , "zip" "" ):

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 instant client 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

Ubuntu /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

temp:

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

apache , :

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

pdo_oci , PECL . CentOS 6.6, PHP v5.3.3 Oracle Instant client v.12.1, .

PHP

$ apt-get install php-devel 

PHP

$ cd /usr/local/src
$ mkdir php_source
$ cd php_source/
$ wget http://museum.php.net/php5/php-5.3.3.tar.gz
$ gunzip php-5.3.3.tar.gz
$ tar xvf php-5.3.3.tar

PDO_OCI

, ​​ $ORACLE_HOME. /usr/lib/oracle/ 12.1/client64

, :

$ cd php-5.3.3/ext/pdo_oci

Oracle 12.1, , . Instant Client config.m4, configure

Oracle version... configure: error: Oracle required OCI8 libraries not found under /usr/lib/oracle/12.1/client64

config.m4 SUPPORTED_LIB_VERS ( 5 ), 12.1 . case $PDO_OCI_VERSION in ( 134) |12.1 . , , .

,

$ phpize
$ ./configure
$ make

make , Oracle, . oci.h. , , Oracle Instant client , .

oracle.com, Instant Client Downloads Linux Instant SDK : Linux

: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

. sdk/include. include : /usr/local/src/php_source/php-5.3.3/ext/pdo_oci/include

make :

$ make

pdo_oci.so /modules : /usr/local/src/php_source/php-5.3.3/ext/pdo_oci/modules/pdo_oci.so

, PHP

$ php -i | grep extension_dir

(pdo_oci.so) .

. php.ini, .ini , .ini PHP .

, /etc/php.d/pdo_oci.ini :

; Enable pdo_oci extension module
extension=pdo_oci.so

php.ini .

Apache

$ /etc/init.d/httpd restart

PHP CLI, , PHP phpinfo() . PDO_OCI - !

$ php -m

Thanks to Mattias Geniar for the source post on how to compile PHP extensions from source: https://ma.ttias.be/how-to-compile-and-install-php-extensions-from-source/

+6
source

installation with PECL is out of date, do not use it. Here is a step-by-step guide on installing PDO_OCI and the instant Oracle client on a Linux machine: http://shar.lt/linux-install-oracle-instant-client-php-pdo_oci-library/

-1
source

Source: https://habr.com/ru/post/1528113/


All Articles