はじめに
WordPress のセキュリティ対策プラグイン「Wordfence」を導入すると、管理画面の Firewall 設定に「WAF 自動プリペンド有効」という項目が表示されます。
通常は「はい」になっているのが理想ですが、環境によっては 「いいえ」のまま動作してしまう ことがあります。
今回は、自分の環境(Apache + PHP-FPM + サブディレクトリ /wpm に WordPress)で、「いいえ」から「はい」に切り替わるまでの道のりを記録します。
状況と問題点
- サイトは
/var/www/html/wpm/にインストール - Apache + PHP-FPM(FastCGI)で動作
- Wordfence を最適化したものの、UI に「WAF 自動プリペンド有効:いいえ」と表示される
実際の挙動はどうだったか?
phpinfo() をブラウザ経由で確認すると、
auto_prepend_file /var/www/html/wpm/wordfence-waf.php no value
と表示。
Local Value には入っているが、Master Value が no value なので Wordfence の診断が「はい」とならない状態でした。
解決までに試したこと
1. .user.ini の整備
/var/www/html/.user.iniにauto_prepend_file=/var/www/html/wpm/wordfence-waf.phpを記入(クォート無しで1行のみ)。- SELinux ラベルを調整し、キャッシュをクリアするため php-fpm / httpd を再起動。
👉 これで phpinfo の Local Value は正しく表示されたが、UI は「いいえ」のまま。
2. FPM プール設定で強制
/etc/php-fpm.d/wp-frontend.confに以下を追加php_admin_value[auto_prepend_file] = /var/www/html/wpm/wordfence-waf.php- さらに
/etc/php-fpm.d/wp-admin.confにも同じ行を追加
👉 フロントと管理画面両方のリクエストで確実に auto_prepend_file が有効になるようにした。
3. 再確認
再度 phpinfo() を確認すると:
auto_prepend_file /var/www/html/wpm/wordfence-waf.php /var/www/html/wpm/wordfence-waf.php
Local Value と Master Value の両方に設定が入りました 🎉
結果
Wordfence の Firewall 診断もついに:
- WAF 自動プリペンド有効:はい
- WAF の読み込みに成功:はい
と表示が揃いました。
つまり UI 表示と実防御が一致 し、精神的にも安心できる状態になったわけです。
まとめとポイント
- Wordfence の「はい/いいえ」表示は phpinfo の Master Value を基準に判定している。
.user.iniだけでは Local Value にしか効かない場合がある。- FPM プールごとに
php_admin_value[auto_prepend_file]を設定することで、Master Value にも反映され、UI も「はい」に変わる。 - phpinfo() で Local / Master の両方が揃っているかを確認するのが最重要チェックポイント。
おわりに
Wordfence の最適化で「自動プリペンド有効:いいえ」と表示されても、実際には防御が効いている場合もあります。
しかし、UI も「はい」に揃えたいなら php-fpm プール設定を調整するのが肝でした。
これで「精神的にも安心」な状態で運用できます。同じように悩んでいる方の参考になれば幸いです。

