2016-05-07 57 views
1

我的目標是通過OCI8連接到Oracle數據庫是可以通過:MAMP:PHP -m顯示OCI8啓用,但不是在的phpinfo

pecl install oci8-2.0.11 

爲了實現這個目標,我一直在下面的各種教程網絡,使其工作。

我跟着以下教程:

  1. http://www.baldwhiteguy.co.nz/technical/index_files/mac-osx-oracle-instantclient.html
  2. http://www.enavigo.com/2012/01/04/enabling-oracle-oci8-php-extension-on-os-x-snow-leopard/
  3. http://tomytree22.blogspot.my/2014/09/oci-driver-installation-on-mac.html

這些教程是足夠運行SQL Plus中。我也能夠成功運行PECL安裝OCI-11年8月20日,並得到如下的輸出:

You should add "extension=oci8.so" to php.ini 

在第三教程我上面列出,我跟所有除下instantclient圖書館,我們需要採取一些硬編碼路徑照顧:

當我運行php -m時,我可以看到oci8在那裏,但我沒有看到它在我的phpinfo裏面。我做錯了什麼?

當我試圖連接到Oracle數據庫,無論如何,我堅持這一點:

Fatal error: Call to undefined function oci_connect() 

我希望這裏有人能幫助我。我正在使用El Capitan。

+0

我想這可能會導致衝突。 你是怎麼安裝PHP的? 您使用的是哪個版本的Oracle DB,它位於何處? – Fiido93

+0

@FiidoFirdauz它可能會導致衝突?你是什​​麼意思?我正在使用Oracle Instant Client。我爲我的開發使用MAMP(PHP 5.6.10)。 –

+0

首先檢查您的代碼在php 64/32位上運行。如果PHP是32位,則需要使用32位Oracle庫 – Fiido93

回答

1

所以我修好了。以下是我如何獲得解決方案。

我看着我的PHP日誌(請確保您啓用了PHP記錄所有的錯誤,就到你的error_log路徑尋找你的錯誤!),我發現這一點:

[06-五月 - 2016 09:48:12 Europe/Berlin] PHP警告:PHP啓動:無法加載動態庫'/Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226 /oci8.so' - dlopen(/Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/oci8.so,9):Library not loaded:/ ade /b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1

an d

[09-May-2016 04:53:51 Europe/Berlin] PHP警告:PHP啓動:無法加載動態庫'/Applications/MAMP/bin/php/php5.6.10/lib/php /extensions/no-debug-non-zts-20131226/oci8.so' - dlopen(/Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/oci8 。所以,9):庫未加載:/ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib

所以oci8.so未加載,因爲有未加載兩個庫。

以下是我固定它:

這意味着,我跳過了一個這是instantclient圖書館,我們需要照顧的一些硬編碼路徑:是一個我需要的。所以我運行這些命令(複製粘貼從教程):

sudo mkdir -p /ade/b/3071542110/oracle/rdbms/lib/ 
sudo ln -sf /Applications/MAMP/bin/php/php5.5.10/lib/php/instantclient_11_2/libclntsh.dylib.11.1 /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1 
sudo mkdir -p /ade/dosulliv_ldapmac/oracle/ldap/lib/ 
sudo ln -sf /Applications/MAMP/bin/php/php5.5.10/lib/php/instantclient_11_2/libnnz11.dylib /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib 

然後我重新啓動我的MAMP。現在我得到了我想要的,這是OCI8。現在我的PHPInfo提供了這些信息。

My PHPInfo OCI8

希望這將幫助球員誰正在着手建立OCI連接到Oracle在MAMP的相同路徑的其餘部分。

相關問題