AIOS の設定キーを wp option update しても効かない理由と、WP-CLIでの更新方法

AIOS の設定キーを wp option update しても効かない理由と、WP-CLIでの更新方法

EC2上のBitnami WordPressに複数台でAll-In-One Securityプラグインの設定を一括投入する際、wp-cliでの設定反映が期待通りにいかない課題に直面しました。その原因と、wp evalを用いた解決方法をお伝えします。
2026.08.30

はじめに

かつまたです。

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 evalaio_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月 アノテーション㈱から社名変更しました

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事