
AIOS の設定キーを wp option update しても効かない理由と、WP-CLIでの更新方法
はじめに
かつまたです。
EC2 上の複数の WordPress サーバー(Bitnami)に、セキュリティプラグイン All-In-One Security(AIOS)の設定を一括投入する作業を行いました。台数が多く管理画面での手作業は現実的でないため、wp-cli による投入を検討したところ、AIOSの設定キーを独立した option として wp option update しても、AIOSの設定には反映されないことがわかりました。
本記事では原因と、実際に採用した wp eval による投入方法をまとめています。
事象
事前にステージング環境で、AIOS の設定キー(例: ユーザー列挙を遮断する aiowps_prevent_users_enumeration)を wp option update で投入しました。
$ sudo wp option update aiowps_prevent_users_enumeration 1 --path=/opt/bitnami/wordpress
Success: Updated 'aiowps_prevent_users_enumeration' option.
コマンドは Success で返ります。wp option get で読み返しても投入した値が見えていました。
しかし、AIOS 内において、この設定が有効であれば遮断されるはずの /wp-json/wp/v2/users が 200 を返したままで、AIOS 管理画面上も設定は無効のままでした。
原因
AIOS は設定を aiowps_* という名前の独立した option 行としては保持していません。
今回対象とした設定を含む複数の AIOS 設定は、単一の option である aio_wp_security_configs の連想配列として管理されています。データベース上ではシリアライズされた値として保存され、get_option() で取得するとPHP配列として返されます。
$ sudo wp eval 'var_export(array_slice(get_option("aio_wp_security_configs"), 0, 3));' --path=/opt/bitnami/wordpress
array (
'aiowps_enable_debug' => '',
'aiowps_prevent_users_enumeration' => '',
'aiowps_set_generic_login_msg' => '',
)
wp option update aiowps_prevent_users_enumeration 1 は、この配列とは無関係な aiowps_prevent_users_enumeration という新しい option 行を作成しているだけでした。
option の新規作成として正常に完了するため Success で返り、wp option get はその新規行を読むため値も見えます。
一方、今回対象とした設定についてAIOSが参照するのは、aio_wp_security_configs 配列内の値です。そのため、新しく作成された独立optionは挙動に影響しません。
対応内容
1. wp eval で配列内のキーを直接更新
wp eval で aio_wp_security_configs 配列を読み出し、対象キーだけを差し替えて書き戻す方式にしました。書き戻し後に同一コマンド内で読み戻し、投入値と一致することの検証まで含めています。
$ sudo wp eval '
$o = get_option("aio_wp_security_configs");
if (!is_array($o)) { WP_CLI::error("AIOS の設定配列が見つかりません。プラグインの有効化を確認してください。"); }
$o["aiowps_prevent_users_enumeration"] = "1";
update_option("aio_wp_security_configs", $o);
$v = get_option("aio_wp_security_configs");
if ("1" !== $v["aiowps_prevent_users_enumeration"]) { WP_CLI::error("書き込み検証失敗"); }
WP_CLI::success("投入・読み戻し確認 OK");
' --path=/opt/bitnami/wordpress
Success: 投入・読み戻し確認 OK
投入前には200だった /wp-json/wp/v2/users が投入後には403となり、レスポンス内容およびAIOS管理画面の表示も確認したうえで、設定が反映されたと判断しました。
$ curl -s -o /dev/null -w '%{http_code}\n' https://<対象ドメイン>/wp-json/wp/v2/users
403
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 採用サイト をぜひご覧ください。
※2026年1月 アノテーション㈱から社名変更しました







