一括更新は便利ですよね。今日もWordpressにログインしてポチッ。てオイ。
速攻でエラーがでてサイトが死にましたw
ログインすらできません。
なお、使用しているレンタルサーバはさくらインターネットです。
障害の当たりをつける
可能性の高い順に予想。ほぼA。
A)【サーバ設定】.htaccessファイルがプラグイン更新で改変された
B)【データベース】データベーステーブルのWordpress起動に必要なレコードがプラグイン更新で改変された
C)【プログラム】Wordpressプログラムファイルをプラグイン更新で改変した(本体更新ではないので可能性ない)
復旧作業
- WordPressにログインできないので、さくらインターネットの会員メニューからレンタルサーバのコントロールパネルを開きます。
- ファイルマネージャーを起動します。
- 該当するWordpressが格納されているフォルダを開きます。
- .htaccessファイルの更新日時を確認します(下記画像)
- プラグイン更新を実行した時刻とピッタリあいました。臭いです。
- いきなり.htaccessファイルを編集するのはダメです。必ず編集前にはファイルのバックアップをしましょう。
- ファイルを選択して、右クリックし、メニューを表示し「ダウンロード」をクリックします。
- 開始ボタンをクリックし、ファイルをローカルのパソコンに保存しておきます。
- .htaccessファイルを編集します。
- ファイルを選択して、右クリックし、メニューを表示し「編集」をクリックして、現在の状態を確認します。
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
ENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
なんでこうなった? これは動かないですよね。一括更新なので、どのプラグインが破壊したかはわかりません。設定としては前段が消えていて、モジュールのかっこの対応が崩れてます。
以下のように修正しました。
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
保存ボタンをクリックします。
WordPressサイトをリロードします。はい。治りました。
投稿するまでもない内容かなと思いましたが、プラグイン更新時の障害は、ほぼhtaccessファイルの改変が臭いですよっていうお話でした。