昨日まで普通にログインできてたのに・・・
ブログトップにはアクセスできて記事は読める。
でもサイト管理画面に飛ぼうとすると、記事部分が404になって飛ばない。
まだWordPressをいろいろ工事中なので、なにか悪いことしたのかな?
思い当たる節がいっぱいありすぎて、原因の特定ができません!
▼環境
AWS Lightsail ※.htaccessが置けないLightsail特有の記事になってます。
WordPress 5.5-ja
cocoon/cocoon child
SiteGuard WP Plugin導入済み
エラーの推測
さて、対応経緯を追ってみます。
ぐぐってみると、この手のエラーはだいたいSiteGuardが悪さしてるらしい。
確かに、前に別の問題の切り分けでSiteGuardを無効化/有効化したら、
勝手に「ログインページ変更」機能のログインURLが書き換わってて困ったことがあった。
今回も何らかの理由でログインページが書き換わってしまったのだと推測しました。
一時的にSiteGuardを停止する。
切り分け一発目としてSiteGuardを無効化してみよう!!
あっ、管理画面にアクセスできないからプラグインを無効化できない・・・
###GAMEOVER### _(┐「ε:)_
・・・諦めるにはまだ早い!
ちゃんと先人たちはこの壁を乗り越えてました!!
こちらのページを参考にさせてもらいました。
https://blog.saboh.net/pluginoff/
なになに、FTPログインしてpluginsフォルダの中のsiteguardディレクトリをリネームしてあげる。。。と。わあ簡単!ヽ(`▽´)/
SSHでlightsailには接続できてましたので、FTPソフト使うのも面倒だし
mvコマンドでリネームすることにします。
lightsailのwordpressではプラグインは以下のディレクトリに格納されているようです。
/opt/bitnami/apps/wordpress/htdocs/wp-content/plugins
さて、CLI画面でコマンドを打ちます
cd /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins mv siteguard siteguard_renamed
必要かわかりませんが、apacheを再起動します。
sudo /opt/bitnami/ctlscript.sh restart apache
wp-adminにアクセスしてみる。
これで、SiteGuardが強制的に無効化されて、https://www.appocblog.com/wp-admin/にアクセスできるはずです・・・できた!
wp-adminにアクセスすると画像認証がないログイン画面が表示されました。
管理画面にアクセスできたら、こっちのもんです。
ログインページを確認するために、SiteGuardを有効化します。
ちなみにこの状態で管理画面のプラグインページをみると、なんかエラーが出てます。
これはPluginsディレクトリがないので当たり前です。
SiteGuardを有効化するにはリネームしたディレクトリをもとに戻せばOKです。
cd /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins
mv siteguard_renamed siteguard
いちおう、apacheを再起動
sudo /opt/bitnami/ctlscript.sh restart apache
管理画面のプラグインページを見てみると、無効化状態で各プラグインが表示されていることを確認できます。SiteGuardを有効化しちゃいましょう!
htaccess.confを書き換える。
そうするとメニューにSiteGuardが表示されるようになるので、ログインページ変更をクリックして、現在のログインページを確認します。
うーん、やっぱりブックマークしてたログインページと違う。変わっとるやんけ!
さて、この状態でアカウントログアウトしようとすると、また404エラーがでます。
このままでは、またログインできなくなってしまう。。。。
そうです、たしかhtaccess.confにログインページ向けのRewriteRuleを書いてました。
書き換えましょう!
sudo vi /opt/bitnami/apps/wordpress/conf/htaccess.conf
<Directory "/opt/bitnami/apps/wordpress/htdocs/">
RewriteRule ^login_000000(.*)$ wp-login.php$1 [L]
</Directory>
※000000の箇所はマスキングしてますが実際はsiteguardで確認した数字を入力します。
再び、apacheを再起動します。
sudo /opt/bitnami/ctlscript.sh restart apache
これでログインページは正常に表示されるようになりました。
まとめ
1.原因は不明だけど元々有効化していたSiteGuardのログインページ変更が誤作動して、意図せずログインページが変更されていた。
2.ログインページの文字列を確認するため、一時的にSiteGuardを停止し、直接wp-adminにアクセスした。
3.htaccess.confを書き換えた。
コメント