ID:               39312
 Comment by:       esimard at mediagrif dot com
 Reported By:      andrew dot nagy at villanova dot edu
 Status:           Assigned
 Bug Type:         PDO related
 Operating System: Linux
 PHP Version:      5.2.4
 Assigned To:      sixd
 New Comment:

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?


Previous Comments:
------------------------------------------------------------------------

[2009-01-29 11:37:33] 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-01-20 11:42:00] 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.

------------------------------------------------------------------------

[2007-09-27 09:56:50] j...@php.net

Chris, can you check this out please?

------------------------------------------------------------------------

[2007-09-25 22:08:48] tony2...@php.net

Yeah, but I never maintained PDO_OCI.

------------------------------------------------------------------------

[2007-09-25 09:53:13] j...@php.net

Tony, I wasn't sure to whom to assign this but you're one of the oci8
maintainers AFAIK. :)

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/39312

-- 
Edit this bug report at http://bugs.php.net/?id=39312&edit=1

Reply via email to