[php] DOMDocumentでClass not foundのエラーが出た場合

PHPでXMLをいじろうと思って、DOMDocumentを使ったら、「Class ‘DOMDocument’ not found」というエラーが出てしまった場合の対処方法です。

原因

これはエラー文の通り、DOMDocumentというクラスがインストールされていないために発生するエラーみたいです。そのため、このDOMDocumentが含まれているパッケージのphp-xmlというやつをインストールする必要があります。

php-xmlのインストール

yumが利用できれば、簡単にインストールができます。以下のコマンドでOK!

# yum install php-xml

Loaded plugins: fastestmirror, product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-xml.x86_64 0:5.3.3-22.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================
 Package               Arch                 Version                       Repository            Size
=====================================================================================================
Installing:
 php-xml               x86_64               5.3.3-22.el6                  addons               103 k

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

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

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

Complete!

あとは、httpdを再起動してあげれば反映されます。

# service httpd restart

ハマりポイント

普通ははまらないのかもしれませんが、私の場合は、yumでのインストール時にDependency Errorに遭遇しました。

# yum install php-xml

...

Error: Package: php-xml-5.3.3-22.el6.x86_64 (addons)
           Requires: php-common(x86-64) = 5.3.3-22.el6
           Installed: php-common-5.3.3-23.el6_4.x86_64 (@updates)
               php-common(x86-64) = 5.3.3-23.el6_4
           Available: php-common-5.3.3-22.el6.x86_64 (addons)
               php-common(x86-64) = 5.3.3-22.el6
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

いくつかのパッケージをダウングレードすることで問題は解決して、無事にインストールができました。

# yum downgrade php-common php-cli  php php-pgsql php-pdo

...

Removed:
  php.x86_64 0:5.3.3-23.el6_4                        php-cli.x86_64 0:5.3.3-23.el6_4                
  php-common.x86_64 0:5.3.3-23.el6_4                 php-pdo.x86_64 0:5.3.3-23.el6_4                
  php-pgsql.x86_64 0:5.3.3-23.el6_4                 

Installed:
  php.x86_64 0:5.3.3-22.el6      php-cli.x86_64 0:5.3.3-22.el6    php-common.x86_64 0:5.3.3-22.el6 
  php-pdo.x86_64 0:5.3.3-22.el6  php-pgsql.x86_64 0:5.3.3-22.el6 

Complete!

# yum install php-xml
Installed:
  php-xml.x86_64 0:5.3.3-22.el6                                                                      

Complete!

おしまい

いろいろと不足があって、本題に進まないことってのは多いですね(笑)
まぁでも、少しずつ、本題以外の問題を解決するのが早くなってきている気がします!

タイトルとURLをコピーしました