Oracle OCI not starting on php 5 windows server 2003sp2 IIS 6

I inherited a task a task to start up a PHP server on a wintel box.  I'm not a php or unix kind of guy.  Basically I have Php installed and running phpinfo() works fine.
I cannot get the php_oci8.dll to load and it is needed for a project.
Full oracle 9i client installed.
I can sqlplus myuser/mypwd@mydb successfully.

I have the error going to the system log and it error says
Event Type:      Information
Event Source:      PHP-5.2.12
Event Category:      (6)
Event ID:      2
Date:            12/30/2009
Time:            8:43:31 AM
User:            N/A
The description for Event ID ( 2 ) in Source ( PHP-5.2.12 ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: php[35068], PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\php5\ext\php_oci8.dll' - The specified procedure could not be found.
 in Unknown on line 0.

I enabled php_ldap.dll in the php.ini file and it shows up in phpinfo() so I'm pretty confident that my ini is ok.  I'm thinking that the pho_oci8.dll is not finding what it needs from oracle and failing to start up.

Parts of my php.ini file
; Directory in which the loadable extensions (modules) reside.
extension_dir = "c:\php5\ext"
; Windows Extensions

Env variables:
C:\oracle\ora92\bin;C:\ColdFusion8\verity\k2\_nti40\bin;C:\CFusionMX7\verity\k2\_nti40\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\php5;

Running php 5.2.12  ISAPI


I have not loaded PECL as I'm not quite sure what that is or how to do it in windows world or if I need it.

Who is Participating?
E43509Author Commented:
sorry to keep adding comments but as I come across items.
I downloaded the oracle 10g instant client. 
Set up the env (I believe correctly)

i40\bin;C:\CFusionMX7\verity\k2\_nti40\bin;C:\Program Files\Oracle\jre\1.3.1\bin
;C:\Program Files\Oracle\jre\1.1.8\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS

and voila!  It is now working.
It appears that the oci.dll from oracle 9 is not a good match for the php_oci8.dll.
I found some threads on that:


Installing OCI8 on Windows

On Windows, uncomment the php.ini line extension=php_oci8.dll when using Oracle 10gR2 client libraries. Uncomment extension=php_oci8_11g.dll when using Oracle 11g client libraries. These two DLLs contain equivalent functionality and only one may be enabled at a time. Make sure extension_dir is set to the directory containing the PHP extension DLLs.

If using Instant Client, set the system PATH environment variable to the Oracle library directory.
E43509Author Commented:
Not using instant client, full oracle 9i client.
The php_oci8.dll is uncommented.
extension_dir appears to be set right (as I can enable other windows extensions such as php_ldap.dll and they start up.
E43509Author Commented:
Another tidbit.  Running c:\php5> php -m comes up with an error.
Php.exe  entry point not found
The procedure entry point OCILobRead2 could not be located in the dynamic link library oci.dll

I found the oci.dll in my c:\oracle\ora92\bin  
I copied that oci.dll to c:\windows\system32, c:\php5, c:\php5\ext and the same error occurs.

I'm thinking that php is finding the oci.dll but not that procedure in it?
Next steps?
E43509Author Commented:
I only have one oci.dll on this machine.  I renamed it to oci_orig.dll and running php -m came up with the same error.  I'm thinking it can't find the oci.dll?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.