php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #39312 Cannot install PDO_OCI
Submitted: 2006-10-30 19:36 UTC Modified: 2011-04-04 18:54 UTC
Votes:17
Avg. Score:4.1 ± 0.9
Reproduced:15 of 15 (100.0%)
Same Version:3 (20.0%)
Same OS:9 (60.0%)
From: andrew dot nagy at villanova dot edu Assigned: sixd
Status: Closed Package: PDO related
PHP Version: 5.2.9 OS: Linux
Private report: No CVE-ID:
 [2006-10-30 19:36 UTC] andrew dot nagy at villanova dot edu
Description:
------------
I installed the instantclient library and when I try to run configure I get the following error:
checking for oci.h... configure: error: I'm too dumb to figure out where the include dir is in your instant client install

This is a bad error message, although quite humorous.

Reproduce code:
---------------
Here is my configure settings:
--with-oci8=instantclient,/usr/lib/oracle/10.1.0.3/client/lib --with-pdo-oci=instantclient,/usr/lib/oracle,10.1.0.3



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-10-30 19:44 UTC] tony2001@php.net
So where is your include dir?
 [2006-10-30 22:41 UTC] andrew dot nagy at villanova dot edu
I installed the instant client to:
/usr/lib/oracle/10.1.0.3

Is this what you are asking for?
 [2006-10-30 23:06 UTC] tony2001@php.net
So the headers are in /usr/lib../?
I mean the .h files, oci.h for example.
 [2006-10-31 14:41 UTC] andrew dot nagy at villanova dot edu
Sorry.  It appears oracle is installed in 2 locations
/usr/lib and /usr/include and the headers are in /usr/include
 [2006-10-31 14:47 UTC] andrew dot nagy at villanova dot edu
Well, I changed my configure to:
--with-oci8=instantclient,/usr/lib/oracle/10.1.0.3/client/lib
--with-pdo-oci=instantclient,/usr/include/oracle,10.1.0.3

And am still getting the same error.  The first oci8 option passes in the configuration, but the PDO_OCI does not.  According to the ./configure --help, I am doing everything correctly ... I think.
 [2006-11-08 14:28 UTC] tony2001@php.net
I don't get it. Why did you change /lib/ to /include/?
Why do you have instant client installed in two locations?
Where is oci.h after all? Where is libclntsh.so?
 [2006-11-08 15:35 UTC] andrew dot nagy at villanova dot edu
The oci.h is under /usr/include/oracle
The libclntsh.so is under /usr/lib/oracle

I am not sure how the files got into 2 different dirs.  Maybe through an RPM?

I downloaded the latest copy of the instant client, and put it in a new directory.  I get the same errors, there is no oracle.h file in the instant client directory.
What am I missing?
Can the error reporting in the configure be a bit more verbose?
 [2006-11-08 15:43 UTC] tony2001@php.net
Please download the Instant Client in .zip archive, and put the files this way:
/tmp/instantclient/sdk/include/ <- headers
/tmp/instantclient/ <- libraries
That's all. --with-pdo-oci=instantclient,/tmp/instantclient should work after that.
 [2006-11-08 16:21 UTC] andrew dot nagy at villanova dot edu
No dice.

I installed instantclient-basic to: /office/lib/oci
I installed instantclient-sdk to: /office/lib/oci/sdk

It seems like it is looking for a directory called lib32 which I do not have.
Here is the error:

checking Oracle OCI support for PDO... yes
checking Oracle Install-Dir... instantclient,/office/lib/oci :instantclient,/office/lib/oci:
checking if that is sane... yes
checking size of long int... (cached) 4
checking checking if we're at 64-bit platform... no
checking OCI8 libraries dir... instantclient,/office/lib/oci/lib32
checking for oci.h... /office/lib/oci/sdk/include
configure: error: I'm too dumb to figure out where the libraries are in your instant client install

