我已经安装了 APACHE 2.4 x64 和 PHP7 x64 并下载了 PHP OCI 64 位库,但问题是每当我从 cli 运行 PHP 脚本时,它都会显示
PHP Startup: Unable to load dynamic library 'E:\software\server\php-7.0.11-Win32-VC14-x64\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application
此外,当我从 URL 调用 Web 应用程序时,它会说
Call to undefined function oci_pconnect()
我下载的OCI扩展也是64位的。这是链接:
http://windows.php.net/downloads/pecl/releases/oci8/2.1.2/php_oci8-2.1.2-7.0-ts-vc14-x64.zip
有人可以指导解决这个问题吗?
最佳答案
您可能混合使用了 TS(线程安全)和 NTS(非线程安全)版本。这些不会一起工作。了解有关 PHP 线程安全的更多信息 here .
PHP 7.0.11 NTS x64 , OCI8 2.1.2 NTS x64和 InstantClient 11.2.0.4.0 x64可以完美地协同工作(我刚刚下载了这三个文件并在新的 Win2K8 环境中测试了它们)。
请记住安装最新的 VC14 运行时 (Visual Studio 2015) 并修改 PATH
系统环境变量以包含 PHP 和 InstantClient 的目录,例如C:\php;C:\instantclient_11_2
。
关于PHP OCI8 扩展不适用于 PHP 7 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39664801/