2008-10-27 60 views
3

在最新的Ubuntu上,我有一個運行PHP 5.2.4的安裝。我想使用OCI從PHP使用遠程Oracle服務器。如何設置OCI從PHP連接到Oracle?

我已經下載了「Instant Client Package - Basic Lite」Link)。我已經將包含OCI庫的包解壓到dir,但我不知道如何告訴PHP我想使用這些庫。可以預見的是,我這段代碼運行時獲得

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

<?php 
    $conn = oci_connect('hr', 'hrpw', 'someremotehost'); 
?> 

我不想重新編譯PHP與Oracle的支持。什麼是連接PHP的最快方式,以便我可以使用Oracle?如果我想連接到遠程Oracle實例,是否需要其他庫,如Oracle客戶端?

+0

我有一個類似的問題,但我不知道如何重新編譯。你的意思是運行./configure --with-oci8並在同一目錄下再次make && make-install?除了這三個命令外,是否涉及其他一些更改? – Zeeshan 2015-03-15 14:33:23

回答

4

您需要的PHP擴展,嘗試在你的Ubuntu以下幾點:

(sudo) pecl install oci8 

確保你的php.ini的(應該有一個爲你的Apache和一個用於CLI PHP)包含extension=oci8.so之後。最後,您必須重新啓動Apache,並可以通過<?php phpinfo(); ?>確認擴展已加載。

UPDATE:

輸入類似這樣的東西時,它問你ORACLE_HOME:

instantclient,/opt/oracle/instantclient

我想設置環境變量將是另一個解決方案。/opt/oracle ...是我將instantclient放入的路徑。前一段我跟着一些教程,很不幸我再也找不到它了。

HTH

0

我認爲你需要確保在$ ORACLE_HOME/LIB32是在$ LD_LIBRARY_PATH,否則該目錄添加到文件/etc/ld.so.conf。

0

最後,我下載了Zend Core for Oracle並且工作正常。 http://www.zend.com/en/products/core/for-oracle

+1

不要爲oracle使用zend核心,使用通用版本(它有oracle支持)。我有一個支持票據,因爲oracle的zend核心中存在錯誤,他們告訴我它已被棄用,不再主動更新。 – 2008-11-02 15:59:51