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

15.8k views Asked by At

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!

3

There are 3 answers

0
VolkerK On BEST ANSWER

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

0
Cyril Bargeton On

For additonal clue to fix this issue I've noted that under IIS 10 / Windows Server 2016 I wasn't abble to make this interface working using a 32bits version of PHP 7.2 (FastCGI).

The solution was quite evident for me : running it with the 64 bit version of PHP 7.2 (in my case by creating a new application for the subdirectory "PHPWebadmin" and changing handler mapping as the main application needs to be run using a 32 bits version of php due to some spécific 32 bits developped extension).

Hope it may help,

Regards

0
user2487816 On

If you are using windows 8 and apache server and extension=php_com_dotnet.dll did not work for you then:

copy php_com_dotnet.dll file to c:/windows/system32 and write to php.ini file:

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

I am using windows8 and apache server for windows. Worked for me.

I hope this helped to you :))