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
Description:
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
extension=php_oci8.dll

Env variables:
Path
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;
TNS_ADMIN
C:\oracle\ora92\network\ADMIN

Running php 5.2.12  ISAPI

Thougths?

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.


E43509Asked:
Who is Participating?
 
E43509Author Commented:
sorry to keep adding comments but as I come across items.
I downloaded the oracle 10g instant client.  
http://www.dbasupport.com/oracle/ora10g/instant_client02.shtml 
Set up the env (I believe correctly)

LD_LIBRARY_PATH=C:\oracle\InstantClient10g
Path=C:\oracle\InstantClient10g;C:\oracle\ora92\bin;C:\ColdFusion8\verity\k2\_nt
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
\System32\Wbem;c:\php5;
TNS_ADMIN=C:\oracle\ora92\network\ADMIN

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:  http://dbaspot.com/forums/oracle-tools/129623-pb-apache-php-oci.html

0
 
hernst42Commented:
Read http://www.php.net/manual/en/oci8.installation.php


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.
0
 
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.
0
 
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?
0
 
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?
0
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.