Wordpressで事故る
wordpressのアップデート中に事故って画面真っ白になりました。
原因はそのwordpressの自動アップデートを押したら、サーバ負荷でトんで、各ファイルを中途半端に上書きしたせいで死んだようでした。
環境
AWS EC2 AMIMOTO仕様。
wordpressの復旧の際にやったこと
やろうと思ったこととして、
- wordpressのdebugモードをOnにする
- SQLバックアップ
- サーバ上の全ファイルバックアップ(主にwp-uploadsやwp-config.phpの確保)
- SCPで、dumpとtar.gzを手元ダウンロード
- wordpress最新版とってきてSCPでアップロード
- cpコマンドで必要ファイルを上書き <= ここで治った
でした。
やったことまとめ
1. wordpressのdebugモードをOnにする
wp-config.phpをいじります。
define('WP_DEBUG', false);
を define('WP_DEBUG', true);
する。
が、真っ白のままでログが出ぬ。
2. SQLのバックアップ(mysqldumpで作成)
# ex
mysqldump -u DATABASE_USER -p DATABASE_NAME> /home/ec2-user/dump.sql
3. サーバ上の全ファイルバックアップ(主にwp-uploadsやwp-config.phpの確保)
# ex
tar cvzf HOGEHOGE.tar.gz /var/www/vhosts/HOGEHOGE/
4. SCPで、dumpとtar.gzを手元ダウンロード
# ex
scp -i ~/.ssh/HOGEHOGE.pem ec2-user@AWS_IP_ADDRESS:/home/ec2-user/HOGEHOGE.tar.gz ./
5. 最新のwordpressの全ファイルアップロード(scp アップロード)
# ex
scp -i ~/.ssh/HOGEHOGE.pem ./WORDPRESS.tar.gz ec2-user@AWS_IP_ADDRESS:/home/ec2-user/
6. cpコマンドで必要ファイルを上書き
普通にcpしたら、「YES/NO」を聞かれまくる。
forceオプションとかないのかなと思って調べても見つかりません。
# ex
tar xvzf WORDPRESS.tar.gz
\cp -R ./WORDPRESS/* /var/www/vhosts/HOGEHOGE/
cp -R ./HOGEHOGE/wp-config.php /var/www/vhosts/HOGEHOGE/ #wp-config.phpはバックアップから復元
ということで、cpコマンドにバックスラッシュつければ、--force っぽい感じでコピーされます。
ファイルをちゃんと上書きしたら、無事wordpressの画面が出ました。良かった。
まとめ
結局、wordpressのコアファイルだけ中途半端に上書きされたため、ディレクトリ上のファイルだけwordpressの最新版で上書きすれば対応できました。
ディレクトリ毎ごそっといってもファイルがあれば上書き、無ければ上書きされない(当たり前)ので、自分が勝手に入れたthemesなどは上書きされないため見た目も問題なしでした。
cpコマンドにforceオプションがなくて、バックスラッシュ先頭に入れろが渋い。