2026年11月10日
2026年11月10日
WordPressのXMLReader・XMLWriterが無効な場合
はじめに
WordPressでインポートやエクスポートを行う際に、XML形式のデータを使うことが多いです。しかしこれらの操作がうまくいかない場合、問題の原因はしばしばPHPのXMLReaderとXMLWriter関数が無効になっていることにあります。
この記事では、これらの問題を解決するために必要な手順を詳しく解説します。
症状・背景
このテーマが必要になる主な場面:
- WordPressでインポートやエクスポートを行う際に「XML形式のデータが無効」というエラーが表示される
- カスタムプラグインやテーマを使用していて、その機能にXMLReader/Writerが必要でありながら、それらが無効になっていると動作しない
手順・設定方法
ステップ1: XMLReaderおよびXMLWriterの有効化
# PHPの設定ファイル(php.ini)を編集します。通常、`/etc/php/{version}/apache2/php.ini`か`/etc/php/{version}/cli/php.ini`が該当します。
sudo nano /etc/php/{version}/apache2/php.ini
# XMLReaderとXMLWriterの有効化を行うため、以下のように設定を変更します。
extension=xmlreader.so
extension=xmlwriter.so
# 変更内容を保存し、Apacheを再起動します。
sudo systemctl restart apache2
ステップ2: PHP設定ファイルの確認と修正
# XMLReaderおよびXMLWriterが無効化されている場合、以下のコマンドでその状況を確認できます。
php -i | grep 'xmlreader'
php -i | grep 'xmlwriter'
# 上記コマンドは、それぞれの拡張機能が有効になっているか確認します。結果に"no"が含まれている場合は設定を修正する必要があります。
ステップ3: WordPressインストールディレクトリ内のPHP設定を変更
# wp-cliを使用してWordPressインストールディレクトリのPHP設定を確認、編集します。
wp config get --search=XMLReader
# XMLWriterも同様に確認します。
wp config get --search=XMLWriter
# 必要であれば、これらの設定を変更します。具体的なコマンドは以下の通りです。
wp config set WP_DEBUG true
ステップ4: WordPressのインストールディレクトリのパーミッションを確認・修正
# パーミッションが正しくない場合、次のコマンドで変更できます。
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
注意事項
- XMLReaderやXMLWriterの有効化はサーバー全体への影響を考慮する必要があります。特定の状況でのみ必要な場合、VHOST設定などで個別に指定することも検討してください。
- 安全な開発環境では、これらの拡張機能がデフォルトで無効になっていることがあります。そのような場合は適切な理由を確認し、必要に応じて有効化を行ってください。
- XMLReaderとXMLWriterの利用はセキュリティリスクも伴います。必ず最新のバージョンを使用し、公式ドキュメントやアップデート情報を定期的にチェックしてください。
まとめ
1. XMLReader/Writerの有効化: PHP設定ファイルで適切な拡張機能を有効にします。
2. 再起動: Apacheを再起動して変更を反映させます。
3. 確認: wp-cliを使用してWordPressインストールディレクトリのPHP設定を確認し、必要であれば修正します。
4. パーミッション: WordPressディレクトリの所有者と権限を適切に設定します。
関連記事: