2011-12-26 85 views
7

我有下一行註釋掉(在我的php.ini):致命錯誤:調用未定義的函數oci_connect()

extension=php_oracle.dll 
extension=php_oci8.dll 

我下載了該文件instantclient-basiclite-nt-11.2.0.2.0.zip並解壓縮,並把該驅動器d .. 。

我使用Windows XP

我設置環境變量是這樣的:

LD_LIBRARY_PATH  C:\instantclient_11_2:$LD_LIBRARY_PATH 
ORACLE_HOME  C:\instantclient_11_2 

但是,當我執行oci_connect()功能,我看到這個錯誤:

Fatal error: Call to undefined function oci_connect() in ...

,我發現在erroeLog文件這個警告:

[29-Dec-2011 00:36:39] PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_oci8.dll' - The specified module could not be found. in Unknown on line 0

[29-Dec-2011 00:36:39] PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_oracle.dll' - The specified module could not be found.

+0

什麼消息做CLI版本或Apache輸出?還有什麼日誌文件或系統日誌thingy說? – mario 2011-12-26 13:06:24

+0

這應該有助於上述錯誤! [鏈接](http://stackoverflow.com/a/39770392/3973543) – Batman 2016-09-29 13:56:14

回答

2

你把php_oci8.dll文件在您php/ext目錄後,重新啓動Apache?

+0

我使用的IIS,但我也重新啓動了! – afsane 2011-12-26 12:55:00

+0

你是否也將DLL放在正確的文件夾中? – 2011-12-26 12:58:08

+0

當然是! – afsane 2011-12-26 13:00:04

4

檢查事項:

  • 你並不需要設置LD_LIBRARY_PATH也不ORACLE_HOME。但是,您需要將D:\instantclient_11_2添加到PATH環境變量中,然後重新啓動計算機,以便應用更改。

  • 在配置PHP,檢查你的Oracle客戶端庫的實際工作(例如,嘗試用SQL Developer的連接)。

  • 註釋掉extension=php_oracle.dll。它屬於舊的和不推薦的Oracle擴展。

  • 仔細檢查php_oci8.dll文件是否真的在c:\php\ext\php_oci8.dll

+1

我所做的一切都是你的建議,但是.... :( – afsane 2011-12-26 13:30:18

+0

@afsane的 - 那麼很明顯:它不獨立工作,也不能PHP下工作 – 2011-12-27 09:11:08

+0

這是爲我工作我傻,我忘了重啓系統 – siniradam 2013-01-04 13:22:39

0

只需添加這行來指向擴展的位置php.in文件,應該知道它們的位置,但通常在PHP文件夾中。

extension_dir = C:\xampp\php\ext ;這是我使用XAMPP的,是明智的。

它爲我工作。問題在於訪問擴展,與Oracle庫無關。

相關問題