Here is my directories:
[root@falveydev oci]# ll
total 97584
-r--r--r--  1 root root  1594191 Feb  5  2006 classes12.jar
-rwxrwxr-x  1 root root 18774535 Feb  5  2006 libclntsh.so.10.1
-r-xr-xr-x  1 root root  5623929 Feb  5  2006 libnnz10.so
-rwxrwxr-x  1 root root  1398088 Feb  5  2006 libocci.so.10.1
-rwxrwxr-x  1 root root 70690282 Feb  5  2006 libociei.so
-r-xr-xr-x  1 root root   119919 Feb  5  2006 libocijdbc10.so
-r--r--r--  1 root root  1540457 Feb  5  2006 ojdbc14.jar
drwxrwxr-x  4 root root     4096 Feb  5  2006 sdk
[root@falveydev oci]# ll sdk
total 324
drwxrwxr-x  2 root root   4096 Feb  5  2006 demo
drwxrwxr-x  2 root root   4096 Feb  5  2006 include
-r-xr-xr-x  1 root root    346 Feb  5  2006 ott
-rw-rw-r--  1 root root 298274 Feb  5  2006 ottclasses.zip


I ran configure with:
--with-pdo-oci=instantclient,/office/lib/oci,10.2.0.2
 [2006-11-08 16:26 UTC] tony2001@php.net
Create symlink libclntsh.so.10.1 -> libclntsh.so.
 [2006-11-08 17:23 UTC] andrew dot nagy at villanova dot edu
Getting closer, but I am still getting an error.

configure: error: Unsupported Oracle version!

Any ideas?

I'm using the latest download of the instant client.  I do not have oracle installed since I am connecting to a remote oracle server.  Which, if I understand correctly, is the whole point of the instant client.
 [2006-11-08 19:41 UTC] tony2001@php.net
Can't reproduce.
With --with-pdo-oci=instantclient,/tmp/oic,10.2.0.2 it works just fine.

tony@hp:/tmp/oic> ls -lR
.:
total 83736
-r--r--r--  1 tony users  1461081 2006-11-08 22:35 classes12.jar
lrwxrwxrwx  1 tony users       17 2006-11-08 22:39 libclntsh.so -> libclntsh.so.10.1
-rwxr-xr-x  1 tony users 13495923 2006-11-08 22:35 libclntsh.so.10.1
-r-xr-xr-x  1 tony users  2121849 2006-11-08 22:35 libnnz10.so
lrwxrwxrwx  1 tony users       15 2006-11-08 22:40 libocci.so -> libocci.so.10.1
-rwxr-xr-x  1 tony users   913575 2006-11-08 22:35 libocci.so.10.1
-rwxr-xr-x  1 tony users 66159152 2006-11-08 22:35 libociei.so
-rwxr-xr-x  1 tony users    96517 2006-11-08 22:35 libocijdbc10.so
-r--r--r--  1 tony users  1397543 2006-11-08 22:35 ojdbc14.jar
drwxr-xr-x  3 tony users       72 2006-11-08 22:36 sdk

./sdk:
total 1
drwxr-xr-x  2 tony users 760 2006-11-08 22:36 include

./sdk/include:
total 1428
-r--r--r--  1 tony users  32137 2006-11-08 22:36 nzerror.h
-r--r--r--  1 tony users  84539 2006-11-08 22:36 nzt.h
-r--r--r--  1 tony users  11587 2006-11-08 22:36 occiAQ.h
-r--r--r--  1 tony users  36750 2006-11-08 22:36 occiCommon.h
-r--r--r--  1 tony users  70671 2006-11-08 22:36 occiControl.h
-r--r--r--  1 tony users  33996 2006-11-08 22:36 occiData.h
-r--r--r--  1 tony users   2115 2006-11-08 22:36 occi.h
-r--r--r--  1 tony users  29156 2006-11-08 22:36 occiObjects.h
-r-xr-xr-x  1 tony users   7155 2006-11-08 22:36 oci1.h
-r--r--r--  1 tony users  10228 2006-11-08 22:36 oci8dp.h
-r--r--r--  1 tony users 404315 2006-11-08 22:36 ociap.h
-r-xr-xr-x  1 tony users   6055 2006-11-08 22:36 ociapr.h
-r--r--r--  1 tony users  43225 2006-11-08 22:36 ocidef.h
-r-xr-xr-x  1 tony users   4014 2006-11-08 22:36 ocidem.h
-r--r--r--  1 tony users  11331 2006-11-08 22:36 ocidfn.h
-r--r--r--  1 tony users   8954 2006-11-08 22:36 ociextp.h
-r--r--r--  1 tony users 132242 2006-11-08 22:36 oci.h
-r-xr-xr-x  1 tony users   6638 2006-11-08 22:36 ocikpr.h
-r--r--r--  1 tony users   4464 2006-11-08 22:36 ocixmldb.h
-r--r--r--  1 tony users  19099 2006-11-08 22:36 odci.h
-r--r--r--  1 tony users   6605 2006-11-08 22:36 oratypes.h
-r--r--r--  1 tony users  15031 2006-11-08 22:36 orid.h
-r--r--r--  1 tony users 102726 2006-11-08 22:36 ori.h
-r--r--r--  1 tony users 157674 2006-11-08 22:36 orl.h
-r--r--r--  1 tony users  42626 2006-11-08 22:36 oro.h
-r--r--r--  1 tony users 116591 2006-11-08 22:36 ort.h
-r-xr-xr-x  1 tony users   9520 2006-11-08 22:36 xa.h
 [2006-11-08 20:01 UTC] andrew dot nagy at villanova dot edu
Okay, that solved it.

I added the other symlink that you have and I added the version number back into my configure statement and I was able to pass the configure.

Is their anyway this checking can be added to the configure script?
 [2006-11-08 20:39 UTC] tony2001@php.net
>Is their anyway this checking can be added to the configure script?

What do you mean?
 [2006-11-08 21:21 UTC] andrew dot nagy at villanova dot edu
I guess I am saying that the error checking should be more verbose.  Instead of reporting "Im too dumb to find your missing files".

The most important part is adding the installation procedure to the doc page for PDO_OCI, but that hasn't been written yet it appears.
 [2006-11-08 21:37 UTC] tony2001@php.net
If you know how exactly to make it more verbose and clear - we would gladly accept your patch for ext/pdo_oci/config.m4.
See here: http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_oci/config.m4?revision=1.14.2.5&view=markup
 [2007-09-24 21:20 UTC] andrew dot nagy at villanova dot edu
I just did an install of php 5.2.4 on a brand new RHEL server.  The only way I could get this to work is by using the zip files provided by Oracle, not the RPMs.  Both the Basic and SDK are need (well I am assuming the Basic is needed).  Once I unzip the files, I needed to create 2 symbolic links -- both libclntsh.so and libocci.so.

Could this be fixed in the configure script to look for the original files instead of the renamed files?

For now - I have created a patch that makes the language a bit more intuitive if this helps at all.  It is diff'ed against the 5.2.4 release.

1305,1306c1305,1306
<                             Use --with-pdo-oci=instantclient,/path/to/instantclient,version
<                             for an Oracle Instant Client SDK install.
---
>                             Use --with-pdo-oci=instantclient,prefix,version
>                             for an Oracle Instant Client SDK.
73096c73096
<       { echo "configure: error: I'm too dumb to figure out where the include dir is in your Instant Client install" 1>&2; exit 1; }
---
>       { echo "configure: error: Cannot find the Instant Client SDK in your Instant Client install" 1>&2; exit 1; }
73105c73105
<       { echo "configure: error: I'm too dumb to figure out where the libraries are in your Instant Client install" 1>&2; exit 1; }
---
>       { echo "configure: error: Cannot find the libclntsh.so file.  Try making a symbolic link in your Instant Client SDK install" 1>&2; exit 1; }
 [2007-09-25 09:53 UTC] jani@php.net
Tony, I wasn't sure to whom to assign this but you're one of the oci8 maintainers AFAIK. :)
 [2007-09-25 22:08 UTC] tony2001@php.net
