PHP Fatal error: Class 'DOMDocument' not found in

环境:CentOS 6.5 64bit

PHP版本:5.3.3


【问题】

搭建stalker server,登陆管理页面后进入IPTV channels/Channels下,Add a channel:http://10.209.177.82/stalker_portal/server/adm/tv-channels/iptv-list/add-channel出现错误:HTTP ERROR 500

同样,进入Users下Add user:http://10.209.177.82/stalker_portal/server/adm/users/add-users 出现错误:HTTP ERROR 500


从/etc/httpd/logs/stalker-error_log看到错误信息:

PHP Fatal error:  Class 'DOMDocument' not found in /var/www/html/stalker_portal/admin/vendor/symfony/config/Symfony/Component/Config/Util/XmlUtils.php on line 52, referer: http://10.209.177.82/stalker_portal/server/adm/tv-channels/iptv-list

PHP Fatal error:  Class 'DOMDocument' not found in /var/www/html/stalker_portal/admin/vendor/symfony/config/Symfony/Component/Config/Util/XmlUtils.php on line 52, referer: http://10.209.177.82/stalker_portal/server/adm/users/users-list


【解决方法】

从错误信息描述来看,是没有安装DOM扩展,对应只要安装php-xml就可以解决。

参考内容:https://stackoverflow.com/questions/14395239/class-domdocument-not-found


1.检查php_xml是不是这个扩展没有安装或打开。

[root@localhost stalker_portal]# php -m | grep xml
libxml
xml

[root@localhost stalker_portal]# php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
ereg
exif
fileinfo
filter
ftp
geoip
gettext
gmp
hash
iconv
imagick
intl
ionCube Loader
json
libxml
mbstring
mcrypt
memcache
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
tidy
tokenizer
xml
zip
zlib

[Zend Modules]
the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured)
[root@localhost stalker_portal]# ll /etc/php.d/
total 76
-rw-r--r-- 1 root root   49 Mar 22  2017 curl.ini
-rw-r--r-- 1 root root   57 Mar 22  2017 fileinfo.ini
-rw-r--r-- 1 root root   90 Jan 23 17:54 geoip.ini
-rw-r--r-- 1 root root   55 Jan 23 11:01 imagick.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 intl.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 json.ini
-rw-r--r-- 1 root root   57 Mar 22  2017 mbstring.ini
-rw-r--r-- 1 root root   53 Jan 18 13:47 mcrypt.ini
-rw-r--r-- 1 root root 1329 Jun 22  2012 memcache.ini
-rw-r--r-- 1 root root   53 Mar 22  2017 mysqli.ini
-rw-r--r-- 1 root root   51 Mar 22  2017 mysql.ini
-rw-r--r-- 1 root root   47 Mar 22  2017 pdo.ini
-rw-r--r-- 1 root root   59 Mar 22  2017 pdo_mysql.ini
-rw-r--r-- 1 root root   61 Mar 22  2017 pdo_sqlite.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 phar.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 soap.ini
-rw-r--r-- 1 root root   55 Mar 22  2017 sqlite3.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 tidy.ini
-rw-r--r-- 1 root root   47 Mar 22  2017 zip.ini
[root@localhost stalker_portal]# ll /usr/lib64/php/modules/
total 8040
-rwxr-xr-x 1 root root   66448 Mar 22  2017 curl.so
-rwxr-xr-x 1 root root 1843120 Mar 22  2017 fileinfo.so
-rwxr-xr-x 1 root root   65975 Jan 23 17:37 geoip.so
-rwxr-xr-x 1 root root 1093629 Jan 23 10:46 imagick.so
-rwxr-xr-x 1 root root  170384 Mar 22  2017 intl.so
-rw-r--r-- 1 root root 1362440 Jan 24 17:23 ioncube_loader_lin_5.3.so
-rwxr-xr-x 1 root root   36200 Mar 22  2017 json.so
-rwxr-xr-x 1 root root 2183496 Mar 22  2017 mbstring.so
-rwxr-xr-x 1 root root  144580 Jan 18 11:36 mcrypt.so
-rwxr-xr-x 1 root root   98536 Jun 22  2012 memcache.so
-rwxr-xr-x 1 root root  136832 Mar 22  2017 mysqli.so
-rwxr-xr-x 1 root root   54408 Mar 22  2017 mysql.so
-rwxr-xr-x 1 root root   30112 Mar 22  2017 pdo_mysql.so
-rwxr-xr-x 1 root root  102456 Mar 22  2017 pdo.so
-rwxr-xr-x 1 root root   24640 Mar 22  2017 pdo_sqlite.so
-rwxr-xr-x 1 root root  261392 Mar 22  2017 phar.so
-rwxr-xr-x 1 root root  332896 Mar 22  2017 soap.so
-rwxr-xr-x 1 root root   44368 Mar 22  2017 sqlite3.so
-rwxr-xr-x 1 root root   49320 Mar 22  2017 tidy.so
-rwxr-xr-x 1 root root   83088 Mar 22  2017 zip.so

