Bug #39312 [Com]: Cannot install PDO_OCI
Edit report at http://bugs.php.net/bug.php?id=39312edit=1 ID: 39312 Comment by: petri dot mahanen at brainalliance dot com Reported by: andrew dot nagy at villanova dot edu Summary: Cannot install PDO_OCI Status: Feedback Type: Bug Package: PDO related Operating System: Linux PHP Version: 5.2.9 Assigned To: sixd New Comment: 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. Previous Comments: [2010-03-25 12:12:34] ka...@php.net Please try using this snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ [2010-03-16 20:54:32] 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 [2009-09-16 21:15:51] 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 [2009-09-16 21:13:02] 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,
Bug #39312 [Com]: Cannot install PDO_OCI
Edit report at http://bugs.php.net/bug.php?id=39312edit=1 ID: 39312 Comment by: jbrauer at llu dot edu Reported by: andrew dot nagy at villanova dot edu Summary: Cannot install PDO_OCI Status: Assigned Type: Bug Package: PDO related Operating System: Linux PHP Version: 5.2.9 Assigned To: sixd New Comment: 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 Previous Comments: [2009-09-16 21:15:51] 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 [2009-09-16 21:13:02] 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],
#39312 [Com]: Cannot install PDO_OCI
ID: 39312 Comment by: matts at iastate dot edu Reported By: andrew dot nagy at villanova dot edu Status: Assigned Bug Type: PDO related Operating System: Linux PHP Version: 5.2.9 Assigned To: sixd New Comment: 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 [ +dnlPHP_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) Previous Comments: [2009-09-04 23:09:55] 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-07-14 14:36:16] 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
#39312 [Com]: Cannot install PDO_OCI
ID: 39312 Comment by: matts at iastate dot edu Reported By: andrew dot nagy at villanova dot edu Status: Assigned Bug Type: PDO related Operating System: Linux PHP Version: 5.2.9 Assigned To: sixd New Comment: 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 Previous Comments: [2009-09-16 21:13:02] 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 [ +dnlPHP_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-04 23:09:55] 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-07-14 14:36:16] cmroddy at gmail dot
#39312 [Com]: Cannot install PDO_OCI
ID: 39312 Comment by: jnichols959 at gmail dot com Reported By: andrew dot nagy at villanova dot edu Status: Assigned Bug Type: PDO related Operating System: Linux PHP Version: 5.2.9 Assigned To: sixd New Comment: 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? Previous Comments: [2009-07-14 14:36:16] 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-03-18 23:06:48] 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-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.0 +0100 +++ ext/pdo_oci/config.m4 2009-01-28 23:34:39.0 +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
#39312 [Com]: Cannot install PDO_OCI
ID: 39312 Comment by: cmroddy at gmail dot com Reported By: andrew dot nagy at villanova dot edu Status: Assigned Bug Type: PDO related Operating System: Linux PHP Version: 5.2.9 Assigned To: sixd New Comment: 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. Previous Comments: [2009-03-18 23:06:48] 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-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.0 +0100 +++ ext/pdo_oci/config.m4 2009-01-28 23:34:39.0 +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
#39312 [Com]: Cannot install PDO_OCI
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.0 +0100 +++ ext/pdo_oci/config.m4 2009-01-28 23:34:39.0 +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
#39312 [Com]: Cannot install PDO_OCI
ID: 39312 Comment by: michael-ring at t-online dot de 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'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.0 +0100 +++ ext/pdo_oci/config.m4 2009-01-28 23:34:39.0 +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]) Previous Comments: [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. :) [2007-09-24 21:20:56] 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 12; exit 1; } --- { echo configure: error: Cannot find the Instant Client SDK in your Instant Client install 12; exit 1; } 73105c73105 { echo configure: error: I'm too dumb to figure out where the libraries are in your Instant Client install 12; exit 1; } --- { echo configure: error: Cannot find the libclntsh.so file. Try making a symbolic link in your Instant Client SDK install 12; exit 1; } 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=39312edit=1
#39312 [Com]: Cannot install PDO_OCI
ID: 39312 Comment by: fernando dot wendt at gmail 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: 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. Previous Comments: [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. :) [2007-09-24 21:20:56] 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 12; exit 1; } --- { echo configure: error: Cannot find the Instant Client SDK in your Instant Client install 12; exit 1; } 73105c73105 { echo configure: error: I'm too dumb to figure out where the libraries are in your Instant Client install 12; exit 1; } --- { echo configure: error: Cannot find the libclntsh.so file. Try making a symbolic link in your Instant Client SDK install 12; exit 1; } [2006-11-08 21:37:15] tony2...@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.5view=markup 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=39312edit=1