[英]OCI8 with PHP7 - module not found
我目前正在设置Windows 10 Pro x64计算机,以与Apache,PHP及其oci8扩展一起使用。 之前,我成功地使oci8可以在OSX 10.11和Windows 2012 Server上工作,所以我认为我知道该怎么做。 但这是32位-现在是64位。
现在安装的软件是:
我不明白。 错误消息是:
警告:PHP启动:无法加载动态库'ext \\ php_oci8_12c.dll--原始模块。 (找不到模块。)
在第0行的Unknown中
扩展名“ oci8”不存在。
我通过将其目录写入PATH变量来安装Oracle Instant Client,并将php_oci8_12c.dll文件复制到PHP ext dir,并取消注释了php.ini中的相应行。 那还不够吗?
我已经在Stackoverflow和其他网站上阅读过很多关于类似问题的文章,这些都是我尝试过的:
如果将php_oci8_12c.dll x64更改为32位,则会收到不同的错误消息:
警告:PHP启动:无法加载动态库'ext \\ php_oci8_12c.dll'-%1 ist keinezulässigeWin32-Anwendung。 (%1不是有效的Win32程序。)
在第0行的Unknown中
扩展名“ oci8”不存在。
有什么主意吗?
谢谢!
总结一下,
还有一件事... 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更多的环境变量。
至少在我的情况下:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.