簡體   English   中英

PHP,IIS,Oracle(OCI)無法正常工作

[英]PHP, IIS, Oracle (OCI) not working

我們正在從Windows SBS 2011遷移到Windows Server 2012 R2。

我們有一個內部網站,可以使用PHP連接到我們的Oracle數據庫。

我正在嘗試將其遷移到新服務器,到目前為止,我已經:

  1. 安裝的IIS服務器角色
  2. 已安裝PHP
  3. 將Oracle Instant Client下載到C:\\ instantclient
  4. 將C:\\ instantclient添加到PATH系統變量
  5. 將php_oci8.dll添加到php.ini中,並檢查PHP是否實際上正在使用此php.ini
  6. 重新啟動服務器

我仍然收到諸如oci_命令無法識別等錯誤消息。

我迷路了。 我已經在網上進行搜索,說明中的內容與我從內存中所做的內容相符。

我沒有在網上找到一件我還沒有做過的事情。

根據您安裝的InstantClient的版本,您可能需要在路徑中包含bin文件夾,如下所示:

C:\instantclient\bin

要檢查DLL文件在路徑中是否可用,請在命令提示符下輸入where oci*.dll 它應該返回匹配文件的列表。

另外,請記住,僅僅因為您的帳戶可以看到DLL文件,並不意味着IIS / PHP可以。 它在可能沒有權限訪問文件的其他帳戶下運行。 檢查您的IIS錯誤日志和PHP php_errors.log文件,以獲取任何特定的錯誤消息。


編輯

經過相當長時間的聊天 ,該問題已通過以下方法解決:

  • 將InstantClient從10.1.0.5更新到10.2.0.5(如模塊要求中所述在Windows上,php_oci8 DLL需要版本10gR2或更高版本的Oracle客戶端庫。
  • msvcr71.dll的副本添加到InstantClient文件夾中。
  • php.net下載並手動配置PHP,而不是使用IIS的PHP Manager
  • 確保Path環境變量正確指向InstantClient和PHP文件夾。

嘗試這個:

extension = php_oci8_12c.dll(而不是php_oci8.dll)-這就是我正在使用的,您可能下載了與我相同的即時客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM