Ubuntuバージョンアップに伴うWordPressの移行
さくらのVPSのUbuntu 12.04を14.04へバージョンアップ(OS再インストール)した際のメモ。データ移行については、主にWordPressについて記述した。なお、データ移行を行ったWordPressサイトは、投稿数が50にも満たない、プラグインはほとんど使用していないといった極小規模なサイトであるため、もっと規模が大きかったり、複雑なことをしているサイトではこんな単純な作業では済まないだろう。
1.WordPressのバックアップ
WordPressの管理画面(/wp-admin
)にて、「ツール」→「エクスポート」を選択。エクスポートサブパネルにて「すべてのコンテンツ」を選択し「エクスポートファイルをダウンロード」をクリックし、XMLファイルを保存しておく。このXMLファイルには「投稿、ページ、コメント、カスタムフィールド、カテゴリー、タグ」が含まれているらしいが、テーマ(独自に作成したもの)、アップロードしたメディアファイル、WordPressの設定情報といったものは含まれないようだ。
テーマやメディアファイルについては、サーバ上のファイル(/var/www
配下のすべてのファイル)をローカルに保存しておくこととした。WordPressの設定情報については、データベース(MySQL)内に保存されていると思われるが、大した変更を行っていないので、手順で復旧することとして、MySQLの残りのデータはすべて捨てることとした。
2.ファイルのバックアップ
サーバ上のファイルのうち、/etc
と/home
配下のファイルについては、ローカルに保存しておくこととした。
3.さくらVPS再インストール
SAKURA InternetのカスタムOSインストールガイド内にある「Ubuntu 12.04/14.04」を参考に、OS起動までの作業を行う。インストールするOSはもちろん「Ubuntu 14.04 amd64」だ。OS起動後は、TeraTerm SSHにて接続確認および作業を行う。
4.Webサーバ構築
Ubuntu 14.04のOfficial Documentation「Ubuntuサーバーガイド」を参考に、apache2、php5、MySQLのインストールを行う。
apache2のインストールおよび設定は以下のとおり。忘れずにrewriteモジュールを有効にしておく。
$ sudo apt-get install apache2
$ sudo a2enmod ssl
$ sudo a2enmod rewrite
$ sudo a2ensite default-ssl
$ vi /etc/apache2/apache2.conf → /var/wwwについてAllowOverride Allとしておく。
$ sudo service apache2 restart
php5のインストールは以下のとおり。特段設定は不要で、apache2の再起動のみ行う。
$ sudo apt-get install php5 libapache2-mod-php5 php5-mysql
$ sudo service apache2 restart
MySQLのインストールは以下のとおり。インストール後のデータベースとデータベース用のユーザの作成については、WordPress Codex「WordPress のインストール」を参考に作業を行う。下記passwd
部分は適当に決める。
$ sudo apt-get install mysql-server
$ mysql -u root -p
mysql> CREATE DATABASE wp;
mysql> GRANT ALL PRIVILEGES ON wp.* TO "wp"@"localhost" IDENTIFIED BY "passwd";
mysql> FLUSH PRIVILEGES;
mysql> EXIT
WinSCPにてローカルPCからサーバへファイルをアップロード等行うために、www-data
ユーザをログイン可能にしておく。
$ sudo passwd www-data
$ sudo usermod -s /bin/bash www-data
6.WordPressインストール
ubuntuのパッケージは使用せず、tar.gzファイルをWordPressの日本語サイトからダウンロードして/var/www/html
へインストールする。
$ su -
# cd /var/www
# mv html html.old → デフォルトのファイルを保存しておく。
# wget http://ja.wordpress.org/wordpress-3.9-ja.tar.gz
# tar xvfz wordpress-3.9-ja.tar.gz
# mv wordpress html
# chown -R www-data.www-data html
# cd html
# mv wp-config-sample.php wp-config.php
wp-config.phpの内容を以下に書き換える。データベース作成時に設定した値を使用する。
define('DB_NAME', 'wp');
define('DB_USER', 'wp');
define('DB_PASSWORD', 'passwd');
define('DB_HOST', 'localhost');
7.WordPressのテーマ、メディアファイル等のアップロード
保存しておいた以下のフォルダ、ファイルをサーバ上の同フォルダへアップロードする。
.htaccess
favicon.ico
wp-content/uploads
wp-content/themes/k4750v1 → 本サイト独自のテーマ。
8.WordPressの初期設定
ブラウザにて「/wp-admin/install.php」へアクセスし、サイト名等を入力し、初期設定を完了させる。また、管理画面へログイン後、テーマの設定、パーマリンクの設定(本サイトでは「日付と投稿名」を使用している)を元の設定に手動で戻す。
最後に、管理画面から「ツール」→「インポート」→「WordPress」を選択し、WordPress Importerのインストール後に「1.WordPressのバックアップ」にてバックアップしておいたXMLファイルをインポートする。なお、インポート時の「Download and import file attachments」は、チェックを入れるとメディアファイルのリンクがおかしくなってしまったので、チェックを入れずにインポートを実施した。
以上で、一通りの作業は完了。ブラウザにて問題なくWordPressサイトが表示されることを確認する。