ネットオウルからドメインキングへのWordpress移転について
ネットオウルからドメインキングへのサーバー移転案件を請け負いしました。
しかし実際はドメインやデータの移設は完了しており、ウイルス感染が原因で表示されていない状況です。
結果移設作業をせずウイルス感染場所を修正する事で表示されるようになりました。
ネットオウルからドメインキングへのサーバー移転
今回も実際に請け負ったサーバー引っ越し案件をご紹介します。
ネットオウルのサーバーからドメインキングへ、ドメイン・Wordpressデータ共に移転をさせるお話でした。
ドメインの移転作業まではクライアントが自力でされた様です。
現在の状態(移転先での表示)
URLを見てみると「このページは動作していません」という警告と「500サーバーエラー」が出ています。
クライアントも「データの移設はしていない」とおっしゃっておられました。
そこで依頼がこちらにやってきたという訳です。
接続情報をもらって確認
契約後に新旧サーバー両方の接続情報をもらったのですが、移転元ネットオウルの方はログイン情報が違う様でログインする事ができません。
ですので先に移転先ドメインキングのコントロールパネルにログインしてみました。
ネームサーバーは移転先を指している
まずはドメインのネームサーバー情報の確認です。
ドメインのネームサーバーを調べる限りでは、きちんとドメインキングを指している様です。
コントロールパネル上でもきちんと設定されている事を確認しました。
ドメインメールは動いている
契約後すぐに、クライアントからやり取りをするメールアドレス先を変更したいという申し出がありました。
指定されたメールアドレスはまさに今回移転させるドメインのメールです。
これが稼働しているという事は、少なくともメールサーバーは移転先サーバーで稼働している事の証になります。
※コントロールパネル上でもメールアカウントの開設がされていました。
移転先サーバーへFTP接続
次にコントロールパネルでFTPの新しいアカウントを作成し、そのアカウントでFTPでドメインキングのサーバーに接続してみます。
するとWordpressのデータが既にアップされている様です。
クライアントは「移設するのを忘れた」と言っていましたが、ちょっとお話が変わってきましたね。
phpMyAdminでデータベースを確認
Wordpressの構成データは後から確認する事にします。Wordpressのログイン情報もまだもらっていませんしね。
コントロールパネルからphpMyAdminのソフトを通じてMySQLのデータベース内を覗いてみます。
何度かインポート済みの様子
するとデータベース内にきちんとWordpress用のテーブルが入っていました。
何度かインポートをした跡があり、TOPのエリア上と特定データベース名の中に、同じ内容のテーブル構成がそれぞれ入っていました。
インポートされているテーブルデータは全て同じ接頭語が付いているので間違いないはずです。
wp-config.phpを確認
次にwp-config.phpを確認してみました。
MySQLのテーブルデータに接続できるように、データベース名やユーザー名などが指定されているかどうかですよね。
そして同じ接頭語が指定されているかどうかも確認ポイントです。
調べた結果、きちんと設定されている様でした。
Wordpressデータ自体は移設済みの様子
他にthemeファイルやuploadファイルを確認しました。
不足しているかどうかはわかりませんが、一応中身は入っている様です。
クライアントも把握していない
つまりデータ自体は一応移設されている状態なのです。なぜクライアントは「データは移設していない」と言ったのでしょうか。
推測するに、最初に移設を頼んだ別の業者がいてその担当者が移設しきれなかったという可能性でしょうか。
そしてその状況をクライアントがあまり把握しないまま、次に私に依頼してきたのかも知れません。
500サーバーエラーになっている原因を探す
この時点ではまだネットオウルのコントロールパネルへの正しいログイン情報をもらえていません。
ですのでこの状態で何とか500エラーを解消する方法を試みます。
構成データの不足分を発見するには、旧サーバーのデータと見比べる必要がありますからね。
それにはネットオウルの方にログインできないと不可能です。
htaccessファイルのチェック
通常500エラーが出る場合に一番最初に見るのは、TOPディレクトリにある.htaccessファイルです。
htaccessファイルの中身を確認すると以下の形で記載されていました。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
特に問題は無いように思います。
index.phpに文字の羅列がある
次に何となくですがindex.phpを見てみました。
通常このindex.phpファイルはコメント欄が多くを占めていますが、それを除けば以下の2つが書いてあります。
define('WP_USE_THEMES', true); require( dirname( __FILE__ ) . '/wp-blog-header.php' );
ところがここに大量の「英数字の羅列」が入っているのを確認しました。
まずはこの文字の羅列部分を削除してUPし直します。
この羅列はウイルスに感染している時のもの
この文字の羅列をみてハッとしました。過去によく見たことのある状況です。
Wordpressが「ウイルスに感染した時」にこういった文字の羅列が中に書き込まれ、正常に稼働できなくなります。
このWordpressサイトはウイルスに感染したのだと判明します。
移転作業からウイルス復旧作業へ
クライアントはおそらくそのあたりをよく知らないままなのでしょう。
担当者があえて伝えていなかった可能性もあります。
ここで急遽、サーバー移転作業からウイルス感染復旧作業へとシフトする事になります。
ウイルス感染チェック・確認
気持ちを切り替えて、ウイルス感染チェックを中心にファイルを見てみる事にしました。
ファイルの追加・削除
その中でふとTOPディレクトリのファイル一覧に違和感を感じ、他のWordpressサイトのTOPディレクトリ構成と見比べてみました。
「wp-load.php」ファイルがない事に気づきます。
さほど中身は変わらないと判断し、他のWordpressデータから同ファイルをコピペしてアップロードをします。
さらに「wp-open.php」という名前のファイルがあり、その内にも同様の文字の羅列が見られました。
これは逆に見慣れないファイル名だったので、ダウンロードしてサーバーからは一旦削除します。
WEBサイトが初めて表示される
ここまで進んでサイト表示を確認すると、それまでのエラーはなくなりました。
ただ読込中の状態が続くので、途中でF5を押すと表示されるようになりました。
ここで初めて私はWEBサイトを確認する事ができた訳です(それまで映っていませんでしたので)。
ようやく一つ先へ進みましたね。
表示に時間が掛かる問題を解消する
ここまで、WEBサイトは映る事は映りますが、1発で表示されない様なもどかしい感じです。
しかし一応サイトは表示されたのでページソースをみてみました。
ヘッダー部分に上記と似たような文字の羅列がある
ソースを見てみると、ヘッダー部分にindex.phpの時と同じような文字の羅列があるのを見つけました。
そこでthemeフォルダの中で利用していると思われるテーマ名の中から、header.phpをダウンロードしてきます。
中を見るとjavascript記述がしてある箇所に文字の羅列を発見したので、ここを丸ごと削除してみます。
1発表示されるようになる
すると表示が随分改善され、1発できちんと映る様になりました。
クライアントにここまでの結果と経緯を報告します。
移転元の正しいログイン情報が届く
ここでやっと移転元ネットオウルの正しいログイン情報が届きます。
ログインしてみてビックリ!契約自体は既に解除された後で、データは何一つ残っていない状態でした。
もしWordpressデータが移転先にUPされていなかったらどうなっていたんでしょうね。よもやよもやです。
Wordpress管理画面の確認
気持ちを切り替えて、次はWordpress管理画面へのログイン情報の提示を打診します。
初回もらった情報ではログインができなかったので打診を繰り返し、何度目かでようやく正しい情報をもらいます。
管理画面のレイアウトがずれている
ログインしてみると管理画面がガタガタしていて、「レイアウトが荒れた状態」になっていました。
CSSが効いていない訳ではないのですが、なんか表示がおかしい。
そしてどのメニュークリックしても403エラーになります。アクセス拒否という状態ですね。
wp-admin内の.htaccessファイル
そこでwp-adminフォルダのhtaccessファイルを確認すると、アクセス拒否の命令が書いてありました。
<FilesMatch ".*\.(phtml|php)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "(index).php$"> Order Allow,Deny Allow from all </FilesMatch>
正確ではないかも知れませんが、上記のような感じです。
これを削除すると、正常に管理画面が動くようになりました。
とりあえず復旧(応急措置)
これでとりあえず復旧はした事になりますね。
しかし、全てのウイルスファイルを取り除くことができているとは限りません。
もともとウイルス感染復旧の案件ではないので、確かに移設こそしていませんが完璧に復旧作業をやる訳にもいきません。
その予感が的中します。
移転作業完了後
数日してこのWEBサイトを開いてみると、なんとまた「internal server error」に!
慌てて中身を確認してみると、TOPディレクトリの.htaccessに別の記述が追記されています。
何故書かれたのかはこれから調査ですが、キャッシュ系の記述の様でした。
今回追記された部分を削除する事で正常に映る事を確認しました。
※取り急ぎパーミッションを「444」にして不用意に書き込まれないようにしています。
未完全な状態でのリスタート
結果クライアントからサイト内の修正やSEO等も頼みたいという事で、依頼がありました。
ウイルス感染の復旧が完全ではなく、チェック作業が出てくる事も報告する必要があります。
クライアントのお話と現実とが離れすぎていたのでちょっと不安ですが、担当する事になった以上何とか頑張ります。