這篇文章主要介紹了Linux下安裝oracle客戶端并配置php5.3,需要的朋友可以參考下
因項目需要在linux下進(jìn)行php5.3的oracle客戶端編譯,簡要介紹一下步驟及走過的彎路。
1.下載Oracle客戶端程序包,其中包含OCI、OCCI和JDBC-OCI等相關(guān)文件。
1.1下載文件地址
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
根據(jù)操作系統(tǒng)的版本選擇對應(yīng)的軟件,我需要的是X86_64選擇
Instant Client for Linux x86-64
1.2需要下載的文件如下:
oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
需要強(qiáng)調(diào)的一點是這里需要注冊一個oracle的賬戶才能正常下載。
2.安裝Oracle客戶端程序包。
將程序包上傳到服務(wù)器指定目錄里,代碼如下:
- chmod +x *.rpm
 - #給RPM包賦執(zhí)行權(quán)限
 - rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
 - #安裝RPM包
 - echo "/usr/lib/oracle/11.1/client64/lib/" > /etc/ld.so.conf.d/oracle_client.conf
 - #將庫路徑加到默認(rèn)加載中
 - /sbin/ldconfig
 - #重新加載動態(tài)鏈接庫
 
3.安裝OCI8的php擴(kuò)展(這里指定php的安裝路徑為/usr/local/webserver/php)代碼如下:
- yum install libaio
 - #yum安裝libaio庫,libaio是Linux下的一個異步非阻塞接口,它提供了以異步非阻塞方式來讀寫文件的方式,讀寫效率比較高
 - wget http://pecl.php.net/get/oci8-1.4.10.tgz
 - #下載OCI擴(kuò)展
 - tar zxvf oci8-1.4.10.tgz
 - #解壓
 - cd oci8-1.4.10
 - /usr/local/webserver/php/bin/phpize CFLAGS="-I/usr/lib/oracle/11.1/client64" CXXFLAGS="-I/usr/lib/oracle/11.1/client64"
 - #使用phpize準(zhǔn)備 PHP 外掛模塊的編譯環(huán)境,會根據(jù)指定的環(huán)境變量生成編譯時需要的makefile,phpize是屬于php-devel的內(nèi)容,所以centos下只要運(yùn)行yum install php-devel進(jìn)行安裝即可
 - ./configure –with-php-config=/usr/local/webserver/php/bin/php-config –with-oci8=/usr/lib/oracle/11.1/client64
 - make
 - make install
 - #編譯,安裝
 
需要強(qiáng)調(diào)的是make的時候會報錯,顯示各種找不到庫文件,需要對makefile文件進(jìn)行修改加入oralce的運(yùn)行庫地址
打開makefile,尋找INCLUDE,形式如下:
INCLUDES = -I/usr/local/php/include/php -I/usr/include/oracle/10.2.0.3/client
然后在末尾加上="-I/usr/lib/oracle/11.1/client64,然后重新make就會成功了。
4.修改PHP.ini(/usr/local/webserver/php/etc/php.ini)
在extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"后增加一行:
extension = "oci8.so"
5.重啟apache讓OCI生效
6.在web目錄下創(chuàng)建phpinfo.php文件在其中輸入一下內(nèi)容,并通過web訪問,代碼如下:
- <?php
 - phpinfo();
 - ?>
 
如果找到OCI8的部分就說明OCI安裝正常了,如下圖所示
接下來就能通過php訪問oracle數(shù)據(jù)庫了,需要注意的是php下Oracle的連接字符串
代碼如下:
- <?php
 - $username='***';
 - $passwd='***';
 - $protocol='TCP';
 - $SERVICE_NAME='***';
 - $ORACLE_SERVER_IP_ADDRESS='***.***.***.***';
 - $Port='1521′;
 - $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = $protocol)(HOST = $ORACLE_SERVER_IP_ADDRESS)(PORT = $Port)))(CONNECT_DATA=(SID=$SERVICE_NAME)))";
 - $conn = oci_connect($username,$passwd, $db);
 - PutEnv("NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8");
 - if (!$conn) {
 - $e = oci_error();
 - print htmlentities($e['message']);
 - exit; //m.survivalescaperooms.com
 - }else {
 - echo "連接oracle成功!";
 - return $conn;
 - }
 - ?>
 
新聞熱點
疑難解答
圖片精選