我在使用 PHP 扩展时遇到了问题。我尝试运行一个脚本,但什么也没发生,然后我检查了错误日志,结果如下:
PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_oci8.dll' - The specified module could not be found. in Unknown on line 0
以下文件也是如此:
php_oci8_11g.dll
php_pdo_oci.dll
php_sybase_ct.dll
php_com_dotnet.dll
除了 php_com_dotnet.dll 之外的所有文件都是随 PHP 安装一起安装的,所有文件都在 php.ini 配置中启用。在网上搜索后,我看到有人说必须将其复制到 system32 或 sysWOW64 文件夹,我照做了,但没有成功。然后我尝试在 cmd 中使用 regsvr32 注册它们,但每个文件都出现错误:
"The module name_of_the_module.dll failed to load"
我不明白我做错了什么。
服务器配置为Windows 2008 R2 64位,IIS7,PHP 5.3.27
答案1
如果找不到文件或库具有无法找到的依赖项,则 PHP 无法加载 DLL 文件。如果文件位于正确位置,则可能存在无法加载的依赖库。
例如(对于 OCI8,来自http://www.php.net/manual/en/oci8.requirements.php):
OCI8 1.4 扩展包含在 PHP 5.3、PHP 5.4 和 PHP 5.5 中。它也可以从 » PECL 获得。较新的 OCI8 2.0 版本仅可从 » PECL 获得。OCI8 1.4 需要 Oracle 12c、11g、10g 或 9iR2 客户端库,并将安装在 PHP 4.3.9 及以上版本上。OCI8 2.0 需要 Oracle 12c、11g 或 10g 客户端库,并将安装在 PHP 5.2 及以上版本上。
如果 Oracle 数据库与 PHP 位于同一台计算机上,则数据库软件已包含必要的库。如果 PHP 位于不同的计算机上,请使用免费的 » Oracle Instant Client 库。