2019/02/06
sponsored link
もくじ
WordPressの更新に失敗!
WordPress(以下wp)の管理画面の上の方に、
「WordPress 3.6 が利用可能です ! 更新してください。」
って更新を促すメッセージが出てるので軽い気持ちで更新してみると、何分待っても更新が終了せず、仕方ないのでブラウザを閉じた。。
・・なんていう事をしでかすのは僕だけなんでしょうか?
その後、wp管理画面にアクセスすると、真っ白な画面に、
Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘_show_post_preview’ was given in /export/sd208/www/jp/r/e/gmoserver/(ドメイン)/wp/wp-includes/plugin.php on line 406
Warning: Cannot modify header information – headers already sent by (output started at /export/sd208/www/jp/r/e/gmoserver/(ドメイン)/wp/wp-includes/plugin.php:406) in /export/sd208/www/jp/r/e/gmoserver/(ドメイン)/wp/wp-includes/pluggable.php on line 875
という素人には到底理解不能な謎の警告文が表示されるだけで、何もできなくなります。内心かなりパニックです。
サイトの方は一応表示されてはいましたが、画面の上の方に上記の謎の警告文が常に出ている状態でした。なので、何も知らない人がサイトを見ると「このページは何かに感染しているのか?」と怖くなってしまうような雰囲気を醸し出していました。
よく、プラグインが原因で更新が上手くいかないとか聞きますが、状況的に、更新が完了しておかしくなったのか?それとも更新自体正常に完了していないのか?もうわけが分かりませんでした。
が、なんとかかんとか自力で解決できたので、その方法を記しておきます。
復旧作業の流れ
wpの管理画面は一切触れない状態なので、FTPソフトを使って、直接wp本体をいじります。
管理画面が触れなくても、サーバにはwp本体及び、画像ファイルなどはデータとしてもちろん存在しているので、FTPソフトを使って、それらを一旦救出して最新のwpに組み込んで、もともとあるwp本体と入れ替える形でアップロードします。つまり手動でwpをインストールしなおすわけですね。
※FTPソフトは、FFFTPが有名ですが、僕はALFTPを使っています。こっちの方が安定していて使いやすいと思います。
1、最新版WordPressを手に入れる
まずは、更新するべき最新版のwpを手に入れます。
WordPress.ORG 日本語にアクセスして、最新版をダウンロードします。画面右の方にあるのですぐ分かると思います。
ダウンロードしたこの最新版wpは、もちろんまっさらな状態なので、ここに元のサイトで使っていたthemeや画像ファイルをぶち込んで、もとのサイトを最新版のwpで再現していきます。
2、themeを新wpフォルダに移す
FTPソフトを使って、もともと使っていたthemeをダウンロードします。場所は「wpのルートディレクトリ/wp-content/themes」の直下にあるはずです。もちろんthemeの名前は人それぞれですので自分が使っていたthemeを見つけてください。
ダウンロードしたthemeを先ほどダウンロードした最新版wpの「wp-content/themes」の直下にドラッグして放り込みます。
3、uploadsフォルダを新wpフォルダに移す
サーバ上の「wpのルートディレクトリ/wp-content」の直下にuploadsというフォルダがあるんですが、この中に、もとのサイトで使っている画像ファイルが全部入っています。こいつを救い出します。uploadsフォルダをフォルダごとダウンロードしてください。
そのダウンロードしたuploadsフォルダは、最新版wpのフォルダ内の「wp-content」の直下に放り込みます。
4、config.phpを新wpフォルダに移す
サーバ上の「wpのルートディレクトリ」の直下に、「wp-config.php」というファイルがあります。そのファイルをダウンロードします。
ダウンロードした「wp-config.php」を、最新版wpのルートディレクトリ(wp-adminやwp-contentなどのフォルダと同じ階層)に放り込みます。
「wp-config.php」には、このwpで使うデータベースについての情報(DB名やパスワードなど)が書き込まれています。DBにはご存知のように、コンテンツ(文章)やwpの設定等がぎっしり記録されています。なので、「wp-config.php」を正しく設置せずに、wpを復活させても、もとのサイトの情報がつまったデータベースとは連携できないので、コンテンツは何も無い状態になってしまいます。
ちなみにまっさらの最新版wpの中には「wp-config.php」は存在しません。wpをインストールする時に初期設定としてDBの情報を書き入れることで「wp-config.php」は作られるようです。
もとのサイトの情報がつまったDBをそのまま使えるように、もとのサイトで使っていた「wp-config.php」をそのまま使いまわすというわけです。
これで、もとのサイトの情報を放り込んだ最新版wpの完成です。これを然るべき場所にアップロードすればwpが最新版に更新された状態でサイトは復活します。
5、プラグインは入れない
ただし、もとのサイトで使っていたプラグインは切り捨てます。プラグインは素人には謎が多いのでややこしい時は触らないことです。。
wpが正常に操作できるようになってから、また必要なプラグインはインストールしなおせばいいです。
プラグイン内で扱っていたデータなんかも普通はDBに残っていますので、同じプラグインをインストールしなおせば、また以前のデータを使えますのでご心配なく。
サーバ上の「wpのルートディレクトリ/wp-content」に「plugins」というフォルダがあり、その中にもとのwpでインストールしていたプラグインがズラッと置いてありますので、もしもともと使っていたプラグインを参考に再インストールしたい人はメモを取っておくなりしましょう。
6、もとのWordPressを消去!
かなりドキドキする作業ですが、サーバ上のwpを一旦全部消します。
消す前に全部ダウンロードして保存しておけば、また元に戻すことはできるので保存することをおすすめします。とは言え、この場合、元が壊れているので元に戻したところで何も解決しないんですが。。
サーバ上のwpのルートディレクトリ(wp-adminやwp-contentなどのフォルダが置いてある階層)以下を全部消します。
削除すると、当然もとのサイトにアクセスしても何も表示されません。
7、最新版wpをアップロード
空っぽになったルートディレクトリに、先ほどいろいろ元のサイトの情報を放り込んで作った最新版wpをアップロードします。
フォルダごと行かないように注意してください。移すのはフォルダの中身だけです。ルートディレクトリ(wp-adminやwp-contentなどのフォルダが置いてある階層)以下を全て、先ほど空っぽになったサーバ上のwpのルートディレクトリにアップロードします。
もともとあったのと中身を入れ替える形ですね。余計な階層が増えないように中身だけ移すようにしてください。
8、「wp-config.php」の権限を変更
最後にセキュリティの為に、「wp-config.php」の権限を600に変更しましょう。
これで完了です!
wp管理ページにアクセスして見てください。最新版に生まれ変わりつつも、もとの情報がつまったWordPressになっているはずです!
あとは、必要なプラグインを再インストールしたら完璧です。
治ったかい?
もうこんなとこ来るんじゃないぞ。
今だけ→転職できなければ全額返金の「エンジニア転職保証コース」
絶対エンジニアになる!→テックエキスパート
フリーランスエンジニアの収入例を見てみる→レバテックフリーランス
コメント
参考になりました。ありがとうございます。
by ロクロク 2017/11/17 21:43
[…] しまったため、WordPress用のファイルを再アップロードしてリカバリーしました。この記事が役に立ちました。おかげで記事は無事でしたがプラグインは全部お亡くなりに。ちょうどいい […]
by WordPressをいじくってみる | monogoto.jp 2018/07/11 15:06
会社のサイトを真っ白にしてしまい、これはもう、誰にも話さずに旅に出るしかない……と思いつめていたところ、救われました! 本当にありがとうございました。
最後の1文「もうこんなとこ来るんじゃないぞ。」に泣かされました(笑)
by しめじろう 2019/09/19 13:16