So-net無料ブログ作成
  • ブログをはじめる
  • ログイン

お名前.com VPS OS入れ替えに伴うWordPress引き継ぎ (2018/07/01) [ports]

お名前.comのVPSサーバを2015年頃から運用しています。もちろんFreeBSDを導入して運用しています。freebsd-updateで何度かOS(マイナーリリースバージョンアップ)を更新しながら使っており、先日までFreeBSD 10.3Rで運用していました。
しかし10.3Rは2018年4月30日でサポート終了となっており、最近はpkgコマンドでソフトウェアの更新を行おうとすると、サポート外だが継続するか?と警告が出るようになっていました。

10.4Rに更新しても良いのですが、先の見えている10系ですし、2018年6月末に11.2Rが出たばかりなので、ここは思い切って11.2Rに入れ替えることにしました。
私のポリシーですが、マイナーバージョンアップはfreebsd-updateを使い、メジャーバージョンアップ(たとえば10.x→11.x)の更新の際は、必ず完全再インストールすることにしています。

xxx.confを引き継ぐだけで動くようなシンプルなソフトウェアは楽ですが、WordPressはそうもいかず、データベースを含めた大がかりな引っ越しが必要となります。
便利なツールがあるのかもしれませんが、個人的に、裏で何をやっているのかよく分からない自動化作業はあまり好きではないので、なるべく手動で行う原始的な引っ越しをあえて行います。
人為的なミスが介在する危険性はありますが、私もエンジニアの端くれとして、システムを理解するためにこういった手法を好んでやっています。

■WordPressの引っ越し - はじめに
WordPressのデータ構造は、フロントエンドとなるwww/phpのWordPressディレクトリ構造一式と、データの実体を保持するバックエンドのデータベースサーバの2つから構成されています。
バックエンドのデータベースの引っ越しをしなければWordPressの中身がすっからかんになってしまいますし、データベースのどこに情報が記録されているかはフロントエンド側で保持をしているため、双方を完全に引っ越ししなければ元通りににはなりません。
なお、メディアとしてアップロードした画像イメージや音楽データなどは、フロントエンド側のディレクトリ構造の中で保持されているようです。

■WordPressのバックアップ
フロントエンドのバックアップは、tarでディレクトリ一式(パーミッション等はもちろん保持で)を固めるだけで問題ないようです。このとき、アップロードしているメディアも含まれますから、それなりに巨大なバックアップファイルになるかもしれません。

バックエンドのバックアップは、MySQL(データベース)のバックアップそのものです。MySQLに関するスキルがあって、データベースの引っ越しができるならそちらの作業の中に混ぜてもらって構いません。
それができないなら(私もそう)、WordPressのBackWPupプラグインを導入し、MySQLのデータを吐き出させます。xxxxxxx.sqlといったデータが出力され、ダウンロードしておきます。

■WordPress再構成の注意点
WordPress設定ファイルの中に、URLの情報を保持しています。リストア後は、必ず同じURLで再構成する必要があります。異なるURLで再構成することは不可能ではないと思いますが、上記のバックアップ手順では不足しているのではないかと思います。
ディレクトリ構造も然りなので、どうしても変更したい場合は、一度リストアが完了してから、改めてチャレンジした方が良いと思います。

また、WordPress設定ファイルの中に、データベースのアクセス先(データベース名)や、アクセスするユーザ名・パスワードの情報なども保持しています。つまり、データベースの引っ越しも、これらのデータ構造を引き継いだ上で行う必要があります。

■WordPressのリストア
wwwサーバの設定や、phpの設定、インストールするphpプラグインなどは元通り、もしくは、上位互換バージョンを導入しておく必要があります。※my.cnfやphp.iniの復旧は忘れがち

フロントエンドのリストアは、元のディレクトリ構造の場所にtarを展開すれば十分です。

バックエンドのリストア、つまりMySQLのリストアは、下記の順番で行います。(初期導入時と同じ)
1.MySQLデータベースの作成(create database ~)
2.ユーザの作成と権限付与(create user ~/grant all privileges on ~)
3.データベースのリストア(mysql -u xxx -p xxxx < xxxxxxx.sql)

といった感じでうまくいくと思います。

nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。