2026年8月10日

2026年8月10日

WordPressの「disable_functions」でエラーになる場合

はじめに

「disable_functions」はPHPの設定で、特定の関数をサーバー上で使用できなくする機能です。これにより、セキュリティを強化することができますが、WordPressプラグインやテーマによってはこれらの関数が必要となるため、適切な設定が求められます。

症状・背景

この記事が必要になる主な場面:

  • <場面1>: WordPressサイトで「白い画面」(Blank White Screen)が表示される。
  • <場面2>: サイトの更新や新規インストール時にエラーが発生する。
  • <場面3>: プラグインやテーマを有効化できない。
  • <場面4>: PHPのセキュリティ設定により特定の機能が制限される。

手順・設定方法

ステップ1: デフォルトのdisable_functions確認

# Apacheの場合、php.iniや/etc/php/7.4/apache2/php.iniを確認する
cat /etc/php/7.4/apache2/php.ini | grep disable_functions

# Nginxの場合、php-fpm設定ファイルを確認する
grep disable_functions /etc/php/7.4/fpm/pool.d/www.conf

ステップ2: disable_functionsの内容を見直す

# WordPressに影響を与える可能性のあるdisable_functions項目を探す
cat /etc/php/7.4/apache2/php.ini | grep 'disable_functions'

# 疑似クラスやファイル操作関数が含まれていないか確認
grep -E '(system|exec|shell_exec|passthru|proc_open|popen)' /etc/php/7.4/apache2/php.ini

ステップ3: 必要な関数を除外する

# 関数を追加または削除する
sudo nano /etc/php/7.4/apache2/php.ini

# 修正後、php.iniの設定を有効にする
sudo phpenmod -v 7.4 disable_functions

ステップ4: 環境変数を使用してdisable_functionsをカスタマイズする

# PHP-FPMで環境変数をオーバーライドする設定ファイルを編集
nano /etc/php/7.4/fpm/pool.d/www.conf

; カスタムのdisable_functionsリストを追加
env[PHP_DISABLE_FUNCTIONS]=base64_decode,ini_alter,passthru

# 修正後、ApacheやNginxを再起動して設定を有効にする
sudo systemctl restart apache2

注意事項

  • <実践的な注意点1>: disable_functionsの変更はサーバー全体に影響を与える可能性があるため、テスト環境で確認すること。
  • <実践的な注意点2>: 安全な設定を維持するために、PHPの最新バージョンを使用する。
  • <セキュリティ上の注意>: サイトを攻撃から保護するために、無駄な関数をdisable_functionsに含める。
  • <パフォーマンス/運用上の注意>: PHP-FPMの設定変更は頻繁に行うべきでない。

まとめ

1. <キー1>: 「disable_functions」がWordPressの機能制限になる可能性がある。

2. <キー2>: サイトの安定性とセキュリティのために、適切なPHP設定を確認する必要がある。

3. <キー3>: 必要な関数は除外リストから削除し、不要な関数は追加することでサイト機能を確保できる。

4. <キー4>: 環境変数を使用して、特定のスクリプトに対してだけ「disable_functions」をカスタマイズする方法がある。

5. <キー5>: 安全性と操作性のバランスを保つために、「disable_functions」設定は慎重に管理すべきである。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