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」設定は慎重に管理すべきである。
関連記事: