我在使 OCI8 在我的服务器安装上运行时遇到了具体问题。
第一次设置:
- Win 2008 服务器 32 位
- ZendServer for PHP with Apache2.2
- 没有 php_oci8 文件的 PHP 版本 5.3.14
- 没有安装 oracle 东西
我需要能够连接到远程 oracle 数据库,所以我发现应该使用 OCI8 扩展。为了使 OCI8 工作,我还应该至少需要服务器上的 Oracle Instant Client,因为某些 DLL OCI8 需要。
我做了什么?
- 从他们的站点 ( oracle download site ) 下载了 Oracle Instant Client,版本 11.2.0.4.0
- 解压到文件夹中,我选择 Program Files/oci_11_2
- 将地址添加到windows变量路径
- 重新启动 Win
- 从 PECL 下载 php_oci8 库 (PECL oci8 dl site)
- 放入php.ini中设置的ext目录
- 在 php.ini 中添加了 extension=php_oci8.dll
- 重启apache
在这一切之后,我检查了 php_info,看看是否一切正常,但是没有 oci8 的迹象。
我尝试了较旧的 Oracle 即时客户端,在 php_oci8.dll、php_oci8_11g.dll 或 php_oci8_12c.dll 之间切换,但没有任何帮助。
我发现,由于环境部分中的 php_info 显示的值与在 Windows 中设置的值不同。 从 php 错误日志中,我还得到以下信息:
[30-May-2014 08:02:16 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\Zend\ZendServer\lib\phpext\php_oci8_11g.dll' - The specified module could not be found. in Unknown on line 0
目前,我不知道该怎么做,除非尝试重新安装 php(我不想这样做,因为与之相关的问题很多)、不同的 Oracle 即时客户端或不同的 php_oci8 库。我在谷歌上搜索了几个小时,尝试查看 Stack,但没有解决方案,只有一些提示,但没有帮助。有没有人遇到并解决过类似的事情?
最佳答案
我有同样的问题,以下步骤帮助我解决了问题。
下载 instantclient 并放置“C:\instantclient_11_2”
为 C:\instantclient_11_2 设置环境变量
检查您的 php 版本,即 PHP 版本 5.6.15
表格 http://pecl.php.net/package/oci8下载准确的版本,对我来说是 php_oci8-2.0.8-5.6-nts-vc11-x86.zip,解压并复制 php_oci8_11g.dll 到 php ext 文件夹,对我来说它是“C:\xampp\php\ext”
在 php.ini 中取消注释“extension=php_oci8_11g.dll”并重新启动 apache
检查 php_info(),应启用 oci8。
就这些。
关于php - Windows 服务器上的 OCI8 php 扩展安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23951335/