致命错误:在PHP5.3,Apache2.2,Windows server 2008中找不到类'COM'

时间:2014-03-31 19:32:43

标签: php windows com apache2.2

另一个让我绝对疯狂的问题。这似乎是一个常见的错误,我无法用#34;传统"方法(其他人为同一问题提供的答案)..

Windows 2008 R2 - x64

Apache 2.2.25

PHP 5.3.27

我在php.ini中有这些行:

extension_dir = "C:\Program Files (x86)\PHP\ext\"
[COM_DOT_NET]
extension=php_com_dotnet.dll

php_com_dotnet.dll存在于该目录中,我甚至更进一步尝试为Everyone为PHP文件夹分配读取权限,尽管它应该具有访问权限,因为它会加载其他库。

以下是来自phpinfo()的configure命令,它实际上是提到COM的唯一内容。

  

cscript / nologo configure.js" - enable-snapshot-build"   " - 禁用-ISAPI" " - 使能调试包" " - 无需-MSSQL"   " - 无需-PDO-MSSQL" " - 无需-Pi3Web服务器"   " - 与-PDO-OCI = C:\ PHP-SDK \ ORACLE \ instantclient10 \ SDK,共享"   " - 与-OCI8 = C:\ PHP-SDK \ ORACLE \ instantclient10 \ SDK,共享"   " - 与-oci8-11g = C:\ PHP-SDK \ ORACLE \ instantclient11 \ SDK,共享"   " - 使对象-OUT-DIR = .. / OBJ /"的" - 使-COM-DOTNET =共享"   " - 与-mcrypt的静态=" " - 禁止静电-分析"

非常感谢任何建议!感谢

修改

get_cfg_var('cfg_file_path') = C:\Program Files (x86)\PHP\php.ini

我编辑的是php.ini。

此外,这里是错误日志,没有任何指向问题....

[Mon Mar 31 14:51:09 2014] [notice] Apache/2.2.25 (Win32) PHP/5.3.27 mod_aspdotnet/2.2 configured -- resuming normal operations

[Mon Mar 31 14:51:09 2014] [notice] Server built: Jul 10 2013 01:52:12

[Mon Mar 31 14:51:09 2014] [notice] Parent: Created child process 3708

[Mon Mar 31 14:51:09 2014] [notice] mod_aspdotnet: CorBindToRuntimeEx has loaded version v2.0.50727 of the .NET CLR engine.

[Mon Mar 31 14:51:40 2014] [notice] Child 3708: Child process is running

[Mon Mar 31 14:51:40 2014] [notice] Child 3708: Acquired the start mutex.

[Mon Mar 31 14:51:40 2014] [notice] Child 3708: Starting 250 worker threads.

[Mon Mar 31 14:51:40 2014] [notice] Child 3708: Starting thread to listen on port 8086.

[Mon Mar 31 14:51:40 2014] [notice] Child 3708: Starting thread to listen on port 8084.

1 个答案:

答案 0 :(得分:0)

不是答案 - 只是想获得更多数据

的输出是什么
<?php
$config = file(get_cfg_var('cfg_file_path'));
foreach( $config as $n=>$l) {
    if ( false!==strpos($l, 'dotnet') ) {
        printf("%03d %s<br />\r\n", $n, $l);
    }
}
echo 'com_dotnet: ', extension_loaded('com_dotnet') ? 'yes':'no', "<br />\r\n";
echo 'class: ', class_exists('COM')  ? 'yes':'no', "<br />\r\n";

更新:(回答评论)

答案似乎是腐败的或某种方式&#34;坏&#34; php_com_dotnet.dll,Windows安装程序没有替换。我只是抓住匹配版本的二进制zip,手工覆盖dll - VOILA!将答案标记为答案,因为它是最接近的,让我走上了正确的轨道。