致命错误:第13行的E:\ Server \ wwwroot \ PHPWebAdmin \ initialize.php中找不到类'COM'

时间:2012-08-17 08:44:52

标签: php windows-server-2008 dcom hmail-server

我正在尝试在“Windows Server 2008 Enterprise Edition Service Pack 1”中设置 hMailServer 。我已成功设置hMailServer,Apache,PHP和webmail接口“AfterLogic webMail”。所有工作好吧。但是当我尝试安装“ PHPWebAdmin ”时,我遇到了问题。 错误消息如下:

Fatal error: Class 'COM' not found in E:\Server\wwwroot\PHPWebAdmin\initialize.php on line 13

访问“http://192.168.2.66:8088/PHPWebadmin/”时会出现此信息。

我已经配置了PHP配置文件 php.ini 选项,如下所示:

[PHP]
register_globals = Off
display_errors = Off

doc_root = "E:/Server/wwwroot"
extension_dir = "E:/Server/php5_4_5/ext"

[Session]
session.save_path = "E:/Server/php5_4_5/tmp"

[COM]
com.allow_dcom = true

我也完成了这些事情,因为hMailServer手册建议:

DCOM permissions
Overview
By default, IIS6 is not allowed to connect to hMailServer because of the Distributed COM permissions that Windows uses. Also, Apache run as a user account with restricted permissions is not allowed to connect by default.

Steps
Follow these steps to give IIS or Apache the required permissions to connect to hMailServer using DCOM.

1.Start DCOM config by selecting Start, Run, enter dcomcnfg.exe and press OK. 
2.In the Component Services program, expand the Component Services folder 
3.Expand down to Computers | My Computer | DCOM Config 
4.Right-click on hMailServer and select properties 
5.Select the Security tab 
6.Under "Launch and Activation Permissions", select Customize and click on Edit 
7.Under "Group or user names", click Add 
8.For IIS6: add the built-in anonymous IIS user account 
9.For Apache: add the Apache user account 
10.Set the Local Launch and Local Activation permissions for this user to Allow 

实际上,我甚至尝试在DCOM配置中授予EveryOne许可。

安装PHPWebAdmin是为了让用户可以更改他们的电子邮件密码。

环境:Windows Server 2008,Apache2.2,PHP5.4.5。

为什么会出现这个问题?以及如何处理?

非常感谢!

3 个答案:

答案 0 :(得分:6)

来自windows.php.net的php 5.4.5版本将com / dotnet模块作为扩展名dll。如果您的PHP版本也是如此,您可以通过

启用该模块
extension=php_com_dotnet.dll

在你的php.ini

答案 1 :(得分:0)

如果您使用的是Windows 8和Apache服务器 extension=php_com_dotnet.dll然后对你不起作用:

php_com_dotnet.dll file复制到c:/windows/system32 并写入php.ini文件:

extension = c:/windows/system32/php_com_dotnet.dll

我正在为Windows使用windows8和apache服务器。 为我工作。

我希望这对你有帮助:))

答案 2 :(得分:0)

有关解决此问题的其他线索,我注意到在IIS 10 / Windows Server 2016下,我并不希望使用32位版本的PHP 7.2(FastCGI)使该接口正常工作。

该解决方案对我来说很明显:使用PHP 7.2的64位版本运行它(在我的情况下,通过为子目录“ PHPWebadmin”创建一个新应用程序并更改处理程序映射,因为主要应用程序需要使用32位版本的php(由于某些特定的32位开发扩展)。

希望这会有所帮助,

致谢