[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

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

Posted on 2009-12-30
5
Medium Priority
?
2,293 Views
Last Modified: 2013-12-19
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.


0
Comment
Question by:E43509
  • 4
5 Comments
 
LVL 48

Expert Comment

by:hernst42
ID: 26145408
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
 

Author Comment

by:E43509
ID: 26145531
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
 

Author Comment

by:E43509
ID: 26145941
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
 

Author Comment

by:E43509
ID: 26146162
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
 

Accepted Solution

by:
E43509 earned 0 total points
ID: 26146737
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

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses four methods for overlaying images in a container on a web page
3 proven steps to speed up Magento powered sites. The article focus is on optimizing time to first byte (TTFB), full page caching and configuring server for optimal performance.
This video shows syntax for various backup options while discussing how the different basic backup types work.  It explains how to take full backups, incremental level 0 backups, incremental level 1 backups in both differential and cumulative mode a…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Suggested Courses
Course of the Month19 days, 17 hours left to enroll

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question