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

carl picture carl · Aug 17, 2012 · Viewed 15.3k times · Source

I am trying to set up hMailServer in "Windows Server 2008 Enterprise Edition Service Pack 1".I've setup hMailServer,Apache,PHP and webmail Interface "AfterLogic webMail" successfully.And all work well.But I am stuck in a problem while I tried to install "PHPWebAdmin"。 Error message as follows :

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

This infomation occurs while visiting "http://192.168.2.66:8088/PHPWebadmin/".

I've configured PHP configuration file php.ini options as follows:

[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

I've also finished these things as hMailServer manual suggests:

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 

Actually,I even tried to give permission to EveryOne in the DCOM configuration.

Installing PHPWebAdmin is to give users a place to change their email password.

Enviroment here:Windows Server 2008,Apache2.2,PHP5.4.5.

Why this problem happen? And How to handle it?

Thanks a lot!

Answer

VolkerK picture VolkerK · Aug 17, 2012

The php 5.4.5 build from windows.php.net ships the com/dotnet module as extension dll. If that's the case with your version of php too you can enable the module via

extension=php_com_dotnet.dll

in your php.ini