Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 10g Instant Client

在Linux上启用PHP OCI8扩展
要在Linux上添加Oracle连接,需要重新编译PHP。
1.下载并安装Apache
  1. cd apache_1.3.31  
  2. ./configure --prefix=/usr/local/apache   
  3. --enable-module=so   
  4. --enable-shared=max   
  5. --enable-module=most  
  6. make  
  7. make install  
--enable-module=so so模块用来提供DSO支持的apachehe核心模块
--enable-shared=max 除了so以外的所有标准模块都编译成DSO模块(so不能被编译成DSO)
--enable-module=most 将一些常用的,不在缺省常用模块中的模块编译进Apache
2.下载并解压Instant Client
instantclient-odbc-linux32、instantclient-jdbc-linux32根据自己需要是否解压。
  1. unzip instantclient-basic-linux32-10.2.0.3-20061115.zip -d /tmp  
  2. unzip instantclient-sdk-linux32-10.2.0.3-20061115.zip -d /tmp  
  3. unzip instantclient-sqlplus-linux32-10.2.0.3-20061115.zip -d /tmp  
  4. mv instantclient_10_2 /usr/local  
  5. export LD_LIBRARY_PATH=/usr/local/instantclient_10_2  
  6. cd $LD_LIBRARY_PATH  
  7. ln -s libclntsh.so.10.1 libclntsh.so  
  8. ln -s libocci.so.10.1 libocci.so 实际安装时,并未创建此连接  
  9. ln -s libsqora.so.10.1 libsqora.so 实际安装时,并未创建此连接  
3.下载并安装php
  1. tar -xvzf php-5.2.3.tar.gz  
  2. ./configure --prefix=/usr/local/php   
  3. --with-apxs=/usr/local/apache/bin/apxs   
  4. --with-oci8=instantclient,$LD_LIBRARY_PATH   
  5. --enable-sigchild  
  6. make  
  7. make install  
  8. cp php.ini-dist /usr/local/lib/php.ini  
4.编辑/usr/local/apache/conf/httpd.conf 并添加:
  1. AddType application/x-httpd-php .php  
  2. AddType application/x-httpd-php-source .phps  
  3. ServerName 127.0.0.1  
  4. DocumentRoot "/var/www"  
  5. <Directory "/var/www">  
  6. DirectoryIndex index.html index.php  
5.测试OCI8支持
<?php phpinfo(); ?>
浏览器页面应包含一个显示“OCI8 Support enabled”的“oci8”部分。
6.测试连接Oracle
(A)sqlplus
  1. export LD_LIBRARY_PATH=/usr/local/instantclient_10_2  
  2. export TNS_ADMIN=/usr/local/instantclient_10_2  
  3. sqlnet.ora文件内容如下:  
  4. SQLNET.AUTHENTICATION_SERVICES= (NTS)  
  5. NAMES.DIRECTORY_PATH= (TNSNAMES)  
  6. tnsnames.ora文件内容如下:  
  7. test =  
  8. (DESCRIPTION =  
  9. (ADDRESS_LIST =  
  10. (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))  
  11. )  
  12. (CONNECT_DATA =  
  13. (SID = test)  
  14. )  
  15. )  
  16. ./sqlplus user/passwd@test  
(B)php
  1. vi /etc/rc.local  
  2. export LD_LIBRARY_PATH=/usr/local/instantclient_10_2  
  3. export TNS_ADMIN=/usr/local/instantclient_10_2  
  4. export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"  
  5. /usr/local/apache/bin/apachectl start  
  6. vi /var/www/testoci.php  
  7. <?php  
  8. $conn = ocilogon("user", "passwd", "test");  
  9. $query = "select table_name from user_tables";  
  10. $stid = ociparse($conn, $query);  
  11. ociexecute($stid, OCI_DEFAULT);  
  12. while($succ = ocifetchinto($stid, $row))  
  13. {  
  14. foreach($row as $item) {echo $item." ";}  
  15. echo "<br> ";  
  16. }  
  17. ocilogoff($conn);  
  18. ?>  
在FC3下通过。
在Windows上启用PHP OCI8扩展
1.从OTN的Instant Client页面下载用于Windows的Instant Client Basic程序包。
2.创建一个子目录(例如,c:instantclient10_1),然后从压缩文件中复制以下库:
oraociei10.dll、orannzsbb10.dll、oci.dll
要使用PHP老版本的“oracle”扩展(在php.ini中使用“extension=php_oracle.dll”启用),则复制ociw32.dll而非 oci.dll。
3.将c:instantclient10_1添加到PATH中(位于其他Oracle目录之前)。
如果使用了tnsnames.ora文件定义Oracle Net服务名称,则将tnsnames.ora复制到c:instantclient10_1,并将用户环境变量TNS_ADMIN设置为c:instantclient10_1。也可以在用户环境变量LOCAL中定义默认的服务名称。
设置必要的Oracle全球化语言环境变量,如NLS_LANG。如果没有设置,则使用默认的本地环境。有关更多详细信息,请参见Oracle PHP应用程序全球化概述。
无需设置不必要的Oracle变量,如ORACLE_HOME和ORACLE_SID。
4.编辑php.ini,并不要将OCI8扩展设为注释:
extension=php_oci8.dll
将extension_dir指令设置为完整的PHP扩展DLL路径。在PHP 4中,DLL位于PHP软件的“extensions”子目录中。在PHP 5中,它们位于“ext”中。
5.重新启动Apache。关闭和启动Oracle的几种方法总结Oracle的timestamp类型使用相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数