2.安装php-xml

[root@localhost stalker_portal]# yum install php-xml
Dependencies Resolved

===============================================================================================================================================================================================================
 Package                                          Arch                                            Version                                                  Repository                                     Size
===============================================================================================================================================================================================================
Installing:
 php-xml                                          x86_64                                          5.3.3-49.el6                                             base                                          108 k

Transaction Summary
===============================================================================================================================================================================================================
Install       1 Package(s)

Total download size: 108 k
Installed size: 307 k
Is this ok [y/N]: y
Downloading Packages:
php-xml-5.3.3-49.el6.x86_64.rpm                                                                                                                                                         | 108 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : php-xml-5.3.3-49.el6.x86_64                                                                                                                                                                 1/1
  Verifying  : php-xml-5.3.3-49.el6.x86_64                                                                                                                                                                 1/1

Installed:
  php-xml.x86_64 0:5.3.3-49.el6

Complete!
安装完成后,查看:


[root@localhost stalker_portal]# php -m | grep xml
libxml
xml
xmlreader
xmlwriter
[root@localhost stalker_portal]# php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
geoip
gettext
gmp
hash
iconv
imagick
intl
ionCube Loader
json
libxml
mbstring
mcrypt
memcache
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
tidy
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]
the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured)
[root@localhost stalker_portal]# ll /etc/php.d/
total 96
-rw-r--r-- 1 root root   49 Mar 22  2017 curl.ini
-rw-r--r-- 1 root root   47 Mar 22  2017 dom.ini
-rw-r--r-- 1 root root   57 Mar 22  2017 fileinfo.ini
-rw-r--r-- 1 root root   90 Jan 23 17:54 geoip.ini
-rw-r--r-- 1 root root   55 Jan 23 11:01 imagick.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 intl.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 json.ini
-rw-r--r-- 1 root root   57 Mar 22  2017 mbstring.ini
-rw-r--r-- 1 root root   53 Jan 18 13:47 mcrypt.ini
-rw-r--r-- 1 root root 1329 Jun 22  2012 memcache.ini
-rw-r--r-- 1 root root   53 Mar 22  2017 mysqli.ini
-rw-r--r-- 1 root root   51 Mar 22  2017 mysql.ini
-rw-r--r-- 1 root root   47 Mar 22  2017 pdo.ini
-rw-r--r-- 1 root root   59 Mar 22  2017 pdo_mysql.ini
-rw-r--r-- 1 root root   61 Mar 22  2017 pdo_sqlite.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 phar.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 soap.ini
-rw-r--r-- 1 root root   55 Mar 22  2017 sqlite3.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 tidy.ini
-rw-r--r-- 1 root root   49 Mar 22  2017 wddx.ini
-rw-r--r-- 1 root root   59 Mar 22  2017 xmlreader.ini
-rw-r--r-- 1 root root   59 Mar 22  2017 xmlwriter.ini
-rw-r--r-- 1 root root   47 Mar 22  2017 xsl.ini
-rw-r--r-- 1 root root   47 Mar 22  2017 zip.ini
[root@localhost stalker_portal]# ll /usr/lib64/php/modules/
total 8360
-rwxr-xr-x 1 root root   66448 Mar 22  2017 curl.so
-rwxr-xr-x 1 root root  170360 Mar 22  2017 dom.so
-rwxr-xr-x 1 root root 1843120 Mar 22  2017 fileinfo.so
-rwxr-xr-x 1 root root   65975 Jan 23 17:37 geoip.so
-rwxr-xr-x 1 root root 1093629 Jan 23 10:46 imagick.so
-rwxr-xr-x 1 root root  170384 Mar 22  2017 intl.so
-rw-r--r-- 1 root root 1362440 Jan 24 17:23 ioncube_loader_lin_5.3.so
-rwxr-xr-x 1 root root   36200 Mar 22  2017 json.so
-rwxr-xr-x 1 root root 2183496 Mar 22  2017 mbstring.so
-rwxr-xr-x 1 root root  144580 Jan 18 11:36 mcrypt.so
-rwxr-xr-x 1 root root   98536 Jun 22  2012 memcache.so
-rwxr-xr-x 1 root root  136832 Mar 22  2017 mysqli.so
-rwxr-xr-x 1 root root   54408 Mar 22  2017 mysql.so
-rwxr-xr-x 1 root root   30112 Mar 22  2017 pdo_mysql.so
-rwxr-xr-x 1 root root  102456 Mar 22  2017 pdo.so
-rwxr-xr-x 1 root root   24640 Mar 22  2017 pdo_sqlite.so
-rwxr-xr-x 1 root root  261392 Mar 22  2017 phar.so
-rwxr-xr-x 1 root root  332896 Mar 22  2017 soap.so
-rwxr-xr-x 1 root root   44368 Mar 22  2017 sqlite3.so
-rwxr-xr-x 1 root root   49320 Mar 22  2017 tidy.so
-rwxr-xr-x 1 root root   33320 Mar 22  2017 wddx.so
-rwxr-xr-x 1 root root   30096 Mar 22  2017 xmlreader.so
-rwxr-xr-x 1 root root   46736 Mar 22  2017 xmlwriter.so
-rwxr-xr-x 1 root root   34056 Mar 22  2017 xsl.so
-rwxr-xr-x 1 root root   83088 Mar 22  2017 zip.so
安装php-xml前后对比,发现多了扩展:dom.so wddx.so xmlreader.so xmlwriter.so xsl.so


重启Apache

[root@localhost stalker_portal]# service httpd restart


3.检测是否安装成功

在网站目录下新建一个phpinfo.php测试页面,写上下面代码,保存。

[php]  view plain  copy
  1. <?php    
  2. phpinfo();    
  3. ?>   
在浏览器中打开phpinfo.php 会看到如下的信息,说明php-xml扩展已经安装成功。




之后再测试:

登陆管理页面后进入IPTV channels/Channels下,Add a channel:http://10.209.177.82/stalker_portal/server/adm/tv-channels/iptv-list/add-channel 成功。

同样,进入Users下Add user:http://10.209.177.82/stalker_portal/server/adm/users/add-users 成功。

view 

### 回答1: 出现"Fatal error: Class COM not found"的错误通常是由于在Windows平台上未启用COM (Component Object Model)扩展引起的。解决这个问题的方法如下: 1. 确认已启用COM扩展:打开php.ini文件,可以通过搜索“extension=php_com_dotnet.dll”来找到该行,并去掉行首的分号注释。确保该行不是被注释掉的。然后保存并重启Web服务器。 2. 检查COM组件是否已注册:运行命令提示符(cmd.exe)并进入PHP安装目录下的ext文件夹,然后执行以下命令来检查COM组件是否已注册: ``` regsvr32 -s php_com_dotnet.dll ``` 如果提示"DllRegisterServer in php_com_dotnet.dll succeeded"表示注册成功。如果提示错误,则可能是因为您的PHP版本与您的Windows版本不兼容,此时您需要尝试使用其他版本的PHP。 3. 检查php_com_dotnet.dll文件是否存在:确保php_com_dotnet.dll文件位于PHP安装目录下的ext文件夹中。如果文件不存在,可以尝试从PHP的官方网站下载正确版本的PHP,并将其复制到指定目录中。 4. 确保PHP运行环境正确安装:重新安装PHP并确保按照官方文档的配置要求进行操作。 5. 检查操作系统权限:如果您正在使用Windows Server等操作系统,请确保当前用户具有足够的权限来执行COM相关的操作。尝试将当前用户添加到Administrators组中。 如果尝试了以上方法仍然无法解决问题,建议咨询相关PHP社区或论坛,获得更多技术支持。 ### 回答2: “fatal error: class com not found in”的错误是因为在Windows平台上,PHP的com扩展没有被启用或者没有正确配置。 要解决这个问题,可以按照以下步骤进行操作: 1. 检查php.ini文件中的配置:打开php.ini文件(可以在PHP安装目录下找到),找到以下行并确保前面没有注释符号“;”: ``` extension=php_com_dotnet.dll ``` 2. 重启Web服务器:在修改完php.ini文件后,需要重启Web服务器(如Apache或IIS)以使更改生效。 3. 确保php_com_dotnet.dll文件存在:在php.ini中启用了com扩展后,确保php_com_dotnet.dll文件存在于PHP的扩展目录中(可以在php.ini中的extension_dir配置项中找到扩展目录的路径)。 4. 更新PHP版本:如果以上步骤没有解决问题,可以尝试升级到最新版本的PHP,以确保使用的是最新的com扩展库。 5. 检查并安装COM组件:某些使用COM对象的PHP应用程序可能需要特定的COM组件。请确保这些组件已经正确地安装在Windows系统上。 6. 相关权限设置:如果使用的是IIS服务器,请确保PHP启用了足够的权限来访问COM组件或者其他相关资源。 通过以上方法,您应该能够解决“fatal error: class com not found in”的问题,并且能够顺利地使用PHP的com扩展。如果问题仍然存在,可以尝试搜索具体错误信息,查找其他可能的解决方案。 ### 回答3: 在Windows平台上出现"fatal error: class com not found"错误的主要原因是PHP未正确加载和启用COM(Component Object Model)扩展。为了解决这个问题,你可以按照以下步骤操作: 1. 确保你安装了合适版本的PHP,并且已经将PHP的路径添加到系统环境变量中。你可以在命令行窗口中输入"php -v"来检查PHP版本。 2. 打开PHP的配置文件php.ini。该文件通常位于PHP安装目录下的"php"子目录中。 3. 在php.ini文件中搜索"extension="。找到以";extension="开头的一行,然后在该行的末尾添加"php_com_dotnet.dll"。确保去掉了";"字符,使其生效。 4. 保存php.ini文件并重新启动你的Web服务器(例如Apache)。 5. 如果仍然出现错误,可能是因为缺少COM组件的安装。你可以打开控制面板,选择"程序"或"程序和功能",然后点击"启用或关闭Windows功能"。 6. 在"Windows功能"窗口中,找到并展开"Internet Information Services",然后展开"Web管理工具"。确保选择了"Internet信息服务"和"Windows身份验证"。 7. 确保你的操作系统中已经安装了相应的COM组件。你可以在控制面板中的"程序和功能"中查找,或者通过下载和安装目标COM组件的最新版本。 8. 最后,重启Web服务器并重新加载PHP脚本,看看是否解决了问题。 通过按照以上步骤操作,你应该能够解决"fatal error: class com not found"错误,并成功加载和使用COM组件。请记住在进行任何配置更改之前备份相关文件,以防出现其他问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值