我目前正在设置Windows 10 Pro x64机器以使用Apache,PHP及其oci8扩展。 我之前成功地设法让oci8在OSX 10.11和Windows 2012 Server上运行,所以我想我知道该怎么做。但这是32位 - 现在是64位。
现在安装的软件是:
我没有让它发挥作用。错误消息是:
警告:PHP启动:无法加载动态库 'ext \ php_oci8_12c.dll' - Das angegebene Modul wurde nicht gefunden。 (找不到模块。)
在第0行的未知中
扩展'oci8'不存在。
我通过将其目录写入PATH变量来安装Oracle Instant Client,并将php_oci8_12c.dll文件复制到PHP ext目录并取消注释php.ini中的相应行。应该不够吗?
我在Stackoverflow和其他网站上阅读过很多关于类似问题的帖子,我尝试过的事情:
如果我将php_oci8_12c.dll x64更改为32位,我会收到不同的错误消息:
警告:PHP启动:无法加载动态库'ext \ php_oci8_12c.dll' - %1 istkeinezulässigeWin32-Anwendung。 (%1不是有效的Win32程序。)
在第0行的未知中
扩展'oci8'不存在。
任何想法都有什么问题?
谢谢!
答案 0 :(得分:1)
总结一下,
还有一件事...... NTS假设PHP不作为Apache模块运行, 那是对的吗?你在使用FastCGI吗? - ÁlvaroGonzález
是要走的路。如果有人遇到麻烦,以下是我采取的确切步骤:
将PHP安装为Apache模块。解压缩Instant Client并将其移动到所需位置。将此位置添加到PATH系统变量中。重启你的机器,它应该出现在你的phpinfo()中的'PATH'下。
然后我必须使PHP extension_dir成为绝对路径。所以没有'ext',而是'C:/ Program Files / php-7.0.3 / ext'。只有'ext'设置为extension_dir,我可以通过'php.exe filename.php'连接到远程Oracle DB。但Apache会在error.log中给我一个错误,它无法找到DLL。
如果选择保留PHP附带的oci DLL,则不需要复制DLL。不必更改/创建比PATH更多的环境变量。
至少在我的情况下: - )