Yeah, but I never maintained PDO_OCI.
 [2007-09-27 09:56 UTC] jani@php.net
Chris, can you check this out please?
 [2009-01-20 11:42 UTC] fernando dot wendt at gmail dot com
More info about the lastest Oracle Instant Client under Linux: i'm configuring a web server with Apache2.2.11, PHP5.2.8, and OIC11.1, and PDO compile only works with this syntax:

./configure --with-oci8=shared,instantclient,/usr/lib/oracle --with-pdo-oci=instantclient,/usr/lib/oracle,11.1

Presuming /usr/lib/oracle is your Instant Client base directory. The great stuff is pass the version number at the command line, just as Andrew point us.

Thanks a lot, and i do suggest you to put this detail on the online documentation website, at installing PDO Oracle.

Best regards.
 [2009-01-29 11:37 UTC] michael-ring at t-online dot de
I've found a problem under MacOSX, the extension'.so' is hardcoded in the library detection for pdo_oci. This breaks under MacOSX because libclntsh has '.dylib' extension instead of '.so'.

To solve this problem the following patch has to be applied. Shall I open a new bug in order to get this included in upcomming php-Versions?

--- ext/pdo_oci/config.m4.orig      2009-01-28 23:31:07.000000000 +0100
+++ ext/pdo_oci/config.m4   2009-01-28 23:34:39.000000000 +0100
@@ -97,11 +97,11 @@
     else
       AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your Instant Client install])
     fi
-    if test -f "$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib/libclntsh.so" ; then
+    if test -f "$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib/libclntsh.$SHLIB_SUFFIX_NAME" ; then
       PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib"
-    elif test -f "$PDO_OCI_IC_PREFIX/client/lib/libclntsh.so" ; then
+    elif test -f "$PDO_OCI_IC_PREFIX/client/lib/libclntsh.$SHLIB_SUFFIX_NAME" ; then
       PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/client/lib"
-    elif test -f "$PDO_OCI_IC_PREFIX/libclntsh.so" ; then
+    elif test -f "$PDO_OCI_IC_PREFIX/libclntsh.$SHLIB_SUFFIX_NAME" ; then
       PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX"
     else
       AC_MSG_ERROR([I'm too dumb to figure out where the libraries are in your Instant Client install])
 [2009-03-18 23:06 UTC] esimard at mediagrif dot com
I will assume that "assigned" means open since this bug doesn't seem fixed yet.

I tried to install instantclient 10.2.0.4 with php-5.2.9 on RHEL5.

Tried it with the RPMs, didn't work, so I followed the instructions that other people suggested here on the php.net instantclient page.

I installed the client in /usr/lib/oracle/10.2.0.4/client/
and the sdk in /usr/lib/oracle/10.2.0.4/client/sdk/include/

I tried to configure with the switches: 

--with-oci8=shared,instantclient,/usr/lib/oracle/10.2.0.4/client --with-pdo-oci=instantclient,/usr/lib/oracle,10.2.0.4

without success, getting the error I'm too dumb to figure out where the libraries are in your Instant Client install. 

After checking it out with strace, it seems that it tries to find the files(headers and libs in the wrong directories). Also a import of ld.so.conf with the libs dir did not help apparently.

So here is what I saw:

stat64("/usr/lib/oracle/include/oracle/10.2.0.4/client/oci.h", 0xbf7f53b8) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/usr/lib/oracle/lib/oracle/10.2.0.4/client/include/oci.h", 0xbf7f52e8) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/usr/lib/oracle/sdk/include/oci.h", 0xbf7f5218) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/usr/lib/oracle/client/include/oci.h", 0xbf7f5148) = -1 ENOENT (No such file or directory)

fixed temporary with ln -s /usr/lib/oracle/10.2.0.4/client/sdk/ /usr/lib/oracle/sdk

and

stat64("/usr/lib/oracle/lib/oracle/10.2.0.4/client/lib/libclntsh.so", 0xbfa5a858) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/usr/lib/oracle/client/lib/libclntsh.so", 0xbfa5a788) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/usr/lib/oracle/libclntsh.so", 0xbfa5a6b8) = -1 ENOENT (No such file or directory)

fixed temporary with ln -s /usr/lib/oracle/10.2.0.4/client/ /usr/lib/oracle/client

ln -s /usr/lib/oracle/10.2.0.4/client/ /usr/lib/oracle/10.2.0.4/client/lib

which is somewhat ghetto.

I would like to hear if you have a smoother way to do that. If this bug is not considered open, can someone please email me if you have another workaround if this comment gets deleted?
 [2009-07-14 14:36 UTC] cmroddy at gmail dot com
following tony2001's directions exactly i am of course able to 
reproduce this problem. i got the thing to build once a couple of years 
ago but haven't succeeded since then. as i recall it took several days 
of continuous shell games with the configure script.

it seems there is no one around to maintain PDO_OCI. i can sympathize 
with this. i certainly wouldn't want to maintain it either. but if this 
build can't be made to work even given explicit paths to every single 
file it needs, then PDO_OCI needs to be dropped entirely and deleted 
from the documentation.
 [2009-09-04 23:09 UTC] jnichols959 at gmail dot com
seems like pdo_oci will configure, compile and run correctly with the proper environment variables and configure commands everywhere *except* on mac os x.  the patch suggested in comment http://bugs.php.net/bug.php?id=39312#c144683 of this bug fixes it on mac os x (tested with 10.2.0.4 instantclient and os x 10.5.8) and also works on linux (centos 5.3 x86_64 and 10.2.0.4 instantclient also x86_64).

can someone with access test and hopefully apply the patch so os x users can use pdo_oci without hacking the configure script?
 [2009-09-16 21:13 UTC] matts at iastate dot edu
Here is a patch which will let you build the pdo_oci lib with the instant client on debian or ubuntu systems.  Save the contents to oci_patch.txt, and then run it against your config.m4 file like so:

cd PDO_OCI-1.0 && patch -p0 < /path/to/oci_patch.txt

=========

### Eclipse Workspace Patch 1.0
#P pdo_oci
Index: config.m4
===================================================================
--- config.m4	(revision 141)
+++ config.m4	(working copy)
@@ -7,6 +7,8 @@
   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.1; then
+    PDO_OCI_VERSION=11.1    
   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
@@ -57,14 +59,19 @@
     AC_MSG_CHECKING([for oci.h])
     if test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client/oci.h ; then
       PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client)
+      PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib"
       AC_MSG_RESULT($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client)
     elif test -f $PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include/oci.h ; then
       PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include)
+      PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib"
       AC_MSG_RESULT($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include)
+    elif test -f $PDO_OCI_IC_PREFIX/sdk/include/oci.h ; then
+      PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/sdk/include)
+      AC_MSG_RESULT($PDO_OCI_IC_PREFIX/sdk/include)
+      PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX"
     else
       AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your instant client install])
     fi
-    PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib"
     PDO_OCI_VERSION="`echo $PDO_OCI_IC_VERS | cut -d. -f1-2`"
   else
     if test -d "$PDO_OCI_DIR/rdbms/public"; then
@@ -119,6 +126,9 @@
     10.2)
       PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
       ;;
+    11.1)
+      dnl PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+      ;;
     *)
       AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION)
       ;;
@@ -176,22 +186,24 @@
     -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD
   ])
 
-  ifdef([PHP_CHECK_PDO_INCLUDES],
-  [
-    PHP_CHECK_PDO_INCLUDES
-  ],[
-    AC_MSG_CHECKING([for PDO includes])
-    if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
+dnl  ifdef([PHP_CHECK_PDO_INCLUDES],
+dnl  [
+dnl    PHP_CHECK_PDO_INCLUDES
+dnl ],[
+    AC_MSG_CHECKING([ PDO includes])
+    if test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
+      pdo_inc_path=$prefix/include/php/ext
+    elif test -f $prefix/include/php5/ext/pdo/php_pdo_driver.h; then
+      pdo_inc_path=$prefix/include/php5/ext
+    elif test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
       pdo_inc_path=$abs_srcdir/ext
     elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
       pdo_inc_path=$abs_srcdir/ext
-    elif test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
-      pdo_inc_path=$prefix/include/php/ext
     else
       AC_MSG_ERROR([Cannot find php_pdo_driver.h.])
     fi
     AC_MSG_RESULT($pdo_inc_path)
-  ])
+dnl  ])
 
   PHP_NEW_EXTENSION(pdo_oci, pdo_oci.c oci_driver.c oci_statement.c, $ext_shared,,-I$pdo_inc_path)
 [2009-09-16 21:15 UTC] matts at iastate dot edu
Since the above messed up the formatting, I'll keep a copy of the patch here for the meantime:

http://booster.agron.iastate.edu/mattsteven/oci_patch_jaunty.patch
 [2010-03-16 20:54 UTC] jbrauer at llu dot edu
I got it to build on Redhat using the instantclient RPM.  Here's what I did.

manually added the following to config.m4 to allow for Oracle instant client 
11.1
(stolen from matts at iastate above)
@@ -7,6 +7,8 @@
   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.1; then
+    PDO_OCI_VERSION=11.1    
   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

AND

@@ -119,6 +126,9 @@
     10.2)
       PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
       ;;
+    11.1)
+      dnl PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+      ;;
     *)
       AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION)
       ;;

if you have instant client of lower version its not needed.

Then I re phpize 'd it. and ran configure:
(esimard at mediagrif dot com)'s strace showed me the only dir I needed was /usr

./configure --with-pdo-oci=instantclient,/usr,11.1.0.1

configure, make and make install completed successfully
 [2010-03-25 12:12 UTC] kalle@php.net
-Status: Assigned +Status: Feedback
 [2010-03-25 12:12 UTC] kalle@php.net
Please try using this snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/


 [2010-06-24 09:30 UTC] petri dot mahanen at brainalliance dot com
The snapshot will still not compile on OS X as the patch of [2009-01-29 09:37 UTC] michael-ring at t-online dot de has not been applied.
 [2011-03-30 19:44 UTC] sixd@php.net
-Status: Feedback +Status: Duplicate
 [2011-03-30 19:44 UTC] sixd@php.net
There seem to be a number of overlapping issues in this bug some of which have been fixed by now.

See http://bugs.php.net/bug.php?id=44989
Note the use with RPMs only requires the top level path /usr and
the version number should either be 10.2.0.4 or 11.2 (not 11.2.0.2) depending on which Instant Client you use.

Also support for 11.2 added in http://svn.php.net/viewvc?view=revision&revision=294487 

The only obviously outstanding issue is to change from hardcoded .so given in the patch inline by: [2009-01-29 10:37 UTC] michael-ring at t-online dot de
 [2011-03-30 19:44 UTC] sixd@php.net
-Status: Duplicate +Status: Re-Opened
 [2011-04-04 18:54 UTC] sixd@php.net
-Status: Re-Opened +Status: Closed
 [2011-04-04 18:54 UTC] sixd@php.net
Felipe merged a fix to remove the hardcoded .so paths.
http://svn.php.net/viewvc?view=revision&revision=309892

A new bug http://bugs.php.net/bug.php?id=54451 has been logged for the Ubuntu install issue.
 [2013-12-02 06:27 UTC] vipul dot jadvani at gmail dot com
Hello ,
 I installed the instantclient library and when I try to run configure I get the following error:
checking for oci.h... configure: error: I'm too dumb to figure out where the include dir is in your instant client install

my oracle instantclient installed in /usr/lib/oracle/11.2/client/lib directory and libclntsh.so.11.1 file is in  /usr/lib/oracle/11.2/client/lib/libclntsh.so.11.1  directory. 

There is .h ectentions file resides in /usr/include/oracle/11.2/client directory. i configure path but it display error like above .
so please help me.
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sun Apr 20 01:02:05 2014 UTC