さくらのレンタルサーバーの SnapUP で WordPress のセキュリティ機能を無効化
さくらのレンタルサーバーには、「バックアップ&ステージング機能」として SnapUP が用意されているのですが、本番環境に All In One WP Security(AIOWPS) を設置していると、SnapUP でステージング環境を構築してもファイアーウォールで管理画面にログインできなくなってしまいました。
SnapUP のステージング環境をいじるには、ファイルマネージャーと phpMyAdmin しかないので、それらを使ってステージング環境でも AIOWPS を利用できるようにする方法を調査しました。
まず、SnapUP でステージングサーバーを用意し、バックアップしたスナップショットを「ステージングサーバーへセット」します。
この状態で「ステージングサーバーのサイトを開く」と、500 Internal Server Error が出ますので、.htaccess を作り直してアクセスできるようにします。
この状態で管理画面にアクセスしても、127.0.0.1 にリダイレクトされてしまい、管理画面にアクセスできません。
AIOWPS のファイアーウォール機能がきいているせいなので、一旦 wp-config/plugins/all-in-one-security-and-firewall を削除して、/wp-admin/ にアクセスすれば管理画面にアクセスできるようになります。
ただ、再度 AIOWPS をインストールし、有効化しようとすると 127.0.0.1 にリダイレクトされ、有効化できなくなります。
原因は DB に保存された AIOWPS の設定が有効化されてしまうようなのですが、該当レコードを削除しても、症状は変わりませんでした。
ネットを探してみると、「wp-admin redirects to 127.0.0.1」 というページが見つかりました。
3. Easy solution: In the AIOS 5.0.4 release, we have given a feature that you can disable the brute force login prevention by adding the below code line in the wp-config.php file:
define( 'AIOS_DISABLE_COOKIE_BRUTE_FORCE_PREVENTION', true );
And then try to browse the login page.
https://wordpress.org/support/topic/wp-admin-redirects-to-127-0-0-1/
wp-config.php に上記 define 文を追加すればOKとのことでやってみたら有効化できました。
再度別のスナップショットで確認したところ、.htaccess の削除や、AIOWPS のファイル削除は不要でした。スナップショットをステージングサーバーへセットして、上記 define 文を wp-config.php に記載すれば、ステージング環境ができあがりました。