スキップしてメイン コンテンツに移動

wordpressを手動でバックアップして、新しいドメインへ移行してみる

自宅サーバ(Linux)で運用しているこのブログは、現状サーバのHDDが死んじゃうと、データもすっ飛んじゃうある意味危険な状態ではありますが、現時点でそんなに多くの記事を書いてないということもあり、大して被害もないと・・でも、バックアップは必要ということで、ちょっと調べながら、wordpress丸ごとバックアップを取って別のドメインへリストア(復元)する実験をしてみました。まず、wordpressのバックアップには以下の2つのコピーを取る必要がります。

  • mysqlの記事データ

  • worpress本体やUPしている画像などファイル


この2点について、具体的の手順を追ってみます。



mysqlの記事データバックアップ


wordpressファイルより肝心な、記事そのものです。ここだけでも、定期的にバックアップを取っておいた方が良いですね(;^_^A どうせ、大した作業量でもないので・・
と言うわけで、以下のコマンドでwordpressのデータベースを丸ごとダンプします。
$ mysqldump wp_database > dump.sql -u user1 -p

このコマンドを打つと、パスワードを要求されるので、インストール時に設定した(?)パスワードを入力します。それ以外は、

user1:ユーザ名
wp_database:wordpressのデータベース名
dump.sql:ダンプするファイル名

です。ここら辺りの情報を忘れていても、wp-config.phpファイルを開けば書いてあります。ユーザ、パスワード、データベース名が正しければ、カレントにdump.sqlが作成されます。



worpress本体のバックアップ


先ほどのバックアップが、記事そのものだったのに対して、こちらはwordpressの本体です。なので、移行先のサーバへ新規にwordpressをインストールして、MySQLのリストすれば、記事は復活しますが、画像ファイルは失われます。また、wordpressを使っている以上、結構変更したテンプレートやプラグインがあったりするので、それらを復元するべくバックアップします。

FTPクライアントソフトなどを使って、定期的にwindowsマシンへ手動ダウンロードしておく手もありますが、デフォルト総容量がそんなに小さなサイズでもないですし、ファイル数も多いので、結構時間がかかります。LAN内でも・・。

どうせ、windowsマシンにDLするにしても、圧縮した方が早いです。圧縮処理自体もすぐ終わるので。理想は、Linuxから無料のオンラインストレージ(Dropbox)へ保管する予定です。と言うわけで、単に圧縮のコマンドです。
$ tar cvjf bkhana.tar.bz2 hanagosho

bkhana.tar.bz2:圧縮ファイル名
hanagosho:wordpressが入ってる圧縮対象のディレクトリ
※hanagoshoディレクトリがあるカレントでの実行です。

ちなみに、圧縮前のhanagoshoディレクトリの総容量は、以下のコマンドで求めることができます。
$ du -sm hanagosho

オプションにmと付けてるので、MBの単位で表示します。-kだとKBで-bだとByteで表示されます。



リストア(復元)先の環境を作っておく


前提として、takaiwa.net → hanabackup.comドメインへ移行させます。

公開の手順として、まずMySQLファイルからリストアを行います。wordpress本体からリストアをやると、データベース接続エラーとか出ちゃうので。

と言うわけで、先ほどのsqlファイルをリストアさせるデータベースを作成します。まず、root権限でMySQLへ接続。
mysql> create database wp_resotretest;

上記コマンドで、 wp_resotretest というデータベースを作成します。基本的にルート権限で運用しないと思われますので、作成したデータベースへ以下の処理を施してやります。

character設定
mysql> ALTER DATABASE wp_resotretest DEFAULT CHARACTER SET=utf8;



ユーザのアクセス権限
mysql> GRANT ALL ON wp_resotretest.* to user1@localhost identified by 'password';



変更内容の反映
mysql> FLUSH PRIVILEGES;


これらの設定内容は、後ほど展開するwp-config.phpと同期が取れてればOKです。



MySQLデータのリストア(復元)


さて、環境が整ったので、リストアと行きたい所ですが、前述のようにドメインが変るので、テキストエディタ等で、dump.sqlを開きます。takaiwa.net → hanabackup.comへ置換し、保存します。

で、そのファイルを基に、いよいよリストアです。以下のコマンドを実行すると、
$ mysql -u user1 wp_resotretest < dump.sql -p

パスワードが要求されるので、正しく入力すれば、リストア完了です。うーん、簡単・・



wordpress本体のリストア


hanabackup.comの公開htmlファイルのディレクトリへいきなり展開するのではなく、どこか適当なディレクトリへ展開。
$ tar jxvf bkhana.tar.bz2


先ほどのデータベース作成の所で、設定した内容と一致させるべく、展開したファイルからwp-config.phpを探し、データベース名、ユーザ名、パスワードを修正します。バックアップ時と変っていないなら、別にしなくて良いです。

修正が終わったら、ディレクトリを公開用ディレクトリへ移動。
$ mv hanagosho /var/www/html


これで、リストア完了。ブラウザで、hanabackup.comと入力すると、



見事同じものが表示されました。記事をクリックしても、内容が表示されます。


WordPressスーパーカスタマイズ 3.0対応 ポテンシャルを100%引き出すテクニック
下野 宏 下野 理子
ソフトバンククリエイティブ
売り上げランキング: 9706

コメント

このブログの人気の投稿

GolangでWindows GUIアプリケーション

GUIアプリ作成の前提 社内ツールとしてexeで配布 開発環境はGoLandを使う 社内ツールとしてexeを配布ということであれば、Visual StudioでC#による開発だと思います。しかしながら、Go言語を習得したいのと、GoLandの補完機能が便利で、Android Studio使っていたこともあり、とっつきやすいという点からGo縛りでGUIアプリケーションを考えたいと思います。 lxn/walk Windows application library kit for Go. Windows向けしか考えていないので、まずこのライブラリなのですが、ボタンやコンボボックスが思ったように並ばなかったり、手軽にイメージボタンを配置したりなど、簡単にレイアウトを変更できない課題に直面しました。レイアウト作成だけで時間を取られてしまいます。そう言えば、Androidアプリ開発のときは、XMLでデザイン部分を切り離してたのを思い出して、今回の調査の運びとなりました。 fyne-io/fyne Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. walkと比べると、クロスプラットフォームで作成できるのですが、こちらもコードの中にデザインを書いていく形でした。 therecipe/qt therecipe/qt allows you to write Qt applications entirely in Go or JavaScript. Qt Creatorなるものがあるようで、デザイン部分を切り離せる印象はあるものの、最新のPCでもビルドに時間がかかるようで、学習コストもかかるという記事を見かけて断念しました。 どうしたものかとツイートしましたら、下記のようにご助言をいただいた。 同じ課題に対し色々試した結果、PWAのフルキャッシュドに落ち着いた。中身はGo+WASMで。 https://t.co/e60whDTV16 — のぼのぼ📡 (@nobonobo) July 21, 2020 PWA 早速調べてみました。Googleが進めているプロジェクトで、ネイティブアプリのよ

Javaでprivateなfieldやmethodにアクセスする

JUnitでテストしてると、privateなフィールドにアクセスして、値を参照したりセットしたりしたくなるわけですが、よく使うのでメモしておきます。 例えば、次のような対象のクラスがあるとします。 public class ParentClass { private String hoge = "ParentClass!!"; public void dispMsg() { System.out.println("dispMsg:" + hoge); } private void privateDispMsg(String msg) { System.out.println("dispMsg:" + msg); } }

Eclipseで一通り基本的なGitを使ってみる

備忘録的にまとめておきたいと思います。おかしな点があればご指摘いただければ幸いです。 目次 環境 プロジェクト作成~初コミットまで コミットの履歴&差分を見る 元に戻す ブランチについて ブランチを作成してみる ブランチを統合するには マージする Rebaseする ローカルリポジトリからプロジェクトを取り込む コミットしたメッセージの修正 環境 Eclipse IDE for Java Developers:Juno Service Release 1 Git:上記Eclipseのプリインストール版