当前位置: 首页 > Linux

PHP使用Oracle数据库准备

时间:2023-04-06 02:33:26 Linux

系统:LinuxCentos7.0前言:要想PHP操作Oracle数据库,安装Oracle扩展是绝对必要的。php的Oracle扩展称为ocioracle扩展包。下载地址:http://www.oracle.com/technet...网页上会显示以下下载列表:下载OracleDatabase10gInstantClientforMicrosoftWindows(32-bit)DownloadOracleDatabase10gInstantClientforMicrosoftWindows64-bitItanium下载适用于MicrosoftWindows(x64)的Oracle数据库10g即时客户端下载适用于Linuxx86的Oracle数据库10g即时客户端下载适用于Linuxx86-64的Oracle数据库10g即时客户端下载适用于LinuxItanium的Oracle数据库10g即时客户端。..如果系统是32位的就选第四个,64位系统就选第五个。选择错误会导致报makephpoci8兼容失败。下面是一个64位系统的演示。第一步:安装oraclerpm-ivhoracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpmrpm-ivhoracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpmrpm-ivhoracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm说明:oracle包版本必须兼容oci8包版本。php官网给出的参考文字是UsetheOCI8extensiontoaccessOracleDatabase。该扩展可以与Oracle数据库10.2、11或12.1中的Oracle客户端库链接。这些库可以在数据库安装中找到,也可以在Oracle提供的免费OracleInstantClient中找到。适用Oracle的标准跨版本连接。例如,与InstantClient11.2链接的PHPOCI8可以连接到Oracle数据库9.2及更高版本。有关详细信息,请参阅Oracle的注释“Oracle客户端/服务器互操作性支持”(ID207303.1)。PHPOCI82.0可以用PHP5.2构建。当使用PHP4.3.9到PHP5.1.x时,或者只有OracleDatabase9.2客户端库可用时,请使用较旧的PHPOCI81.4.10。官网是说安装oci8的时候一定要保证oracle扩展+oci8+php版本一定要达成一致,不然会出问题--英文不好,大概就是这个意思。第二步:下载phpoci扩展,安装oci8扩展下载地址:http://pecl.php.net/package/oci8我的php版本是5.5.4根据官网的描述,我选择的是oci8-2.0.0。tgzpackage.tarzxvfoci8-2.0.0.tgzcdoci8-2.0.0.tgz/usr/bin/phpize./configure--with-php-config=/usr/bin/php-config--with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/libmakemakeinstall说明:1.oci8-2.0.0.tgz这是一个单独的扩展包,也可以下载完整的php安装包,如php-5.5.28.tar.gz,解压后,cd到ext目录下的oci8目录下。2、phpize和php-config都不一定在上面的路径下,因为每个人安装lamp环境的方法不一样,可以使用which命令查找,比如whichphpize。3、重点是确保phpize、php-config、oracle的安装路径正确。第三步:配置php.ini其实大多数时候,第三步是不需要的。系统默认会添加扩展名,可以使用find命令找到这个文件,找到一个类似于extension=""的配置项,添加一行extension="oci8.so"说明:make和makeinstall第二步后,会生成一个oci8.so文件,可以使用find命令查找路径,extension="oci8.so"必须结合配置项extension_dir="/usr/lib/php/modules",意思这两句就是找到/usr/lib/php/modules下的oci8.so扩展,也就是说如果你的oci8扩展不是在/usr/lib/php/modules目录下生成的,那你就需要改extension_dir以确保oci8.so的路径是正确的。以上步骤完成后,重启代理服务。PHPINFO()检查一下。成功了吗?!