DBサーバーと戦った一日(長文)
5,500文字オーバー。超長文注意! (解決済。詳細説明アリ)
WordPressのデータベース(DB)に、
またまたトラブル発生。
まる一日以上。
検索し、
英語の説明と戦い、
試行錯誤し、
交流サイトにお世話になり、
・・・復旧!
DBサーバーと戦った、よ!
勝ちました!
やったー!
万歳三唱!
チャチャチャ!
何が起きたか
サイトの管理者として[ログイン]できなくなった。
サイトは見られる。
でも、記事の編集や追加など、一切できない。
ことの顛末
1.旧ちらうら蚤の市にログインできなくなった
旧ちらうら蚤の市(https://showmo.net/wp209) にログインして、あれこれ設定。
タイトルに<旧>をつけ、副題を変更するなどしていた。
そのとき、[一般設定] の [WordPress のアドレス (URL)] を、
[https://showmo.net/wp209/] から [https://showmo.net/] に変更してしまった。
「トップページは ここ(ちらうら蚤の市) にした方がいいかも!」
という安易な考えで。
その行動が何を意味していたか。
直後に思い知った。
ログインできなくなったのだ。
/wp209(以降 B) にログインしようとすると、showmo.net(以降 A) にアクセスしようとしてしまう。
しかし、Aには Bのパスワードでログインできない。
Aのパスワードでログインすれば、Aにログインしてしまう。
パスワードのリセット、再発行を試みたが、同じ結果だった。
2.ちらうら蚤の市にもログインできなくなった
「そうだ!
Aの、[一般設定] の [WordPressのアドレス(URL)] を、Bに変更すれば解決では?
B が A になっちゃったんだから、 A を B にすればちょうどいいんじゃん!」
と、中身の足りないオツムで考えた。
(救いようのないうま鹿)
万が一のためのバックアップを取るべく、データサーバーにログインし、mysql.dump を保存。
(これは正解!)
そして、(BのログインURLをAに変更したのに続いて)
ここで、AのログインURLをBに、変更。
これが、とどめになった。
この変更で、Aにも、Bにもログインできなくなった。
パスワードが違います、と。
- 新しいパスワードの発行処理をしてみる
- すると、[パスワードのリセット] がメールで届く
- しかし、届いたアドレスでアクセスすると、
「そのキーは無効なもののようです」 というエラーになる - 3. のアドレスの末尾にパスワードが入っているのだが、
Aに届いたものと、Bに届いたものとをチェンジしてアクセスすると、
「・・・無効なもののようです」 というエラーにはならず、
[新しいパスワード] がメールで届く (やれやれ) - しかし、そのパスワードでログインしようとすると、
「パスワードが違います」 となる
AとBが交錯してしまい、永遠に管理画面にたどりつけない様子・・・。
3.長い戦いの始まり
長い戦いが始まった。
はじめは、
「なんとかログインできるようにならないか?」
という方向で、検索。
検索を重ね、
その結果、
- データベースサーバーにアクセスして、
直接ファイルを書き換える必要がありそう - サイトの説明をよみくだく知識もないくせに、安易に実行すれば、
とりかえしのつかないことになるだろうこと、必至
と、思われ・・・。
4.よし、バックアップファイルから復元しよう
バックアップファイルから復元する方向に、変更することにした。
こちらも、英語ばかり。
WordPressの公式サイトでも、バックアップの説明までは日本語だが、
[復元] の参照サイトとして紹介されているのは、英語サイト。
バックアップからのデータベースの復元 /en
“和訳してくださる協力者を求めています” だってさーーー。
日本語で書かれていたって難解なのに。
でも、負けるものか。
phpMyAdmin と、WP-DBManager を、入手。
これらは、バックアップと復元に力を発揮してくれそうだ。
5.テストのための、ディレクトリとデータベース(MySQL)を作成
さて。試行錯誤のはじまり。
失敗してもよいように、テストディレクトリを作成し、
https://showmo.net/test/ にWordPressサイトを構築。
データベース(MySQL)を、あらたに作成し、テストディレクトリにあてた。
テストディレクトリのWordPressにログインし、
WP-DBManager(プラグイン) を有効化。
その後、phpMyAdmin(プラグイン) も有効化し、
バックアップデータ (mysql.dump) をインポート。
したらば、
データが来た!
生まれたばかりのデータベースに、
データが来たよ!
AとBの
記事らしきデータ。
ページらしきデータなどがドサドサっと。
そこからが問題。
来たのはいいけれど、
「らしきもの」は見えるのだけれど、
テストディレクトリと、そのデータが結びつかない。
すなわち、test/をブラウザで開いても、記事がない。
いったいどうするんだ?
6.先輩のみなさま、どうかお導きください
半日以上手をつくし、
わたしなりに、がんばれるだけがんばった。
助けをお借りしよう。
すぐにお返事が。
「データベースにアクセスできるなら、こうしてみれば?」
と。
ありがとうございます!
で、で、でも。
それは何?
再び質問。
「ここまではできますが、そこから先はどうすれば・・・?」
またすぐにお返事が。
「右上の表示というタブを・・・」
再び質問。
「こちらの画面は、英語です。
画面はこんな感じです」
ここで諸先輩方も、うーむ、となられたご様子・・・。
そうか。
つまり、オイラの phpMyAdmin が日本語になればいいのだ、きっと。
すったもんだの末、
日本語になりました。
うるうる。
[表示] タブがあった!
ご案内のとおりにできた!
やった!
よし!
本番でいってみよう!
7.成功しました!ありがとう!
テストディレクトリから、「ちらうら蚤の市」のあるデータベースにアクセス。
A のホームページ(siteurlとhome)を A に。
B のホームページ(siteurlとhome)を B に。
A のパスワードをリセットし、パスワードを再発行。
ログインできた!
B のパスワードをリセットし、パスワードを再発行。
ログインできた!
やった!(感涙)
お助けいただいた方にお礼を述べてまいりました。
本当にありがとうございました。
8.おまけその1
その後、さらにデータベースにチャレンジし、
旧ちらうら蚤の市を別ディレクトリに復元することに成功。
ここ と ここ に、
同じデータベースをから生まれた、ふたごちゃんが。
これはつまり、
サーバーの引越しや、非常時のサイトの復元などが可能になったということだ、よな。
また、
ちらうら蚤の市と、旧ちらうら蚤の市が、同じデータベース(MySQL)を使っていたので、
あらたにMySQL を作成し、新旧を分けることに成功。
データベースには、
過去に作ってきたテーブルが、
すでに存在しないサイトのものまでごっちゃごちゃにあったが、
すっきり整理。
9.おまけその2
今まで、”データベースサーバー” に対して、
もやもやした疑問がいっぱいだった。
- データベースって何?
- どこにあるの?
- FTPツールでサーバーにアクセスしてもデータベースは見えないし・・・
- どのようにアクセスするの?
- 保存や復元といわれても、見えないのに・・・
でも、この一日、
データベースにどっぷり浸かり、
やっと少し、
もやが晴れたように思う。
もう、WordPressのバージョンアップも怖くないし、
サーバーの引越しだってできるぞ!
と、思う。
補足説明
操作前には、必ずバックアップを取っておいてください。
以下の操作で不具合が生じても、申し訳ありませんが責任は取れません。
phpMyAdminのインストールからログインまで
- ここから、all-languages.zipをダウンロード
- 解凍
- 解凍したフォルダの中のconfig.sample.inc.phpを開く
- 以下の行の ” 部分に任意の半角英数字を入れる
$cfg[‘blowfish_secret’] = ”; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ - 4. のファイルを config.inc.php という名前で新規に保存
- phpMyAdmin-X.XX.X.X-all-languages のフォルダ名を phpMyAdmin と変更
(変更しなくてもいいが、短い方があとあと楽かも) - phpMyAdmin を フォルダごとサーバーに転送
- 転送したフォルダ (index.php) にブラウザでアクセス
- [日本語-Japanese(UTF-8)] を選択
- アクセスしたいデータベース(MySQL)名(=ユーザー名。XREAの場合)を入力
- データベース(MySQL)のパスワードを入力
- [実行する] をクリック
(余談ですが)わたしが最初に転送した phpMyAdmin は、 [プラグイン化されたphpMyAdmin] だった。
操作性が オフィシャルサイトのものとかなり異なる。
オフィシャルサイトのものは、プラグインではない。(ということに気づかず、有効化しようとしていた・・・)
phpMyAdmin にて、保存と復元
保存
- phpMyAdmin にブラウザでアクセス
- 保存したいテーブルを選択
- エクスポート をクリック
- zip形式 をクリック
- 実行する をクリック
- 保存 をクリック
- 保存 をクリック
- 保存したファイルを解凍しておく
復元
- 解凍したWordPressファイル(本体) を転送
- wp-config-sample.php も転送
- wp-config.php は、転送しない
- phpMyAdmin にブラウザでアクセス
- インポート をクリック
- <ファイルの選択>で、エクスポートしたファイル(解凍したもの) を選択
- 実行する をクリック
(テーブルがインポートされる) - ブラウザで、1.のフォルダ(index.php) にアクセス
- [wp-config.php ファイルを作成する] をクリック
- [次に進みましょう] をクリック
- 以下を入力
- データベース名
- ユーザー名
- パスワード
- データベースのホスト名
- テーブル接頭語 (インポートしたテーブル名)
- [作成する] をクリック
- [インストールを実行しましょう] をクリック
- [インストール済み] と表示される
- できあがり
サーバー移動など、異なるディレクトリに復元する場合
上記、<復元> の 5. と 6. の間で、以下の操作を行う。
- フレーム左側の、インポートしたテーブルから、XX_options を選択
(XX_ は、インポートしたテーブルの接頭語。デフォルトでは xp_) - フレーム右側に表示されたフィールドの中から、option_name を選択
- 右フレーム上の 表示タブを選択
- siteurl の 鉛筆マーク(編集) をクリック
- option_value のテキストボックス の中のURLを新しいディレクトリに変更
- 実行する をクリック
- ページ番号で 2を選択
- home の 鉛筆マーク(編集) をクリック
- option_value のテキストボックス の中のURLを新しいディレクトリに変更
- 実行する をクリック
2~3回、この方法で練習。
だいぶ慣れたなぁ~。
WP-DBManager(プラグイン) のインストールと設定
こちらのサイトを参考にどうぞ。
とてもわかりやすいです。
ミラーサイト(モドキ)の作り方
- サーバーに新しくフォルダを作成
- WordPress本体のすべてのフォルダとファイルを 1. のフォルダに転送
- ミラーサイト(元)の wp-config.php をダウンロード
- ダウンロードしたミラーサイト(元)の wp-config.php を 1. のフォルダに転送
wp-config.php について
WordPress でデータベースを語るのに、
wp-config.php を知らないというのは、もぐりだろう?
ってくらい、
この子は肝心要である。
(ということを思い知った)
「WordPerssサイトを、さあ今から作りましょう!」
てなときには、
wp-config.php を編集する必要があるのだが、
その方法は、2つある。 (以下)
- WordPressのウィザードにて、ブラウザ上で編集
- 直接編集し、転送
以下の理由から、1. のウィザードで編集する方法が、わたし的にお勧め。
- なじみやすく、わかりやすい
- wp-config.php は、英語やわからんちんの記号ばかりやしな~
- 必要のない場所を編集してしまう心配がない
- Xbitサーバーでは、なぜか?ウィザードでないと成功しない???
<8月8日追記・・・
ウィザード方式は本家で推奨されていないようです。
以下、wp-config.php を手動で作成せずにアクセスしたときに、最初に表示されるメッセージ。
(略)ウィザード形式で wp-config.php ファイルを作成することもできますが、すべてのサーバーにおいて正常に動作するわけではありません。最も安全な方法は手動でファイルを作成することです。
・・・追記終わり>
<さらに追記・・・
ウィザード方式に関して、以下、Xbit サポートより。
ウィザード形式が推奨されていないというのは、セキュリティ的な問題ではなく、
(略・・・) といった現象が起こる場合があるからです。
ウィザード形式で無事インストールが完了できる環境でしたら、何ら問題はございませんのでご安心下さいませ。
詳細は、こちらを参照ください。
・・・追記終わり>
1.WordPressのウィザードにて、ブラウザ上で編集する方法
- 解凍したまんまのWordPress(本体) を、そのままサーバーに転送
- wp-config-sample.php を、サーバーに必ず転送しておく
- wp-config.php は、転送してはいけない
- ブラウザで、WordPressを転送したフォルダ(index.php) にアクセス
- 指示どおりに入力
詳細は、WordPressのインストール を参照のこと。
一操作ごとに画面の画像があり、安心して操作できる。
2.wp-config.php を、直接編集する方法
wp-config.php で編集する場所は、以下の5ヶ所。
- define(‘DB_NAME’, ‘データベース名‘);
- define(‘DB_USER’, ‘データベースユーザ名‘);
- XREA など、1. と 2. が同じというサーバーが多い(らしい)
- WordPressでは、
同じデータベース(MySQL)内に、複数のテーブルを作成することで、
複数のサイトを作成し、管理することができる
- define(‘DB_HOST’, ‘localhost‘);
ほとんどはこのままでOKだが、サーバーによって変更の必要あり - define(‘DB_PASSWORD’, ‘データベース(MySQL)にアクセスするためのパスワードを入力‘);
- $table_prefix = ‘データベース・テーブル名‘;
XbitサーバーでのWordPressのインストールについて
Xbitサーバーでは、なぜか、何度やっても、
wp-config.php を直接編集して転送、という方法だと成功しない。
以下、エラーの一例。
Warning: Cannot modify header information – headers already sent by (output started at /home/httpd/vhosts/syoumo.net/httpdocs/wp/wp-config.php:1) in /home/httpd/vhosts/syoumo.net/httpdocs/wp/wp-admin/install.php on line 12
以下のファイル(新品!)を、所定の場所に転送しなおしてもダメ。
(この方法は、XREAでは効いたんだけどなぁ~)
- install.php
- pluggable.php
- wp-config.php : テーブルをその都度新規、もしくは、phpMyAdmin にて古いものを削除
- wp-login.php
ブラウザ上でウィザードで編集したところ、一回で成功。
Xbitはウィザードが好き?、らしい?(不明)
<追記・・・
上の事象について、Xbitサーバーサポートより 以下に回答をいただいております。
・・・追記終わり>
8月8日追記
Xbitサーバーサポートより、回答いただきました。
参考になるかと存じます。
お問い合わせの件についてですが、弊社ではwordpressのインストールが正常に行える事を確認しております。
当該エラーが出る場合、転送の際FTPソフトによって適切でない改行コードに変更されてしまっている可能性がございます。
Windows環境でconfigファイルを編集した場合、改行コードがUNIX形式(LF)からWindows形式(CR+LF)に変わってしまう場合があり、その状態でアップロードすると正しく動作しません。
一度、wordpressの本体を解凍したものを、「バイナリモード」にて全てアップロードし、適宜パーミッションの設定を行った
上で、ウィザード形式にてインストール作業をお進め頂ければと存じます。
※ウィザード形式でインストールを行う場合、Wordpressの設置ディレクトリのパーミッションをインストール時のみ一時的に
777に変更する必要がございます。(マニュアルにも記載)
また、ファイルのアップロード機能も利用する場合はwp-contentsディレクトリもパーミッションを777にする必要がございます。
弊社では、ウィザード形式によるインストール作業をマニュアルに掲載致しております。wp-config.phpファイルを直接編集したものをアップロードする方法も可能ですが、エディタを利用し、文法ミスに気をつけながら記述する必要がある為、お客様によっては難易度が高いと感じられる場合がありますので、より簡単なブラウザから全ての設定を行うウィザード形式をご案内している次第でございます。
なお、ウィザード形式が推奨されていないというのは、セキュリティ的な問題ではなく、PHPの設定の仕様によってはconfigファイルを生成する事が出来なかったり、生成後にそのファイルを操作する事が出来なくなるといった現象が起こる場合があるからです。
ウィザード形式で無事インストールが完了できる環境でしたら、何ら問題はございませんのでご安心下さいませ。
One thought on “DBサーバーと戦った一日(長文)”