在Linux上為PHP配置OCI8連線
軟體 | 注意 |
Oracle Instant Client | 下載”Instant Client Package – Basic”,也需要” Instant Client Package – SDK” |
Apache HTTPD Server | 版本1或2均可 |
PHP – PHP Hypertext Processor | 版本 5.2 |
在Linux平臺上啟用PHP的OCI8擴充套件 在Linux平臺上PHP往往需要重新編譯。若使用者使用Oracle Enterprise Linux,則預編譯好的PHP RPM包可以直接從oss.oracle.com上下載。 為了搭建PHP和OCI8: 1. 你需要下載Apache HTTPD Server,且下載PHP 5.2 source code 即PHP 5.2原始碼,根據安裝手冊安裝PHP與APACHE。在這裡不需要為OCI8配置什麼。 2. 從OTN上下載基礎和SDK客戶端包,地址:Instant Client page。ZIP或RPM格式均可。 開始安裝包:
rpm -Uvh oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
rpm -Uvh oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
以上第一個RPM包將Oracle庫檔案安置在usr/lib/oracle/11.1/client/lib,而第二個在/usr/include/oracle/11.1/client建立標頭檔案。 3. 從PECL上下載最新的OCI 8 1.3.5擴充套件將覆蓋PHP 5.2原始碼中的預設版本。手動下載並如此安裝: pecl install oci-1.3.5.tgz 或最新版本可直接如此下載安裝: pecl install oci8 輸出如下: downloading oci8-1.3.5.tgz … Starting to download oci8-1.3.5.tgz (137,987 bytes) …..done: 137,987 bytes 10 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 1. Please provide the path to the ORACLE_HOME directory. Use `instantclient,/path/to/instant/client/lib` if you`re compiling with Oracle Instant Client : autodetect 1-1, `all`, `abort`, or Enter to continue:
若您安裝了Instant Client RPM包,回車後PECL將自動定位RPM包並安裝OCI8.so共享庫檔案。 4. 修改php.ini並確認extension_dir 指向了oci8.so所在目錄 並在php.ini中加上: extension=oci8.so,啟用oci 8。 5. 將Instant Client(簡潔客戶端)的目錄新增到/etc/ld.so.conf中,或手動設定LD_LIBRARY_PATH包含目錄/usr/lib/oracle/11.1/client/lib,並重啟Apache。 在重啟Apache前要設好Oracle環境變數,如下指令碼: #!/bin/sh LD_LIBRARY_PATH=/usr/lib/oracle/11.1/client/lib:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH echo Starting Apache /usr/sbin/apachectl start 以上指令碼未設定NLS_LANG等語言環境變數,即使用預設環境。 現在來確認擴充套件是否正確安裝,我們可以通過以下php指令碼予以確認: <?php phpinfo(); ?> 自瀏覽器開啟該指令碼地址URL,如http://localhost/phpinfo.php,若顯示頁面出現”oci8”說明配置成功。 下面我們嘗試連線Oracle資料庫,Oracle授權以及資料庫資訊會返回給oci_connect()函式以建立連線。一般我們要用到一個tnsname以便遠端連線,不懂得話建議你閱讀下Oracle的基礎文件,除了Net connection identifier(網路連線id 可能是tnsname也可能是easyconnect字串等)外當然還需要使用者名稱和密碼。有好幾種方法可以通過PHP連線資料庫,下面是其中一個示例使用Oracle的EasyConnect語法的連結標示並要求以HR使用者模式登陸名為MYDB的遠端資料庫: $c = oci_connect(`hr`, `hr_password`, `//mymachine.mydomain/MYDB`); 您可能需要閱讀Oracle Using the Easy Connect Naming Method文件以便了解EasyConnect。 注意在資料庫中HR使用者可能被鎖住了,我們假設你是一位稱職的DBA,可以很容易解決這類問題。 開始嘗試在PHP上使用Oracle,下面是個簡單的示例,你可能需要修改其中連線標示(指`mymachine.mydomain/MYDB`這個)以便連線自己的資料庫,示例用以顯示HR使用者擁有的所有表: <?php $conn = oci_connect(`hr`, `hr_password`, `mymachine.mydomain/MYDB`); $query = `select table_name from user_tables`; $stid = oci_parse($conn, $query); oci_execute($stid, OCI_DEFAULT); while ($row = oci_fetch_array($stid, OCI_ASSOC)) { foreach ($row as $item) { echo $item.” “; } echo “<br>
“; } oci_free_statement($stid); oci_close($conn); ?> 問題: 檢查Apache錯誤日誌檔案,避免可能發生的啟動錯誤。 零時開啟display_error=on選項以顯示指令碼中的問題,這需要在php.ini中加入” display_error=on”。 用SQL*PLUS檢測可能的環境問題等。 結語 安裝Oracle簡潔客戶端以及OCI 8擴充套件十分簡便,各元件安裝和更新也很容易。 未來PHP 5.3將預設包含OCI 8 1.3版擴充套件。
本文轉自maclean_007 51CTO部落格,原文連結:http://blog.51cto.com/maclean/1276844
相關文章
- 配置pycharm連線linuxPyCharmLinux
- linux配置連線xshellLinux
- 在 Linux 上把 Vim 配置為預設編輯器Linux
- php-fpm配置Unix socket連線死活不行PHP
- xshell連線不上linux問題Linux
- PHP提供Oracle支援增加oci8模組PHPOracle
- 滑鼠怎麼連線在電腦上 滑鼠連線在電腦上的方法步驟
- 在Linux上檢視活躍執行緒數與連線數Linux執行緒
- UltraEdit下ftp配置,UE遠端連線linuxFTPLinux
- PHP 連線 OraclePHPOracle
- PHP 連線oraclePHPOracle
- php連線mongodbPHPMongoDB
- linux網路配置及虛擬機器連線不上網排錯思路Linux虛擬機
- 【PG】PG在linux上的線上和離線安裝Linux
- 如何從 Windows 上用 SSH 連線到 LinuxWindowsLinux
- 在 Linux 上配置一個 syslog 伺服器Linux伺服器
- 為什麼使用finalshell連線linux去使用?Linux
- linux配置mysql資料庫遠端連線失敗LinuxMySql資料庫
- linux,ssh連線Linux
- 在Linux上離線安裝SQL Server 2017LinuxSQLServer
- 為什麼我的 PHP 資料庫連線失敗?PHP資料庫
- git配置連線githubGithub
- 11 配置加密連線加密
- JPA配置mysql連線MySql
- Xmanager4遠端連線linux圖形介面(vsftpd配置)LinuxFTP
- Linux上Redis使用視覺化工具RedisDesktopManager遠端連線不上LinuxRedis視覺化
- flume線上配置
- 在VS code使用Remote-SSH遠端連線Linux 開發C++ 配置詳細介紹REMLinuxC++
- linux連線window cmdLinux
- win10連線不上網路印表機怎麼辦 為什麼連線不上印表機Win10
- PHP 連線access資料庫PHP資料庫
- php5.X連線kafkaPHPKafka
- 在Deepin Linux作業系統中如何連線Microsoft OneDriveLinux作業系統ROS
- CobaltStrike上線LinuxLinux
- golang 連線oracle 11g資料庫-遇到的坑與如何解決-No package 'oci8' foundGolangOracle資料庫Package
- MySQL 5.7配置SSL連線MySql
- Loopback 4配置連線MySQLOOPMySql
- 在 Linux 下配置 RAIDLinuxAI
- 【配置上線】Linux克隆安裝Oracle資料庫軟體LinuxOracle資料庫