I managed to fix this when I came in this morning, via what can only be termed "magic".
I uninstalled then reinstalled pdo using pecl.  This broke pdo_mysql, but fixed pdo_oci (?!).  However, a quick reinstall of pdo_mysql via pecl fixed everything.
So, pdo and pdo_mysql worked.  pdo_oci did not.  Reinstalling pdo broke pdo_mysql, and reinstalling pdo_mysql fixed pdo_oci and pdo_mysql.  Magic.

-Sean

On Wed, Jan 13, 2010 at 8:36 AM, Demian Katz <demian.katz@villanova.edu> wrote:

This is decidedly puzzling.  In case you want to see if it makes a difference, I have attached a copy of my own pdo_oci.so module…  However, this was built on newer versions of PHP and Ubuntu, so it may not work for you.  I'm running out of ideas, though, and it seemed like it might be worth a shot.

 

As a last resort, it might be worth posting about this on a more general forum -- maybe something like ubuntuforums.org, or even the PDO internals mailing list (http://news.php.net/group.php?group=php.pdo).  At  least you have a fairly obvious symptom, so maybe somebody out there will recognize it.

 

One last thought -- I saw some discussions suggesting that PDO errors will sometimes show up in the Apache error log.  Did you check there to see if it offers any clues?

 

- Demian

 

From: Sean Moore [mailto:thedreadpiratesean@gmail.com]
Sent: Tuesday, January 12, 2010 4:17 PM


To: Demian Katz
Subject: Re: [VuFind-Tech] PDO_OCI Woes

 

I've been loading everything from conf.d from the start (I hate gunking up my php.ini with extension lists).  

 

"PDO Drivers: mysql" is certainly the problem.  I'm just not sure how to get OCI in there.  The pdo_oci.so module is in place, built against this system.  It is loaded in conf.d just like all the other modules.  oci8.so is loaded.  PDO loads and operates fine with mysql.  I'm at a loss on this one.

 

I should have some records loaded tomorrow, and if I can't figure it out by then, I have a primitive Voyager Web Services driver already in the works, so I'll go back to work on it.

 

-Sean

 

On Tue, Jan 12, 2010 at 3:01 PM, Demian Katz <demian.katz@villanova.edu> wrote:

I just checked again, and in the "enabled" area of the "PDO" section, it still only lists mysql.  If you didn't try my "move the setting to conf.d" suggestion, it still might be worth a shot.

 

- Demian

 

From: Sean Moore [mailto:thedreadpiratesean@gmail.com]
Sent: Tuesday, January 12, 2010 3:58 PM


To: Demian Katz
Cc: vufind-tech@lists.sourceforge.net
Subject: Re: [VuFind-Tech] PDO_OCI Woes

 

Oh, good catch!  I forgot to load oci8.so.  Fixed that, and now it's showing up in phpinfo.  Bad news, though: still 'could not find driver'. :(

-Sean

 

-- Maybe this is vuFind's subtle way of telling me I should really build that Voyager 7 web services driver?

 

On Tue, Jan 12, 2010 at 2:46 PM, Demian Katz <demian.katz@villanova.edu> wrote:

Interesting -- although you have a PDO_OCI section showing up, oci is not included in the "enabled" list in your main PDO section.  I'm sure this is related to your problem -- on my phpinfo page, both oci and mysql show up there.

 

Is it possible that this has something to do with the order in which modules are loaded?  Do you get better results if you load the module in its own .ini file in the conf.d folder rather than directly in php.ini?

 

- Demian

 

From: Sean Moore [mailto:thedreadpiratesean@gmail.com]
Sent: Tuesday, January 12, 2010 3:39 PM


To: Demian Katz
Cc: vufind-tech@lists.sourceforge.net
Subject: Re: [VuFind-Tech] PDO_OCI Woes

 

Oh, that's probably because I fat-fingered the IP.  Oops!

 

And in case that doesn't work, attached is a pdf of the output.

 

-Sean

 

On Tue, Jan 12, 2010 at 2:33 PM, Demian Katz <demian.katz@villanova.edu> wrote:

I couldn't access the page -- is it firewalled?  Maybe a screenshot of the relevant section would be the easiest way to share the information.

 

- Demian

 

From: Sean Moore [mailto:thedreadpiratesean@gmail.com]
Sent: Tuesday, January 12, 2010 3:31 PM
To: Demian Katz
Cc: vufind-tech@lists.sourceforge.net


Subject: Re: [VuFind-Tech] PDO_OCI Woes

 

OS is Ubuntu 8.04, so no SELinux,  PDO_mysql works fine.  So it looks like it's really just the PDO_OCI not being loaded properly (but I can confirm that the file is in fact there, and does have permissions), but phpinfo says it is (liar!).  

 

http://129.81.85.155/phpinfo.php  : maybe someone can see something I missed?

 

Again, many thanks.

-Sean

On Tue, Jan 12, 2010 at 2:15 PM, Demian Katz <demian.katz@villanova.edu> wrote:

I'm copying your reply back to the vufind-tech list in case anyone else has any ideas….

 

A few more questions that might help narrow down the problem….

 

What OS version are you using?  If it's something with SELinux security features, does your pdo_oci.so file have appropriate permissions?  Have you tried any other PDO modules (like PDO_MySQL) to see if the problem can be isolated to the OCI module or whether PDO in general is broken?

 

- Demian

 

From: Sean Moore [mailto:thedreadpiratesean@gmail.com]
Sent: Tuesday, January 12, 2010 2:59 PM
To: Demian Katz
Subject: Re: [VuFind-Tech] PDO_OCI Woes

 

No, everything looks good, and phpinfo from both the cli and apache say that extension support for PDO OCI is enabled.  :-/

On Tue, Jan 12, 2010 at 1:52 PM, Demian Katz <demian.katz@villanova.edu> wrote:

Have you tried looking the output of the phpinfo() function to see if that offers any clues?  If everything is configured correctly, the PHPInfo page should include sections for PDO and PDO_OCI.  If something is wrong, those sections will be missing.  The PHPInfo page will also tell you near the very top which php.ini file is being used -- sometimes there are several php.ini files on a system, and sometimes the one that's getting used isn't the one you've been editing.

 

Another possibility -- if you run the command-line version of PHP, do you get any error messages?  Sometimes if you have a corrupted module, you'll see errors every time you start command-line PHP, and this can offer some clues as well.

 

- Demian

 

 

From: Sean Moore [mailto:thedreadpiratesean@gmail.com]
Sent: Tuesday, January 12, 2010 2:46 PM
To: vufind-tech@lists.sourceforge.net
Subject: [VuFind-Tech] PDO_OCI Woes

 

 

Another vuFind install, another PDO_OCI problem.  I've built the module against instantclient successfully, and have the appropriate extension lines in php.ini.  Yet, when I try to create any PDO_OCI object, I get this error: 'could not find driver.'

 

pdo_oci.so is located in my php5 folder with all the other .so modules.  Anyone run across this before?

 

Thanks!

Sean Moore

Tulane University