2026年5月21日
2026年5月21日
WordPressの「allow_url_include」が無効な場合の対処
はじめに
WordPressサイトを運用する上で、PHPの設定オプションである「allow_url_include」が無効化されていると、一部のプラグインやテーマの機能が正常に動作しない場合があります。この記事では、「allow_url_include」が無効な状況でどのような問題が発生し、どのように対処するべきかについて解説します。
「allow_url_include」とは、PHPスクリプトから外部サイトやリモートファイルを読み込む機能を有効化または無効化するための設定です。このオプションが無効だと、WordPressプラグインやテーマで外部リソースを利用しようとした場合にエラーが発生することがあります。
症状・背景
- 「allow_url_include」が無効な際に表示されるエラーメッセージ:
- PHP Warning: allow_url_include is on in /path/to/your/site/wp-content/plugins/plugin-name/file.php
- 特定のプラグインやテーマの機能不全:
- 検索エンジンからのデータ取得、外部APIとの連携などに問題が発生
- サイト全体の動作遅延:
- 「allow_url_include」が無効だと、一部の処理が代わりに行われるためパフォーマンス低下を引き起こす可能性がある
- セキュリティ上の懸念:
- リモートファイルを読み込む機能はセキュリティリスクが高い。ただし、「allow_url_include」を有効にしないと、一部の重要な機能が使用不能になる場合もある。
手順・設定方法
ステップ1: PHP.iniファイルを確認する
# ホストサーバー上のPHP設定ファイル(php.ini)を表示します
cat /etc/php/7.4/apache2/php.ini
# 指定されたphp.ini内のallow_url_includeの値が'on'であることを確認します。もし'on'でない場合は次のステップに進みます。
ステップ2: allow_url_includeを有効にする
# 仮想ホストファイルを開きます
sudo nano /etc/apache2/sites-available/000-default.conf
# 「php_flag allow_url_include on」を追加します(適切なディレクティブを選択してください)
<Directory "/var/www/html">
php_flag allow_url_include on
</Directory>
# Apache設定の変更を保存し、Apacheを再起動して変更を適用します
sudo systemctl restart apache2
ステップ3: PHPの安全な代替手段を使用する
# サードパーティ製のプラグインやテーマが「allow_url_include」を使用している場合、そのような機能に代わるものを検討します。
wget https://example.com/script.php -O /path/to/local/file.php
# 既存のコードを修正し、ローカルファイルへの参照に変更する
sed -i 's/\/remote\/file\.php/\local\/file.php/' /var/www/html/wp-content/plugins/plugin-name/file.php
ステップ4: セキュリティポリシーとパフォーマンスを確認
# PHPのセキュリティ設定ファイル(.htaccess)を開きます。
nano .htaccess
# 以下の行を追加して、特定のディレクトリやファイルに「allow_url_include」を使用しないように制限します。
<FilesMatch "^(wp-content/plugins|wp-includes)/*">
php_flag allow_url_include Off
</FilesMatch>
# Apache設定の変更を保存し、Apacheを再起動して変更を適用します
sudo systemctl restart apache2
注意事項
- セキュリティ上の懸念: 「allow_url_include」を有効化すると、サイトが脆弱性を持つ可能性があります。この設定は最小限の範囲で使用すること。
- パフォーマンス: 一部の機能を使用するためだけに「allow_url_include」を有効にするよりも、代替手段を探し出す方がパフォーマンス面でも有利です。
- 更新と保守: 「allow_url_include」が有効な場合、セキュリティアップデートやプラグインの更新にも注意が必要です。
まとめ
1. PHP設定ファイルを確認する:
- 「allow_url_include」が無効化されている場合、適切な対策を講じる必要があります。
2. 必要最小限に有効化する:
- セキュリティリスクを低減するために、「allow_url_include」の使用範囲を制限することが推奨されます。
3. 代替手段を探し出す:
- プラグインやテーマが「allow_url_include」を使用している場合、セキュリティとパフォーマンスを優先して他の方法を利用します。
4. 安全なコード実装:
- 修正が必要なコードは常に最新のベストプラクティスに従って更新することが重要です。
関連記事: