环境
主机linux
[devtac@test_1 ~]$ lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 6.4 (Santiago) Release: 6.4 Codename: Santiago [devtac@test_1 ~]$ uname -a Linux test_1.smartpay.com.cn 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
uname -a 看出系统是64位。
php 版本
php-5.5.15.tar.gz
已经源码安装于/usr/local/php
apache 2.X 已经源码安装 并集成了php.
2.需要的软件
oracle 的到此处下载
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
instantclient-sdk-linux.x64-12.1.0.2.0.zip
3.安装oracle三个组件
rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm ln -s /usr/lib/oracle/12.1/client64 /usr/lib/oracle/12.1/client ln -s /usr/include/oracle/12.1/client64 /usr/include/oracle/12.1/client unzip instantclient-sdk-linux.x64-12.1.0.2.0.zip cp -fr /home/devtac/soft/instantclient_12_1/sdk /usr/include/
修改 etc/profile
vi /etc/profile 在文件最后面加入 export ORACLE_HOME=/usr/lib/oracle/12.1/client64 export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64:$LD_LIBRARY_PATH export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
退出 vi,执行,使修改立即生效 source /etc/profile
LD_LIBRARY_PATH,NLS_LANG 目前还没发现在此次安装多大用处。
4 安装pdo 和oci
4.1 安装pdo
cd 到php 解压目录下
php-5.5.15/ext/pdo_oci
/usr/local/php/bin/phpize 会生成configure 文件 ./configure --with-oci8 --with-php-config=/usr/local/php/bin/php-config make #make 时报找不到oci.h文件 我然后把/usr/include/sdk/include 目录下头文件都复制过去了 cp /usr/include/sdk/include/*.h /home/devtac/soft/php-5.5.15/ext/pdo_oci/ make #成功 make install #成功 #make install 成功后 /usr/local/php/lib/php/extensions/no-debug-zts-20121212/目录下生成 -rwxr-xr-x. 1 root root 496655 8月 27 17:46 opcache.so -rwxr-xr-x. 1 root root 128581 9月 24 11:07 pdo_oci.so
配置 pdo
php.ini 里添加
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20121212/pdo_oci.so
重启apache
php -m | grep PDO 检查是否扩展成功,浏览器访问info.php 也可以验证是否扩展成功
[root@test_1 bin]# /usr/local/php/bin/php -m | grep PDO PDO PDO_OCI
4.2 安装oci
与pdo 类似 以下是安装命令,不详述了
cd /home/devtac/soft/php-5.5.15 cd ext cd oci8/ /usr/local/php/bin/phpize ./configure --with-oci8 --with-php-config=/usr/local/php/bin/php-config make make install cd /usr/local/php/lib/php/extensions/no-debug-zts-20121212/
配置 php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20121212/oci8.so
/usr/local/php/bin/php -m | grep oci /usr/local/apache/bin/apachectl restart
5. 写个php 测试下
<?php $db="oci:dbname=//114.114.218.106:1521/xxxxx;"; $dbname="xxxx"; $dbpwd="xxxxx"; $pdo=new PDO($db,$dbname,$dbpwd); $sql="select * from table"; $result=$pdo->query($sql); foreach($result as $row){ echo $row[1]. "\t"; } ?>