最近同事调试项目需要windows本地搭建php连接oracle数据库,以前一直想写,但是忘记了或者没时间,这次有时间就把部署过程记录下来,留给自己或者不了解的人参考一下
instantclient部署
1.首先我们要下载oracle连接客户端支持 instantclient 下载链接 https://www.ora cle.com/database/technologies/instant-client/downloads.html
此处根据自己的电脑位数 选择对应的版本
2.然后选择适合自己的版本,此处我选择的是12.2版本
3.下载完了以后解压,然后将解压的文件夹放到自己指定的目录,如下
4.然后
a.在D:oracleinstantclient_12_2下新建tnsnames.ora配置文件,内容如下:
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.being.com)
)
)
右击计算机 ->属性->高级系统设置->环境变量
b.将D:oracleinstantclient_12_2添加至系统环境变量
c.新增系统变量
NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252 -->> 服务器端字符集
TNS_ADMIN=D:oracleinstantclient_12_2 -->> 指定tnsnames.ora所在位置
接下来配置php oci扩展
php连接oracle模块支持pdo_oci:
http://pecl.php.net/package/PDO_OCI PDO_OCI-1.0.tgz Oracle Call Interface
driver for PDO
http://pecl.php.net/package/oci8 oci8-2.0.8.tgz Extension for Oracle Database,allows you to access Oracle databases
然后在本地网站根目录创建文件 phpinfo.php ,并写入代码如下
<?php phpinfo(); ?>
然后运行php文件,查看php版本和位数
根据自己的php版本和位数 和线程安全情况,下载对应的pdo oci扩展和php oci扩展,如下
NTS是非线程安全 TS是线程安全
解压这两个文件夹,将php_pdo_oci.dll 和php_oci8.dll 、php_oci8_11g.dll 、php_oci8_12c.dll 放入php安装目录下的ext目录下,其中php_oci8_11g.dll和php_oci8_12c.dll根据自己要链接的oracle版本是 11g 还是12c 按需放入,如果不清楚的就一起放入
然后在php安装目录内的配置文件php.ini 添加扩展代码
extension=php_oci8.dll extension=php_oci8_11g.dll extension=php_oci8_12c.dll extension=php_pdo_oci.dll
最后重启nginx 或者apache服务,再次查看phpinfo,如果出现如下图所示,就说明oci扩展安装成功,liunx的php oci扩展部署思路和windows类似