• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

CentOS6.5下PHP连接Oracle Database环境部署

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

编译环境准备

安装升级PHP插件和依赖

yum install php-devel php-pear php-fpm php-gd php-ldap php-mbstring php-xml php-xmlrpc php- zlib zlib-devel bc libaio glibc

安装InstantClient

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html可以下载。

因为环境的问题,本文中安装11.2版的InstantClient,下载以下文件:

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

安装rpm包

rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

建立软链接

ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client

64位系统需要创建32位的软链接,防止编译出错

安装PHP扩展库

因为生产环境PHP版本过老问题,所以只能下载老版本的PDO_OCI和OCI8,如果环境中PHP版本是最新的,可通过pecl安装这两个PHP扩展库,更为方便。

安装PDO_OCI

下载

wget https://pecl.php.net/get/PDO_OCI-1.0.tgz
tar -xvf PDO_OCI-1.0.tgz
cd PDO_OCI-1.0

编辑config.m4:

在第10行左右找到与下面类似的代码,添加:

elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
    PDO_OCI_VERSION=11.2

在第102行左右添加:

11.2)
    PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
    ;;

编译:

phpize
./configure --with-pdo-oci=instantclient,/usr,11.2
make
make install

启用扩展:

touch /etc/php.d/pdo_oci.ini
echo "extension=pdo_oci.so" > /etc/php.d/pdo_oci.ini

可通过

php -m

或者通过phpinfo()函数查看是否安装成功

安装OCI8

下载编译:

wget https://pecl.php.net/get/oci8-2.0.8.tgz
tar -xvf oci8-2.0.8.tgz
cd oci8-2.0.8
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
make
make install

启用扩展:

touch /etc/php.d/oci8.ini
echo "extension=oci8.so" > /etc/php.d/oci8.ini

查看扩展库是否安装成功同上一节

其他

如果不能在生产环境中编译,在生产环境安装好InstantClient后,可以在自己的环境中编译PHP的扩展库,编译好后产生的文件在/usr/lib64/php/modules目录中,分别为oci8.so和pdo_oci.so,将这两个文件上传到生产环境中的相同目录下,并给与755的权限,再创建配置文件激活PHP扩展即可。

测试是否安装成功

<?php
$dbconn=oci_connect(\'username\', \'password\', \'hostIP/databasename\');
 
if($dbconn!=false)
{
    echo "connect success\n";
    if(oci_close($dbconn)==true)
    {
        echo "close success!\n";
    }
}
else
{
    echo "connect fail\n";
}
?>

或者

<?php
    $conn = oci_connect(\'username\', \'password\', \'hostIP/databasename\');
    $stid = oci_parse($conn, \'select table_name from user_tables\');
    oci_execute($stid);
    while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false)
    {
        foreach ($row as $item)
        {
            echo "$item\n";
        }
    }
?>

执行这两个PHP脚本都能测试是否安装成功


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP + ORACLE 远程连接数据库环境配置发布时间:2022-07-10
下一篇:
PHP 连接Oracle及乱码问题笔记 - 清茶居士发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap