Link to home
Start Free TrialLog in
Avatar of E43509
E43509Flag for United States of America

asked on

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.


Avatar of hernst42
hernst42
Flag of Germany image

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.
Avatar of E43509

ASKER

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.
Avatar of E43509

ASKER

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?
Avatar of E43509

ASKER

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?
ASKER CERTIFIED SOLUTION
Avatar of E43509
E43509
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial