● お名前.comの共用SDサーバで「phpMyAdmin」をインストールし、現在のMySQLデータベースに接続し、Wordpressのバックアップデータの復元をする方法
目次
【注意!!!!!必ずお読みください】
【準備】
【解凍した「phpMyAdmin」のファイルのアップロード】
【注意!!凍結方法:アップロードした「phpMyAdmin」をしばらく放置する場合の属性の変更】
【phpMyAdminのインストール(ターゲットサーバとの接続)】
【復元に必要なバックアップデータやアカウントの準備】
【現在のWordpressの破壊、または削除、または各種変更】
【★★重要!!phpMyAdminに吸い込めるファイル容量の上限変更】
【phpMyAdminでのターゲットサーバへのバックアップデータの吸い込み】
【再度:phpMyAdminの長期凍結】
【MySQLデータベース以外のデータの復旧(上書き転送)】
【ログインテスト】
【あと処理】
※Homeキーを押すと、すぐに目次付近に戻れます。
※これは「テスト」です。
本番の緊急の復元をする前に体験しておいたほうがいいので、ということで行うものです。なので、ほぼ空のWordpressで試してもいいですが、できればいろいろ設定や更新をして、少し記事を書いたもので試してください。
※もしこれを本番の緊急時にやる場合は、バックアップした時点のログイン「ユーザー名」と「パスワード」が必要です。
****
1つのWordpressサイトの中では・・・(大きくとらえると)
(a)FTPクライアントソフトでアクセスできるWordress関連のファイル群と(≒フロントエンド)、
(b)そのWordpressサイトに紐付いてるMySQLデータベース(バックエンド)
の、2種類のデータが合わさって、1つWordpressサイトが出来上がっています。
ですので、1つのWordpressサイトをバックアップないし復元したいときは、上記の(a)(b)2つのデータをバックアップまたは復元しないといけません。
ここでは、お名前.comの安いサービスの場合の その両方の復元の方法をご紹介します。
自分でもよくわからないまま、お名前.comのヘルプを参考にしてやってみました。
何かの参考になれば幸いです。
=====================================================================
(00)バックアップした時点のログインユーザー名とパスワードの準備
これは普段からバックアップするたびにバックアップファイルの名前と、ログインユーザー名とパスワードの紐付けリストを作って暗号化などして保存しておかねばなりません。(ログインURLも。変えることがあるので。)
でないと復元できてもログインできないので何もできなくなってしまいます。
ここでは、空のWordpress、もしくは、設定だけをしたいつ消えてもいいWordpressを使うことを前提としていますので、今使っているログインユーザー名とパスワードでOKです。
もし緊急時に、バックアップ時点の昔のログインユーザー名とパスワードを忘れてしまった場合は「phpMyAdmin」を使って調べることもできるようです。
【Wordpress】ログイン用ユーザー名とパスワード両方とも忘れてしまった時のphpMyAdminを変更しない初心者向け対処方
http://webtrace-cuisine.com/201305/wpphpmyadmin/
このページを参考に「phpMyAdmin」や復元・ログインテストの操作を体験したら、一度試してみる価値はあると思います。難しかったらプロの方に依頼するのが良いと思います。
(01)「BackWPup」というバックアップをするためのプラグインをインストールして、一度、バックアップまでをやっておきます。
「BackWPup バックアップ」という語句でGoogle検索すればやりかたはいくらでも出てきます。
当方でもそのご紹介を簡単にですがしています。
★ ● WordPressサイト全体をバックアップするプラグインのインストールと有効化
(02)書き戻したいバックアップのデータのダウンロードまたはPC内の検索
ダウンロードについては、WordpressのBackWPupプラグインを使う方法と、FTPクライアントソフトを使う方法の2つがあります。
どちらでもOKです。
WordPressのBackWPupでダウンロードする場合は以下の通りです。
Wordpressにログインして、ダッシュボード→BackWPup→バックアップ→「バックアップ アーカイブを管理」の画面にて→書き戻したい日付けのバックアップファイルの名前をマウスてポイント→「ダウンロード」
にて、好きなところにダウンロードします。
FTPクライアントでダウンロードする場合は以下の通りです。
レンタルサーバのFTPディレクトリにアクセス。
ドメイン名と同じ名前のフォルダ(他社はpublic_htmlなどかも)を開きます。
WordpressのアクセスURLがもし http://ドメイン名/wpress/ だったら、wpress という名前のフォルダがあるはずですのでそれをクリック。
その階層か、さらに次の階層などに「wp-content」「uploads」と続いていくので開けていきます。
その中に「backwpup-e08471-backups」みたいな名前のフォルダがあったら開きます。
「.zip」拡張子などの、10MB~50~100BM以上の容量の大きい似た名前のファイルがあったら、それがバックアップファイルです。
目的の日付けのバックアップファイル(.zip拡張子)をそのままダウンロードします。
※ネット上にバックアップファイルが無ければ、自分のパソコン内に以前取り込んでいないかを探します。「backwpup_e08471_2017-01-21_12-55-29.zip」といった感じの名前の圧縮ファイルです。(数字はバックアップ時点のものになっています)
(03)バックアップのデータの解凍とどれがどれかの確認
前述冒頭の(b)Wordpressサイトに紐付いてるMySQLデータベースのバックアップデータ(バックエンド)
バックアップしたデータを解凍します。MySQLデータの吸い込みに必要なものは、「データベース名.sql」という名前のファイル1つだけです。
それが見つかるまで、ダウンロードなり検索なりバックアップデータを探してしてください。
バックアップしたzipファイルは、Wordpressに紐付いたMySQLデータベースだけのものもあれば、その他のデータも全部入ったものもあるかもしれません。
書き戻したい日付け付近のzipファイルは全部ダウンロードして、中をチェックしてみます。
前述冒頭の(a)FTPクライアントソフトでアクセスできるWordress関連のファイル群のバックアップデータ(≒フロントエンド)・・・
これはwp-admin、wp-content、wp-includes、といったフォルダがあるバックアップです。
まずは復旧後のセキュリティのために、ここから要らないファイルを移動します。
wp-adminと同じ階層に、以下のファイルがもしあれば、別のフォルダに移動させて見えなくしておきます。
・backwpup_readme.txt
・×××××××××××.pluginlist.2017-01-21.txt(日付けはバックアップ時点の日付けです)
・manifest.json
・×××.wordpress.Y-m-d.xml(記事・ブログの文章データをMySQLから抽出してテキストエディタですぐ見れる形にしたデータ)
・××××××××××××.sql(MySQLデータベースのデータ)
その際、wp-adminフォルダやその他のフォルダの中に移動しないでください。
必ず、wp-admin、wp-content、wp-includes、といったフォルダの階層の上の階層、外の階層に別に新しいフォルダを作成して、そちらに移動させてください。
バックアップした時点の設定によってはこれらのファイルは存在しない場合もありますので、もし存在したら移動させてください。
ただ、移動し忘れると面倒なので、必ず、あるかないかはしっかりチェックしてください。
フォルダを詳細表示にして「種類」で並べ替えると見つけやすいかもしれません。
以上の、5つのファイルを取り除いたものが、(a)(≒フロントエンド)のバックアップデータとなります。
これが見つかるまで、ダウンロードと中身の確認を繰り返します。
※ネット上にバックアップファイルが無ければ、自分のパソコン内に以前取り込んでいないかを探します。「backwpup_e08471_2017-01-21_12-55-29.zip」といった感じの名前の圧縮ファイルです。(数字はバックアップ時点のものになっています)
(04)現在Wordpressで使っているMySQLデータベースの名前を調べます。(つまり=復元先=リストア先=ターゲットとなるデータベースの名前を調べます。)
復元したいWordpressにログインして、ダッシュボード→BackWPup→ジョブにて、バックアップジョブ名のどれかをマウスでポイントし、「編集」を押します。
「DBバックアップ」タブの「バックアップファイル名」が、「ターゲット=リストア先=現在のWordpressと紐付いたMySQLデータベース=バックアップデータを吸い込むデータベース」の名前、となります。
よって、この名前をメモしておきます。
(.sqlは含みません。データベース名からは除外します。)
仮に「abcd1234567890」だったとします。
テキストファイルなどでいいので、これをメモしておきます。
(05)「abcd1234567890」データベースのログイン ユーザー名とパスワードを調べます。
セキュリティの問題上、ここでは詳しくは書けないので、お名前.comのサポートさんに、「Wordpressの復元をしたいのでMySQLのデータベースのログインユーザー名とパスワード、データベース名とホスト名も知りたいので教えてください。」と聞いてください。
教えてくれるはずです。
前項で調べた「abcd1234567890」のようなデータベース名さえ分かっていれば、必ず分かります。
まず、お名前.comの自分のコントロールパネルにログインします。
https://xxxxxxxxxxxxxxxxxxx/xxxxxxxx にアクセスして、
管理者アカウント :
管理者パスワード :
を入れてEnterします。
「データベース設定」の「MySQL」アイコンを押します。
「データベース名」、「文字コード」、「ホスト名」、「ユーザー名」、「パスワード」、「メモ」、「アクション」といった列がありますが、「データベース名」の列に、(01)でメモしたデータベース名が無いかを探します。
あるはずなので、見つかったらそのデータベースの「データベース名」、「文字コード」、「ホスト名」、「ユーザー名」、「パスワード」もさらにメモします。
「文字コード」以外はのちの作業で全部使いますので、間違いが起こらないようにテキストファイルにコピペしてメモします。
なお、ここにあるデータベースのうち、もしWordpressサイトが1つだけだったら、基本的にはデータベースも1つだけあればいいので、ほかのデータベースは全部削除してもいいかもしれません。レンタルサーバ会社の人に聞いたり、あとで「phpMyAdmin」というソフトで中身を調べたりして、不要とわかったら削除してください。
紛らわしいですし、「消しちゃいけないデータベースを消してしまう」など、誤操作のきっかけにもなってしまいますので…。
複数のデータベースを使っている認識があるならむやみに削除できないので、よくよくサポートさんとお話しして削除します。
※ なお、これ以降では、お名前.comのヘルプの
「【共用サーバーSD】phpMyAdmin は利用できますか?」
https://help.onamae.com/app/answers/detail/a_id/9117
とか、
「phpMyAdmin バージョン 4.6.4 の設置方法」
http://guide.onamae-server.com/sd/3_12_15_25_2/?_ga=1.35372389.573181772.1484890564
とかを参考にはしますが、ただ、これとまったく同じ方法では「phpMyAdmin」のインストールはできても「Wordpressと全く関係ないデータベースをターゲットにしてしまう」ので、結果、Wordpressの復元はできませんので、少し内容を変えて、ちゃんとWordpress復元ができるようにします。
※注2
いろいろやりかけてる最中に、これらは全部、自分のFTPディレクトリの中にある、「wp-config.php」に書かれているということが判明しました。
いやお恥ずかしい・・・。でも専門じゃないからしょうがないですね(^^)
「wp-config.php」はWordpressのトップページのURLが 「 http://ドメイン名/nikki 」とかでしたら、ドメイン名の次の/以降の部分のフォルダの中のどこかにあります。
FFFTPなどのFTPソフトででFTPフォルダにアクセスして、お名前.comであれば・・・、
ドメイン名と同じ名前のフォルダを開く
→「nikki」フォルダを開く
→その中か、もしくはさらにそのサブフォルダ、もしくはさらにまたそのサブフォルダの中にあります。
「wp-config.php」をテキストエディタで開くと次のような箇所があります。
ここに「データベース名」その他、すべてが書いてあります。
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'abcd1234567890'); ←これが「データベース名」です。(以下すべて「'」は除きます。)
/** MySQL database username */
define('DB_USER', 'qqwweerrttugja'); ←これが「ログインユーザー名」です。
/** MySQL database password */
define('DB_PASSWORD', 'PPap$gna');←これが「ログインパスワード」です。
/** MySQL hostname */
define('DB_HOST', 'abcd1234567890.cgidb');←これが「ホスト名」です。
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
(06)ついでに FTPアカウントのユーザー名とパスワードも調べます。
ホームページ作成をしことがないとか、忘れてしまったら、こちらもお名前.comのサポートさんに「Wordpressの復元とphpMyAdminのインストールをしたいのでFTPのユーザー名とパスワード、を教えてください。」と聞いてください。
教えてくれるはずです。
お名前.comの自分のコントロールパネルにログインして「FTP・SSHアカウント」でわかります。
なお、コントロールパネルへのログインの際のパスワードを変更すると、FTPのパスワードもそれと同じに代わります。
少しあとで面倒なことになるといけませんので、本作業中にパスワードは変えないほうがいいです。
セキュリティの件で怖くなって変えたくなるかもしれませんが、変えるなら、今、変えたほうがよいです。
(07)「WAF」の無効化
ヘルプより引用。
『※WAFが「有効」の場合、データベース追加時にエラーが発生します。
事前に、コントロールパネルよりWAFの無効化、もしくは該当URLの除外設定、またはWAFの一時無効化を 実施してください。コントロールパネルでの無効化が反映されるまでに1~2時間程度かかる場合がございます。』
とありますので、WAFを一応無効化します。
(データベースはすでに作成されているので無効化しなくてもよいのかもしれませんが念のため。)
なお、もし、無効化しない場合は、「.htaccess」というファイルを使って一時的に無効にする方法がありますので、その場面になりましたら説明します。
慣れるとこちらのほうが便利かもしれませんが、慣れないうちは普通に(2時間前に)無効化しておきます。
ただ、無効化しておいたほうが面倒がないので、無効化することをおすすめします。
「※ON/OFF設定の切り替えは、反映されるまで1時間程度かかります。」とのことなので、復元作業の2時間前には無効にしておきます。
WAFの無効化の手順は以下の通りです。
コントロールパネルにログイン→「WAF設定」→無効に丸ポチを入れます→「変更」ボタンを押します。
これで1時間くらいあとには無効になります。
(08)「phpMyAdmin」のダウンロードと解凍
「phpMyAdmin」はバックアップしておいたMySQLデータベースの丸ごとのデータを、ターゲット(=現在のWordpresと連携しているMySQLデータベース)に吸い込むためのソフトです。
「phpMyAdmin」はレンタルサーバの自分のFTPディレクトリにインストールして使います。
(お名前.com以外の「エックスサーバ」などのレンタルサーバは最初から「phpMyAdmin」がインストールされているのでこのような作業は必要ありません。いいなー。)
「phpMyAdmin」でバックアップデータを吸い込む場合、現在のMySQLデータベースの中身をまっさらに全削除してからバックアップデータを吸いこみます。
よって、最後にバックアップしたときから、現在までに追加した記事や変更した設定は消えてしまいます。そのかわり、不調があった場合はそれはおそらく治ると思います。
(100%の保証はありませんが)
また、復元するときに、復元用ターゲット用のWordpressサイトを作ったとき、管理者のユーザー名やパスワードはなんでもいいです。復元後はそれも消えて、復元前の管理者ユーザー名とパスワード、その他のアカウントも全部、復活しますので。
バックアップ時点での管理者アカウントのユーザー名とパスワードさえ分かっていれば最悪なんとかなると思います。(本当は全アカウント、分かっているほうがいいのですが)
ちなみに、MySQLデータベースだけを復元してもログインが正常にできない場合があるのですが、その場合は、バックアップしたWordpress関連の全フォルダとファイルをも上書きして書き戻します。
そうすることで、MySQLデータベースの内容と連動した(=データベースとの各種の紐付きが正常に戻った)ファイル構成・フォルダ構成や、各種設定ファイルの記述内容に戻るので、ちゃんとログインできるようになります。
プラグインの設定も戻ります。
ではまず「phpMyAdmin」をダウンロードします。
公式ページの
https://www.phpmyadmin.net/
にアクセスして、画面右上の「Download バージョンNo」のボタンを押します。
何かメッセージが出ますが、無視してダウンロードします。
「phpMyAdmin-4.6.5.2-all-languages.zip」というような名前のファイルがダウンロードされますので、解凍します。
解凍するときのフォルダの名前は何でもいいです。
(09)FFFTPなどのFTPクライアント(FTPファイル転送ソフト)を用意
これの使い方をできれば熟知しておいてください。
なお、「phpMyAdmin」のインストール時に、サーバにphpMyAdminの各種ファイルを転送する際に、「.php」拡張子のファイルやフォルダの権限設定も同時に行いながらファイル転送しますので、FFFTPを使わない場合は、そういったことができるFTPクライアントソフトをお使いください。
(ただ、「FileZilla」のように、同時送信はできまなくても、フィルタ機能とフォルダ再帰で一括権限設定が可能・・・と、そういった代替機能があれば問題ありません。FileZillaは失敗したファイルや成功したファイルがわかるのですごく便利ですし安定していると思います。)
FFFTPのダウンロード(窓の杜)
http://forest.watch.impress.co.jp/library/software/ffftp/
自分のパソコンのビット数に合うものをダウンロードしてください。
FFFTP(64bit版)じゃないほうが32bit版です。
インストールはダウンロードしたファイル(例えば ffftp-1.99a-64.exe など)をダブルクリックして普通にインストールするだけです。
インストールしたら起動して、接続→ホストの設定→「新規ホスト」にて
「ホストの設定名」:適当に好きな名前を入れます。
「ホスト名」:お名前.comのサポートさんに教えてもらった FTPサーバー名
「ユーザー名」:教えてもらったアカウント
「ユーザー名」:教えてもらったパスワード
を入れてOKし、レンタルサーバのFTPディレクトリ(FTPフォルダ)に接続できるかを確認します。
お名前.comの場合は、接続されると、自分のドメイン名と同じ名前のフォルダが見つかります。
(そのほかに、analyze、backup、files、というフォルダも見えます。そこが自分のFTPディレクトリの最初の入口です)
(10)テキストエディタの「Terapad」を用意
フリーウェアの「TeraPad(最終バージョン1.09)」でよいと思いますので、ダウンロードして使えるようにしておきます。
TeraPad - 窓の杜ライブラリ
http://forest.watch.impress.co.jp/library/software/terapad/
テキストエディタはレンタルサーバのセキュリティ設定等々に必要となります。
なお、Windowsに付属の「メモ帳」は文字コードが変更できないので使えません。
メモ帳で設定したセキュリティ設定は、レンタルサーバ側がウィンドウズパソコンではないため、いくら頑張っても有効にはなりません。
インストールしたら、必ずアイコンをデスクトップの隅っこに出して準備しておきます。
=====================================================================
【解凍した「phpMyAdmin」のファイルのアップロード】
(01)レンタルサーバのFTPフォルダに「phpmyadmin」フォルダを作成
FFFTPでレンタルサーバのFTPフォルダに接続したら、ドメイン名と同じ名前のフォルダがありますので、そこを開いて「phpmyadmin」フォルダを作成します。
FFFTPでドメイン名と同じ名前のフォルダを開いたのち、メニューバーの「コマンド」から「フォルダ作成」をクリックし、「phpmyadmin」と入力してOKします。
「phpmyadmin」と全部小文字で入力します。
大文字小文字、半角全角の入力ミスはあとで痛いので、必ず、半角英語の小文字で入力します。
※注意
「phpMyAdmin」は不正アクセスの足がかりになることがあるそうで、セキュリティ上、作業後の放置はかなりまずいそうです。その状況下で「phpmyadmin」というフォルダ名を使うと「いかにも」で、それがきっかけでから侵入されるといけないので、「phpmyadmin」ではなくて別のフォルダ名のほうがいいかもしれません。
お名前.comのヘルプでは「phpmyadmin」で説明されていますが、書いてる途中で見つけた以下のサイトも参考にして、「1E2nQuga9uW」みたいな意味不明なフォルダ名でやったほうがいいかもしれません。
【phpMyAdmin】の導入手順とセキュリティ対策 in【お名前.comの共用サーバーSD】
http://hapisupu.com/2015/08/phpmyadmin-install-security-kyouyou-server-sd/
こちらの方のほうがいろいろと詳しいです。
なお、例えば「phpmyadmin」ではなくて、「1E2n--Qu#@ga9uW」というフォルダ名にしたら、
http://ドメイン名/1E2n--Qu#@ga9uW/
とか
http://ドメイン名/1E-1E2n--Qu#@ga9uW-ga9uW/setup/
といったアドレスでこのあとも画面へのアクセスと作業ができます。
ここでは、ヘルプが「phpmyadmin」になっていましたのと、あまり変えるとパソコンに慣れない方が迷うといけないと思い、そのままで進めてしまいますが、「1E2nQuga9uW」のようなファイル名に変えた場合は、適宜、そのように読み替えてください。
その他の参考URL
「phpmyadmin setup 不正侵入」
https://www.google.co.jp/search?sourceid=navclient&aq=&oq=phpMyAdmin+&hl=ja&ie=UTF-8&rlz=1T4GGHP_jaJP728JP728&q=phpmyadmin+setup+%E4%B8%8D%E6%AD%A3%E4%BE%B5%E5%85%A5&gs_l=hp..5.0l5j41.0.0.0.3571...........0.c2gq8omksm8&gws_rd=ssl
ハッキング対策!自分のサイトを守るためにやっておかなければならない10のこと
http://viral-community.com/security/hacking-protect-plan-1236/
(02)転送設定の変更01(PHP拡張子のファイルとフォルダの権限設定)
オプション→環境設定→転送3 タブ→追加 にて。
ファイル名:「*.php」を入力します。
属性:「700」を入力します。
そしてOKします。
また、戻った画面の「アップロード時に作成するフォルダの属性を指定する」にチェックを入れて、「属性」に「755」を入れて、OKします。
このようにする理由は、ヘルプの引用より次のようなことだそうです。
『phpMyAdminを動かすためには、PHPファイルのパーミッション(属性)設定をすべて「700」にする必要があります。 アップロードする前に以下の設定をしておくと、 アップロード時にまとめてPHPファイルのパーミッション(属性)を変更することができます。 ※同様の理由で「phpmyadmin」等、すべてのフォルダ・サブフォルダのパーミッション(属性)は「755」にします。 』
(03)解凍したファイルをすべてサーバのFTPディレクトリにコピー
作成した「phpmyadmin」のフォルダの下に解凍したファイルをすべてアップロードします。
試しに、「doc」フォルダなど、フォルダを1つアップしてみます。解凍したフォルダからドラッグでFFFTPの「phpmyadmin」のフォルダの中に放り込むだけです。
ただし、ファイルの数が2000個以上あるので、アップロードが終わるまでには10分前後かかるかもしれません。
アップロードしたら、フォルダの属性やphpファイルの属性がちゃんと700や755になっているか調べます。
大丈夫だったら、残りをまとめてアップロードします。
これも解凍したフォルダで残りのすべてを選択して、ドラッグでFFFTPの「phpmyadmin」のフォルダの中に放り込むだけです。
なお、なんらかのミスで同じフォルダを再度転送する際は「上書き」することとなるので、「ホストに同じ名前のファイルがあります」というメッセージが出ます。
もしこれが出たら、「上書き」に丸ポチを入れて、「以降全て」を押します。
このとき「新しければ上書き」を選ばないように注意してください。必ず「上書き」に丸ポチを入れて、「以降全て」を押します。
(04)「config」フォルダの作成
すべてアップロードできたら、今度は、「phpmyadmin」フォルダの中に、「config」フォルダを作成します。
次ステップのインストール時に、この中に1つ、「config.inc.php」という設定ファイルが自動生成されます。なので、今は空のままでOKです。
=====================================================================
【注意!!凍結方法:アップロードした「phpMyAdmin」をしばらく放置する場合の属性の変更】
「phpMyAdmin」の解凍内容をアップロードしたあとは、夜に寝るとか、出勤するとか、1時間以上作業しない場合は、「phpmyadmin」フォルダの属性を必ず「000」に変更しておきます。
これで http://ドメイン名/phpmyadmin や http://ドメイン名/phpmyadmin/setup でアクセスしても 403エラーになります。
でないと(よくわからないのですが)、特に、setupの画面に誰でも入れてしまうみたいなので…
作業再開するときだけ、「755」に戻して作業します。
作業中でもsetupの画面を使わないなら こまめにFFFTPなどで「000」にしたり、setupフォルダだけでも「000」にしたります。
最終的には「phpmyadmin」フォルダは削除します。
お名前.comの注意書きにも、「phpmyadmin」の脆弱性について、常に最新バージョンをインストールしなおして使ってくださいと書いてありました。
その他の参考URL
【phpMyAdmin】の導入手順とセキュリティ対策 in【お名前.comの共用サーバーSD】
http://hapisupu.com/2015/08/phpmyadmin-install-security-kyouyou-server-sd/
WordPress相談:ニイハチヨンサン
http://2843.jp/tutorial/restore-website-powered-by-wordpress/2014/01/25/
(復元やメンテナンスモードにする方法について)
ハッキング対策!自分のサイトを守るためにやっておかなければならない10のこと
http://viral-community.com/security/hacking-protect-plan-1236/
ロリポップ(WordPress利用者)への「大規模なサイト改ざん事例」から、lolipopの緊急時対応を評価してみる
http://viral-community.com/wordpress/lolipop-site-manipulation-1587/
=====================================================================
【phpMyAdminのインストール(ターゲットサーバとの接続)】
(01)phpMyAdminのセットアップ画面にアクセス
https://ドメイン名/phpmyadmin/setup/ にアクセスします。
IE11だと、「この Web サイトのセキュリティ証明書には問題があります。」と出ますが、構わず、「このサイトの閲覧を続行する (推奨されません)。 」を押します。
すると「phpmyadmin/setup」の画面が出ます。
(02)ターゲットを決めるための空の設定を作ります。
「新しいサーバ」ボタンを押します。
「基本設定」タブをクリックし、「SSLを使用する」にチェックを入れ「適用」をクリック。
ここで「適用」を押すと、「新しいサーバ」ボタンの上に、サーバ設定の行が1つできるので、このあともこれを設定していきます。
そこの「編集」で設定を再開・続行します。
が、その前に次項で「WAF」の一時無効化の設定をします。
(03)「WAF」の一時無効化
なぜこの時点でやらないといけないのかわかりませんがヘルプ通りにここでやります。
詳細な手順は以下です。
a:テキストエディタのTerapadをインストールして、必ずアイコンをデスクトップの隅っこに出して用意しておきます。
b:FFFTPにてレンタルサーバのFTPディレクトリに接続します。
c:ドメイン名と同じ名前のフォルダを開きます
d:Wordpressをインストールしたディレクトリと同じ名前のフォルダがあると思います。
e:その中やサブフォルダの中に「.htaccess」というファイルが無いか探します
f:あったらそれをFFFTPの画面左側にダウンロードします。
見つけた「.htaccess」を右クリックして、「ダウンロード」を押します。
g:ダウンロードした「.htaccess」をデスクトップに準備しておいて TeraPadのアイコンにドラッグして開きます。
h:中に書いてあるものをすべて消します。
i:そして、以下の1行をそのままコピぺします。空白行ができていてもかまいません。
SiteGuard_User_ExcludeSig all
j:上書き保存します。
※万が一(ドット)から始まるファイル名で保存できない場合は、「htaccess.txt」等で保存し、サーバーにアップロード後に、名前を「.htaccess」に変更してください。
k:FFFTPで、ドメイン名のフォルダ→phpMyAdminフォルダ→setupファルダと開きます。
l:setupファルダの中に上記「.htaccess」ファイルをアップロードします。
以上で完了です。
「.htaccess」ファイルをアップロードしたことがそのまま「setupファルダ」のみは、「WAF」の一時無効設定ということになります。
このあと、phpMyAdminの設定に戻ります。
(04)phpMyAdminの設定の続行
phpMyAdminの画面が変わっていなかったら、「新しいサーバ」ボタンの上の、サーバ設定の行の「編集」を押します。
変わってしまっていたら、再度、https://ドメイン名/phpmyadmin/setup/ にアクセスします。
Iもし「この Web サイトのセキュリティ証明書には問題があります。」と出ても、構わず、「このサイトの閲覧を続行する (推奨されません)。 」を押します。
そのあと、「編集」を押します。
(05)「ホスト名」の入力と適用
「基本設定」タブにてphpMyAdminで管理するデータベースの設定を入力します。
「このサーバーの詳細な名前」、「サーバのホスト名」、両方ともに 「ホスト名」を入れます。【準備】の(05)の段階で、お名前.comのサポートさんに聞いて調べた「ホスト名」です。
※「データベース名」とほとんど同じですが、末尾に「~~db」と付いた「ホスト名」のほうですので間違えなようにしてください。
「適用」を押して、「編集」を押します。
(06)データベースへのログインユーザー名とパスワードの設定と適用
「認証」タブにて、「config認証用のユーザ」の「root」を消します。
ちょっと違和感がありますが、これを消すことで、「お名前.comのサポートさんに聞いて調べたデータベースのユーザー名とパスワードでログインできる」ようになります。
「何もなしでツ~ツ~でログインできちゃうのか?危険なのでは???」というご心配は要りません。
「適用」を押して、「編集」を押します。
(07)データベース名の入力と適用
今度は「ホスト名」じゃなくて「データベース名」のほうを入力します。
「サーバー設定」タブメニューにて「リスト化したデータベースだけを表示する」のデータベースの設定を入力し「適用」ボタンをクリックします。
(08)rootアクセスの不許可
セキュリティ上、「rootログインの許可」のチェックをはずします。
(09)言語の設定と保存
再度、「新しいサーバ」ボタンの画面に戻るので、「デフォルト言語」を「日本語」に変更し、「保存する」をクリックします。
たぶんこれで「config.inc.php」ファイルが自動生成されるんだろうと思います。
(10)「config.inc.php」ファイルの確認と一時ダウンロード
レンタルサーバにFFFTPで接続し、「config」フォルダの下にある「config.inc.php」ファイルを一度ダウンロードします。
ドメイン名のフォルダの中の、「phpmyadmin」フォルダの中に「config」フォルダを作りましたが、その中に自動生成されている「config.inc.php」ファイルです。
「config.inc.php」ファイルを右クリックして「ダウンロード」で画面左側にダウンロードできます。
その後、画面右側で「phpmyadmin」フォルダに戻り、その中にダウンロードした「config.inc.php」ファイルをアップロードします。
「config.inc.php」ファイルを右クリックして「アップロード」でOKです。
(11)「config」フォルダと「setup」フォルダの属性変更
※脆弱性対策のため、必ずこの時点で「config」フォルダと「setup」フォルダのパーミッション設定を「000」に変更します。
(12)phpmyadmin/setup/index.php ファイルの属性変更
設定ファイルの作成に使用した phpmyadmin/setup/index.php ファイルのパーミッション(属性)設定を「600」に変更しておきます。
index.phpファイルをクリック→コマンド→属性変更→属性に「600」を入力→OK
(13)phpMyAdminの画面にログイン
https://ドメイン名/phpMyAdmin/ にアクセスし、 phpMyAdminの画面が表示されたらログインしてみます。
お名前.comのサポートさんにデータベース名やホスト名とともに教えてもらったユーザー名とパスワードでログインしてみます。
※2018/11/26追記:ここでログインできなかった場合の対処法
Wordpressサイトを複数作った場合、前回のMySQLへのログイン情報が残っていて、新しく作ったWordpressサイトのMySQLにログインできなくなることがあります。あるいは、逆に、新しいMySQLにログインした情報が残ってしまい、既存のMySQLにログインできない場合もあります。
そのような場合は、phpMyAdminフォルダの「config.inc.php」というファイルの内容が、今回ログインしたいWordpressサイトのMySQLの情報になっていないかもしれません。その場合は、それを書き換えます。
まず、FFFTPなどでphpMyAdminの格納されたディレクトリにアクセスします。
そのルートに「config.inc.php」というファイルがあると思いますのでダウンロードして開き、(orgを付加するなどして)バックアップのファイルを作ります。
そしてそのファイルの中に以下のような箇所があると思いますので、以下のような内容に書き換えてサーバ側を上書きします。(書き換えたい内容は、Wordpressサイトのディレクトリの、「wp-config.php」ファイルの情報をモトにします。「/** MySQL database username */」「~password~」「~hostname~」の3つです。)
【「config.inc.php」の中身】
/* Server: ログインしたいMySQLサーバ名.cgidb [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'ログインしたいMySQLサーバ名.cgidb';
$cfg['Servers'][$i]['host'] = 'ログインしたいMySQLサーバ名.cgidb';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['ssl'] = ××××××;
$cfg['Servers'][$i]['auth_type'] = '××××××';
$cfg['Servers'][$i]['user'] = 'ログインしたいユーザーのユーザー名';
$cfg['Servers'][$i]['password'] = 'ログインしたいユーザーのパスワード';
$cfg['Servers'][$i]['AllowRoot'] = ××××××;
$cfg['Servers'][$i]['pmadb'] = 'ログインしたいMySQLサーバ名';
書き換えが完了したら、このファイルをサーバ側の「phpMyAdmin」フォルダのルートの「config.inc.php」に上書きします。(ついでにorgを付けた変更前のバックアップファイルも。)
そして、ログインテストをしてみます。
※もしユーザー名やパスワードを書き換えてもログインできなかったら、両方とも「''」だけ残してあとは消し、再度「config.inc.php」試してみます。なお、もしかしたら、パスワードだけで良い場合もあるかもしれません。(ちょっと未確認なのですみませんが・・・・。)
(14)復元のターゲットデータベースの確認
ログインできたら、その画面の左側に、「ターゲット=現在のWordpressと紐付いたMySQLデータベース」の名前が出ていると思います。
その「+」マークを押すと、各種のデータが詰まったテーブル(表)の名前が ばらばらばら~っと出てきます。
ターゲットデータベース名をクリックして、画面右側の「インポート」タブを押したときに、「データベース "ターゲット名" へのインポート 」と表示されたら正常です。
とりあえず、phpMyAdminのインストールとターゲットデータベースへの接続は完了しました。
お疲れ様でした。
ここまでできれば、復元(データベースのデータの吸い込み)の操作自体はぜんぜん難しくありません。
(15)必要に応じて、FTPソフトで「phpmyadmin」フォルダの属性を「000」にしておきます。
=======================================================================
(01)ログインのURL、ユーザー名、パスワード、をバックアップデータのころのものを用意
現在のWordpressのログインURLの設定や各種アカウント、ユーザー名、パスワードは、過去のバックアップデータを吸い込んだ時点で(復元が完了した時点で)すべて消えてしまい、過去にバックアップした時点でのログインURL、ユーザー名、パスワード、でないとログインできなくなります。
ご注意ください。
ですので、それらがそろわない場合は、復元できても、ログインできず、Wordpressが使えないかもしれません。
ただ、MySQLデータベースのデータと、それ以外のデータも全部を書き戻せば、ダッシュボード(管理画面)にはログインできなくても、ブラウザからの閲覧は従来のURLで普通にできると思いますので、そこまで復旧できたら、何か解決策が無いか、プロの人に相談してみてください。
逆にいうと、ログインURLや管理者ユーザーの名前やパスワードは、むやみやたらに変えないほうがいい(ワンタイムパスワードもよし悪し)、そして、パスワードは必ず20文字以上の記号も含んだ複雑なものにしておき、暗号化などをして保存しておく、ということが大切になってくると思います。
(Wordpressで新規アカウントを作成するときにボタン押下で自動生成される25桁くらいのパスワードでいいと思います)
(02)バックアップデータの用意
最初の段階で「データベース名.sql」という、「.sql」拡張子のバックアップファイルを見つけてあると思いますので、それを使います。
(03)Cドライブに「MySQLbackup」という名前でフォルダを作ります。
解凍したバックアップデータの中から「データベース名.sql」をそこへコピーします。
C:\MySQLbackup\データベース名.sql
というパスで、バックアップファイルが存在することになります。
=====================================================================
【現在のWordpressの破壊、または削除、または各種変更】
では、Wordpressを復元するために、ここで、現在の状態を破壊するか、もしくは、削除、もしくは内容変更をしてしまおうと思います。
おすすめは「削除してしまう」やり方です。
何がどこまで戻るのかがわかります。
場合によっては、プラグインの設定などが完全に戻らない場合もありますし、その他の設定もそうかもしれません。何がどこまで戻って、何が戻らないのか、チェックするには、現在のWordpressを削除するのが一番です。
ただ、いきなり削除することが怖いという場合は、「内容の変更」だけにとどめておいて復元テストをし、慣れてきたら、削除も試す、というかたちでもいいと思います。
★破壊する場合のおおまかな流れ
設定→ 一般 → サイトアドレス (URL) にて、URLをめちゃめちゃに書き換えてしまえばよいと思います。
これでログインができなくなります。復元してログインできるようになれば基本的には正常に復元できたということになろうかと思います。
★内容変更する場合のおおまかな流れ
設定を変える、パスワードを変える、プラグインをすべて停止して削除する、投稿を全部消す・あるいはいくつかを新規投稿する、などの変更をWordpressサイトに加えます。
復元してすべての状態がもとに戻っていれば基本的には正常に復元できたということになろうかと思います。
★削除する場合のおおまかな流れ
まず、Wordpressのインストールディレクトリの名前をメモしておきます。
(でないと復元が正常に完了しないことが多いと思いますので)
ただしこれは、Wordpressのインストールをするときに「Wordpressの名前を自由に決められる」レンタルサーバの場合です。
名前が自由に決められないレンタルサーバでは、名前は固定で変えられないので、メモの必要はありません。
通常、多くのレンタルサーバでは、Wordpressの名前を自由に決められる形になっている場合に限っては、
「Wordpressの名前=インストールディレクトリ」、
というような格好で自動インストールされると思います。
インストールディレクトリの名前はレンタルサーバのコントロールパネルでもわかると思いますし、また、Wordpressの「設定」→「一般」でもわかると思います。
「WordPress アドレス (URL)」に表示されたURLの、自分のサイトのトップページ以降の「最初のディレクトリ」がそれだと思います。
例えばそこに「 http://xxxxxxxxxx.com/data01/wp 」と書かれていたら、「wp」のほうではなくて、「data01」のほうだと思います。
「 http://xxxxxxxxxx.com/data01/ 」と書かれていたら確実に「data01」だと思います。
どうしても分からなかったら、FTPクライアントソフトのFilezillaを使って、「wp-admin」フォルダを「等しい(つまり完全一致)で検索しそのフォルダのパスを見ます。
直上か、そのまた上のフォルダなどが、「インストールディレクトリ=Wordpress名」だと思いますので、その両方の名前で空のWordpressを作って復元テストをしてみます。
WordPressのインストールディレクトリの名前をメモし終わったら、レンタルサーバのWordpress削除画面から現在のWordpressを削除します。
このとき、フロントエンドとバックエンド、別々に削除するような格好になっていたら、両方ともを削除します。
(https://euc-access-excel-db.com/tips/ct07_se/ct071501_wordpress/wordpress_make#lbl_578 などもご参考にしてください。)
そのあと、空の新しいWordpressを「メモしたのと同じ名前で」、インストールします。
(名前が自由に付けられないレンタルサーバの場合は名前のことは無視してください。)
名前は「Wordpressの名前」として入力を促されるか、「Wordpressのインストールフォルダ・インストールディレクトリ(インストール場所)」として入力を促されるかのどちらかだと思います。
新しい管理ユーザーのユーザー名とパスワードだけ、念のために推測不可能なものに変えておいてください。
これで復元の準備はOKです。
復元して、元通りになっていれば、基本的には正常に復元できたということになろうかと思います。
==========================================================================
【★★重要!!phpMyAdminに吸い込めるファイル容量の上限変更】
バックアップしたファイルをphpMyAdminに吸い込み前に、吸い込めるファイル容量の上限を上げておきます。
(X-Serverさんなどはこんなことはしなくていいようです。)
理由は、バックアップしたファイルが、レンタルサーバが定める「吸い込み容量の上限の既定値」を超えていると、「アップロードしたファイルは php.ini で定義された
upload_max_filesize を 超過しています。」などのエラーが出て吸い込みが正常にできないためです。
例えばお名前.comだと、2MBまでの容量のバックアップファイルしか、吸い込みができません。
(sql拡張子のファイルをZIP形式で圧縮して、それが2MB以下の「~.sql.zip」ファイルになれば、吸い込めるみたいです。でも、圧縮しても2MBを超えてしまえば、結局ここでの設定をせざるをえません。)
その場合は、例えば「お名前.com」の共用SDサーバなら、「php.ini」を設置します。
(X-Serverさんなどはこんなことはしなくていいようです。)
何らかのPHPファイルを適当にダウンロードして、メモ帳以外のTeraPadなどのPHPに対応したテキストエディタで書き換え、ファイル名を「php.ini」にリネームします。
内容は以下のコピペでOKです。
memory_limit = 50M
post_max_size = 40M
upload_max_filesize = 30M
max_input_time = 60
(お名前.comの場合??は、[PHP]とか[/PHP]とか、要りませんでした。)
これを、Wordpressサイトのディレクトリの上の階層のディレクトリ(自分のFTPのホームディレクトリでも可)にアップロードします。
しばらくすると設定が反映されると思います。
すぐに反映されなければ、数時間とか、一日待つことが必要かもしれません。
※お名前.comのヘルプページ
【共用サーバーSD】PHPの設定を変更したいのですができますか?
【共用サーバーSD】「php.ini」の変更が反映されない
【共用サーバーGS】php.iniファイルを独自に設置できますか?
※参考Webページ
お名前サーバーで容量が大きいファイルをインストールさせる方法
一部引用
======引用ここから=========
memory_limit = 50M ;スクリプトが確保できる最大メモリ(バイト単位)
post_max_size = 40M ;POSTデータに許可される最大サイズ(バイト単位)
upload_max_filesize = 30M ;アップロードできるファイルの最大サイズ(バイト単位)
max_input_time = 60 ;スクリプトが入力をパースする最大時間(秒単位)
インターネットで調べた通りにやってみました。
注意事項として、
•post_max_size は、upload_max_filesize よりも大きく設定する必要あり
•memory_limit は、post_max_size よりも大きく設定する必要あり
•max_input_time は、タイムアウトしない程度に設定
などがあります。
======引用ここまで=========
適用されたかの確認方法は、WordPressのダッシュボードから、「メディア」⇒「新規追加」を開きます。するとその画面に、「最大アップロードサイズ」の記述があります。お名前.comの共用サーバーSDの場合はここが最初は2MBのようです。
php.iniファイルを新設後に、数十メガとか、指定した容量に変わっていればOKです。
【phpMyAdminでのターゲットサーバへのバックアップデータの吸い込み】
ではここからが復元のスタートとなります。
まず、phpMyAdminでバックアップしたMySQLのデータを吸い込みます。
(01)必要に応じて、FTPソフトで「phpmyadmin」フォルダの属性を「755」にしておきます。
(02)「phpMyAdmin」にアクセス
http://ドメイン名/phpmyadmin にアクセス します。
お名前.comのサポートさんに聞いて調べた、MySQLデータベースへのユーザー名とパスワードを入力して、ログインします。
(レンタルサーバ契約そのものやFTP、Wordpressログインのためのユーザー名とパスワードではないので間違えないようにご注意ください)
※2018/11/26追記:ここでログインできなかった場合の対処法
Wordpressサイトを複数作った場合、前回のMySQLへのログイン情報が残っていて、新しく作ったWordpressサイトのMySQLにログインできなくなることがあります。あるいは、逆に、新しいMySQLにログインした情報が残ってしまい、既存のMySQLにログインできない場合もあります。
そのような場合は、phpMyAdminフォルダの「config.inc.php」というファイルの内容が、今回ログインしたいWordpressサイトのMySQLの情報になっていないかもしれません。その場合は、それを書き換えます。
まず、FFFTPなどでphpMyAdminの格納されたディレクトリにアクセスします。
そのルートに「config.inc.php」というファイルがあると思いますのでダウンロードして開き、(orgを付加するなどして)バックアップのファイルを作ります。
そしてそのファイルの中に以下のような箇所があると思いますので、以下のような内容に書き換えてサーバ側を上書きします。(書き換えたい内容は、Wordpressサイトのディレクトリの、「wp-config.php」ファイルの情報をモトにします。「/** MySQL database username */」「~password~」「~hostname~」の3つです。)
【「config.inc.php」の中身】
/* Server: ログインしたいMySQLサーバ名.cgidb [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'ログインしたいMySQLサーバ名.cgidb';
$cfg['Servers'][$i]['host'] = 'ログインしたいMySQLサーバ名.cgidb';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['ssl'] = ××××××;
$cfg['Servers'][$i]['auth_type'] = '××××××';
$cfg['Servers'][$i]['user'] = 'ログインしたいユーザーのユーザー名';
$cfg['Servers'][$i]['password'] = 'ログインしたいユーザーのパスワード';
$cfg['Servers'][$i]['AllowRoot'] = ××××××;
$cfg['Servers'][$i]['pmadb'] = 'ログインしたいMySQLサーバ名';
書き換えが完了したら、このファイルをサーバ側の「phpMyAdmin」フォルダのルートの「config.inc.php」に上書きします。(ついでにorgを付けた変更前のバックアップファイルも。)
そして、ログインテストをしてみます。
※もしユーザー名やパスワードを書き換えてもログインできなかったら、両方とも「''」だけ残してあとは消し、再度「config.inc.php」試してみます。なお、もしかしたら、パスワードだけで良い場合もあるかもしれません。(ちょっと未確認なのですみませんが・・・・。)
(03)データベースをクリック
ログインした画面の左側ペインのデータベースの名前(データを吸い込むターゲットデータベースとなります)をクリックします。格納されているテーブル(表)の名前がばらばらーっと出てきます。
(04)そのまま、画面右側の「インポート」を押します。
「データベース "データベース名" へのインポート 」と出ていると思います。
再度、ここで、本当にターゲットのデータベース名となっているかを確認します。
ここまでならまだやめることができますので。
(05)アップロードファイルの指定
「アップロードファイル:」のところで、(03)でセットした C:\MySQLbackup\データベース名.sql を指定します。
他の設定は何も変えません。
(06)吸い込み(=復元)の実行
画面を一番下にスクロールして「実行」を押します。
しばらくは絶対に何もせずに待ちます。
データの量にもよると思いますが、メッセージが出るまで待ちます。
完了した旨のメッセージが出たら完了です。
これで、MySQLデータベースの中身はバックアップしたときの状態と入れ替わりました。
ログインのURL、ユーザー名、パスワードは、先ほどまでのものは全部消えてしまいましたので、以前のものでないとログインできないと思います。
また、データベースのデータ以外のファイルもFTPソフトで上書きで書き戻さないとおそらく、正常にログインできないので、それが終わるまではログインしなくてもOKです。
ただ、ログインURLも、管理者アカウント情報も、バックアップ時点とまったく変わっていなかったら、正常にログインできるかもしれません。
※もしここで吸い込みに失敗したら、前項の「アップロード容量の上限変更」を忘れていないかチェックしてください。レンタルサーバによって違いますが、php.iniファイルを新設するなどします。
============================================================================
セキュリティ上、phpMyAdminの放置が、外部攻撃や不正侵入の足掛かりになってしまうといけないので、一時的に「phpmyadmin」フォルダの属性を「000」に変更しておきます。
FFFTPの場合でしたら、レンタルサーバのFTPディレクトリにアクセスして、「phpmyadmin」フォルダを右クリックし、「属性変更」にて「現在の属性」に「000」と入れてOKします。これでオーナーすらも何も見れなくなります。
http://ドメイン名/phpmyadmin にアクセス しても「403 Error - Forbidden」になって何もできません。
必要なときは、「phpmyadmin」フォルダの属性を「755」に変更すると
http://ドメイン名/phpmyadmin に正常にアクセスできるようになります。
また、データベースが間違っていて、別のMySQLのデータベースにつなぎなおしたいときは
・「phpMyAdmin」の「setup」フォルダ、「config」フォルダの属性を「755」にする
・「config」フォルダの config.inc.php ファイルの名前をoldにリネーム
・ phpmyadmin/setup/index.php ファイルの属性を「600」に変更
・「setup」に、.htaccess を「SiteGuard_User_ExcludeSig all」で作成して置く。
・ http://ドメイン名/phpmyadmin/setup/にアクセス
で、最初から「新しいデータベース」ボタンで操作しなおして、データベース名だけ変えれば、他のデータベースに接続できます。
あるいは、いったん、phpMyAdminフォルダを全部削除して、最初から全部やりなおします。
全部の作業が終わって動作の安定が見込めたら、「phpMyAdmin-4.6.5.2-all-languages.zip」が内容が同じなのでそれさえあればいつでも復旧できますので、「phpmyadmin」フォルダは削除したほうがいいと思います。
削除してもしなくても復旧のときは、作業工程はそれほど増減しませんので・・・
残しておくと特に http://ドメイン名/phpmyadmin/setup/ は危険なので、ロクなことにならないと思います。
「phpmyadmin」フォルダは必ず丸ごと削除します。
お名前.comの注意書きにも、「phpmyadmin」の脆弱性について、常に最新バージョンをインストールしなおして使ってくださいと書いてありました。
その他の参考
Wordpress相談:ニイハチヨンサン
http://2843.jp/tutorial/restore-website-powered-by-wordpress/2014/01/25/
(復元やメンテナンスモードにする方法について)
============================================================================
お名前.comでいうと、ここまでの段階で
(ア)コントロールパネル→MySQL、に表示されるデータの中身の復旧を行いました。
(=バックエンドの復元を完了しました)
次は、
(イ)コントロールパネル→WordPressインストール 、に表示されるデータの復旧です。
(≒フロントエンドの復元を開始します)
これには FTPクライアントソフトを使って、バックアップデータを上書きします。
(01)バックアップの解凍データを用意
最初の段階で、バックアップデータを擁してあると思いますのでそれを使います。
「wp-admin」、「wp-content」、「wp-includes」、といったフォルダがあるバックアップデータから、以下の5つのファイルがもしあれば取り除いたものです。(セキュリティ上の理由です)
・backwpup_readme.txt
・×××××××××××.pluginlist.2017-01-21.txt(日付けはバックアップ時点の日付けです)
・manifest.json
・×××.wordpress.Y-m-d.xml(記事・ブログの文章データをMySQLから抽出してすぐ見れる形にしたデータ)
・××××××××××××.sql(MySQLデータベースのデータ)
バックアップした時点の設定によってはこれらのファイルは存在しない場合もありますので、もし存在したら移動させてください。
ただ、移動し忘れると面倒なので、必ず、あるかないかはしっかりチェックしてください。
フォルダを詳細表示にして「種類」で並べ替えると見つけやすいかもしれません。
(02)バックアップデータをデスクトップやCドライブなどにコピー
(03)FFFTPを起動して、コピー先フォルダを開く
WordPressのトップページのURLがもし、
http://ドメイン名/nikki/
だとしたら、FTPソフトでレンタルサーバにアクセスした際に、nikki というフォルダがあるはずなのでそこを開きます。
(04)中身を確認
その中にも、「wp-admin」、「wp-content」、「wp-includes」、というフォルダがあるはずなので、それがあれば間違いありません。
逆に、なかったら上書きコピー先ではないので、別の場所を探します。
(05)上書きコピー
中身が間違いなかったら、「wp-admin」、「wp-content」、「wp-includes」以下、すべてのフォルダとファイルをそこへ上書きコピー(アップロード)します。
結構時間がかかります。
なお、基本的にここでは「上書き」をすることとなりますので、「ホストに同じ名前のファイルがあります」というメッセージが出ます。
もしこれが出たら、「上書き」に丸ポチを入れて、「以降全て」を押します。
このとき「新しければ上書き」を選ばないように注意してください。必ず「上書き」に丸ポチを入れて、「以降全て」を押します。
転送がいくつか失敗したり止まってしまうようなら、FileZillaなど、別のFTPクライアントソフトでやってみます。
(無線だったら有線に切り替えます)
全部失敗せずに上書きできたら成功です。
これで、過去の MySQデータベースのデータと紐付いていたころのWordpressのデータやプラグイン、各種設定が書き戻りました。
これで全部が整合性のとれた、正しいデータに書き戻ったはずです。
ログインテストから何から、基本的には正常動作しないといけない、ということになります。
================================================================
バックアップを取った時期のログインURLでアクセスしてみます。
ログイン画面になったら、その当時のユーザー名とパスワードでログインを試してみます。
ログインできたら成功、完了です。
ログインできなかったら、バックアップファイル自体が壊れていたり、もしくは、MySQLデータベースのバックアップデータと、Wordpressのデータを別々にバックアップしていた場合は、その組み合わせがずれていたり、といったことが考えられます。
専門家に相談して、何か手立てはあるのか、どこまでデータが戻るか聞いてみてください。
================================================================
(01)FTPディレクトリの「phpmyadmin」フォルダの完全削除
Wordpresやデータベースの動作を4、5日確認して、特に心配がなくなったら、「phpmyadmin」フォルダの属性を755に戻してから削除します。残しておくとロクなことにならなさそうなので、消しておきます。
いつでも再開できますので。
復元に関するすべての作業が終わったら、セキュリティリスクを消す意味でも、必ず、「phpMyAdmin」の完全削除をしておきます。
もともと「phpMyAdmin」というソフトはMySQLのデータベース管理を詳細にしたい人やプロのエンジニア・Webデザイナーなどが使うソフトなので、私たち素人が持っていても、この復元作業以外はなんの役にも立ちません。Wordpressの動作にもまったく関係ありませんし。
なのでさっくりと削除してしまいましょう。
(02)「WAF」設定の有効化
もし、「WAF」設定を「.htaccess」ファイルではなく、レンタルサーバのコントロールパネルで無効に変更していたら、有効設定に戻します。いずれにしても、セキュリティチェックの意味で、一度、ちゃんと有効になっているかをチェックします。
また、WAFを無効にするために使った「.htaccess」ファイルは全部削除します。
(03)「SiteGuard WP Plugin」の「管理画面へのアクセス制限」設定の見直し
「.htaccess」ファイルを一部内容を削除・書き換えして、アクセスがハネられてログイン画面へのリダイレクトが行われないかのテストも。
(04)wp-config.php の属性の見直し
お名前.com的には 600でいいみたいですが、400でもWordpressが動いたので400のままにしておきます。
400のままで何か不具合が出たら404か600にして様子を見てみます。
お名前.comのデフォルト設定では、
wp-config.phpファイル:600
その他の.php拡張子のファイル:644
txtファイルなど:644
フォルダ:755
という感じみたいです。
お名前.comのWordpress利用上の注意事項より。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3.設定ファイル [ wp-config.php ] のパーミッションを適正な値に設定する
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※※こちらにつきましては、弊社にて対策を実施いたしました※※
・かんたんブログインストールご利用のお客様はご利用当初よりパーミッションは
「600」で設定されておりますので、変更の必要はございません。
・お客様が独自で共用サーバー SDに設置されたWordPressの設定ファイル
[ wp-config.php ] のパーミッションを「600」に変更させていただきました。
(該当ファイルは外部から「読み取り」「書き込み」「実行」を行えない状態となります。)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(05)その他の属性の見直し
ロリポップ!レンタルサーバーより、セキュリティに関する重要なお知らせです
http://lolipop.jp/security/
WordPressの理想的なパーミッション設定は?権限を見直してセキュリティ強化しよう
https://www.webernote.net/wordpress/wp-permission.html
セキュリティ対策【共有サーバーの方は必ず確認してください】パーミッションを変更して、セキュリティを強化する
http://wordpress-custom.jp/security/security-permission-2.html
WordPressのファイルのパーミッションはどうすべきなのか?
https://php-java.com/archives/622
(06)無駄なFTPディレクトリのデータがもし発見されたら消しておくなど
==============
共用サーバーSD】.htaccessを使ってアクセス制御はできますか?
https://help.onamae.com/app/answers/detail/a_id/14053/
3.設定ファイル [ wp-config.php ] のパーミッションを適正な値に設定する
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※※こちらにつきましては、弊社にて対策を実施いたしました※※
・かんたんブログインストールご利用のお客様はご利用当初よりパーミッションは
「600」で設定されておりますので、変更の必要はございません。
・お客様が独自で共用サーバー SDに設置されたWordPressの設定ファイル
[ wp-config.php ] のパーミッションを「600」に変更させていただきました。
(該当ファイルは外部から「読み取り」「書き込み」「実行」を行えない状態となります。)
本作業によるサイトの動作等への影響は無いことを確認したうえで変更を実施しておりますが、
万が一サイトの動作等でお気づきの点がございましたらお客様センターまでお知らせください。
■お客様センター
https://help.onamae.com/app/ask/