适用环境
- 操作系统:Windows10 64位
- PHPstudy集成环境
安装过程
安装一,配置文件开启扩展文件
在phpstudy集成工具中打开PHP的配置文件php.ini 。找到 ";extension=php_oci8.dll"
这句话,将其前面的分号去掉,结果如下:1
2
3extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
extension=php_pdo_oci.dll
题外话,一般我们开启扩展支持,只需要在php.ini中打开扩展就可以。
比如要连接oracle数据库,我们就只要打开 php_oci8.dll 和 php_oci8_11g.dll 就可以了。但是我们打开后,查看phpinfo()并没有开启,也没错误提示,这个问题就有点大,经过一番百度后,发现还需要安装客户端,所以这里我们还需要下载oracle的客户端,直接下载只有客户端支持库的。
安装二:下载并安装客户端
注意:
这里的32位,64位不是指的Windows操作系统,而是要根据你安装的PHP的位数,就好比今天我纠结了好久的为什么不行,然后注意到安装的是64位的客户端,按照系统看的。而PHP却是32位的(我是用的是集成环境 phpStudy),后更换成32位的客户端安装就真的可以了。附:如何判断PHP是32位,还是64位?
配置系统变量
将路径D:\Program Files (x86)\Oracle\Instant Client\bin
添加到系统变量中。
根据Oracle服务器的配置,修改Instant Client的配置
Oracle服务器的配置地址:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
tnsnames.ora文件内容如下:
1 | # tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora |
参照服务器的配置,修改Instant Client的配置:
Instant Client的地址:D:\Program Files (x86)\Oracle\Instant Client\network\admin\tnsnames.ora
tnsnames.ora文件内容:
1 | # tnsnames.ora Network Configuration File. |
至此,打开phpinfo页面,查看oci8的相关扩展信息是否开启,如图。
使用如下代码链接Oracle时报错,报错信息如下
链接代码:
1 | <?php |
错误码:
Oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
通过上网查到可通过修改listener.ora文件解决第5步的错误
添加了一段在安装目录D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN 下文件修改了加上一段复制的代码(灰色选中部分):
1 | SID_LIST_LISTENER = |
关掉Service和LISTENER,再启动Service和LISTENER
注意: 复制请留意到ORACLE_HOME =目录,复制目录一定是要本机文件目录,细节真的很重要!
参考文档:
在 Linux 和 Windows 上安装 PHP 和 Oracle Instant Client
PHP 无法开启 OCI8 扩展原因
Windows PHP/phpStudy 连接 甲骨文Oracle 数据库 oci8
Oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec