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