あっかぎのページ

またまたサイトのお引越し

またまたサイトのお引越しをしたのでその時のメモ。

前回のお引越し

少し前にレンタルサーバーのロリポップからさくらVPSへサイトのお引越しをした記事を書きました。

内容は100円のロリポップからさくらVPSへWordPressサイトのお引越しの話でした。

主な手順はこんな感じ。

  • Webサーバーの設定(nginx, php-fpm)
  • MySQLで事前にデータベース作成
  • WordPressのエクスポート・インポート機能を利用
  • DNSの変更

サーバー周辺の設定変更がきちんとできれば、WordPress自体のお引越しは簡単です。WordPressにあるエクスポートとインポートの機能ですべての記事をコピーして(同時に画像)、プラグインなどを入れていけばOKです。引っ越したあとはドメインの調整が必要ですが、これもSearch Regexとかで変換します。

商用サイトや数万アクセスあるようなサイトでなければ、このやり方でもたぶん問題ないと思います。トラブルあっても対処できますしね。

今回は、せっかくなのでこれとは違うやり方でやりました。

今回のお引越し

少し前にConoHaのVPSを使う機会がありました。使ってみるとさくらVPSよりも同じ値段なのに性能がよくてびっくり。今回45日無料キャンペーンがあったので、この機会にConoHaでもアカウントを取りました。

ConoHaのVPSの基本設定はこんな感じ。

  • OS : debian
  • Web: nginx
  • DB : mysql

あとはRubyとかを入れてそこそこ動くのが確認できたので、いよいよサイトのお引越しです。

手順

  1. WordPressのインストール
  2. dbのコピー
  3. uploads, plugin, themesのコピー
  4. ドメインとnginxの個別設定

WordPressのインストール

WordPressのインストールです。

$ cd /var/www
$ wget https://wordpress.org/latest.tar.gz
$ tar zxvf latest.tar.gz
$ mv wordpress aiueo
$ sudo chown -R www-data:www-data aiueo
$ find aiueo -type d | sudo xargs chmod -R 775
$ find aiueo -type f | sudo xargs chmod -R 664

dbは事前に移行元と同じ名前・ユーザー・パスワードで作っておきます。

mysql> create database foo;
mysql> grant all privileges on foo.* to foo@localhost identified by 'password';
mysql> exit

これでそのIPアドレスのaiueoにアクセスするとWordPressのインストール画面になると思います。

先ほど設定したdbに合わせて入力するとWordPressのインストールが完了し、サイト名やユーザー名などを登録できると思います。

dbのコピー

移行元のmysqlのdbをコピーします。

※この作業を行うとWordPressの『WordPress アドレス (URL)』(siteurl)と『サイトアドレス (URL)』(home)が書き換わるので、nginxの設定とドメイン変更が完了するまでWordPressが起動しなくなります。(もしくは移行元のサーバーが表示されてしまいます)。もし、ドメイン変更前のWordPressを使いたいときはサイト URL の変更を参考に、siteurlとhomeの値を適宜修正します。

$ mysqldump -ufoo -pfoo foo > foo.dump
$ gzip foo.dump
$ scp foo.dump.gz hoge@192.168.0.200:/home/hoge

移行先のサーバーでdbを入力(事前にdb準備は必要)。

$ gunzip foo.dump.gz
$ mysql -ufoo -pfoo foo < foo.dump

uploads, plugin, themesのコピー

記事や設定はmysqlのコピーで完了しているので、画像(uploads)やプラグイン(plugin)、テーマ(themes)のコピーをします。mysqlのデータには画像やプラグイン、テーマデータなどが保存されていないためです。

先ほどのWordPressのインストールもそうですが、移行元のデータをそのまま次のようにコピーすることもできます。場合によってはデータが大きくなりすぎたり、パーミッションなどを意識しないとうまく移行できないかもしれません。

移行元
$ tar zcvf aiueo.tar.gz /var/www/aiueo
$ scp aiueo.tar.gz hoge@192.168.0.200:/var/www/

移行先
$ cd /var/www
$ tar zxvf aiueo.tar.gz 

上のやり方はサイト全部のコピーになります。

画像やプラグイン、テーマを個別に処理するときは次のようなやり方です。

移行元
$ cd /var/www/aiueo/wp-content
$ tar zcvf uploads.tar.gz uploads
$ tar zcvf plugins.tar.gz plugins
$ tar zcvf themes.tar.gz themes
$ scp uploads.tar.gz plugins.tar.gz themes.tar.gz hoge@192.168.0.200:/var/www/aiueo/wp-content

移行先
$ cd /var/www/aiueo/wp-content
$ tar zxvf uploads.tar.gz
$ tar zxvf plugins.tar.gz
$ tar zxvf themes.tar.gz

プラグインやテーマについてはWordPressの管理画面から個別にインストールしても構いません。ただ、画像についてはmysqlのdbに合わせたフォルダ構成が必要なので、コピー元をコピー先にそのままコピーする必要があります。

あとはファイルやフォルダの所有者やパーミッションを確認して、移行元と移行先で食い違いがないかチェックしておきます。

ドメインとnginxの個別設定

お引越しなのでドメインはそのままですが、サーバーのIPが変わると思います。そこで古いサーバーのIPから新しいサーバーのIPへと登録中のドメインサービスで変更しておきます。ムームードメインならこれが参考になると思います。カスタム設定のセットアップ方法。多くの場合『Aレコード』でIPアドレスを登録して設定保存すると思います。

早ければ1,2時間でドメインの変更が反映されます(世界中のDNSへは数日かかります)。pingやnslookupなどのコマンドでドメインを調べてみると、ドメインが反映されたかどうかチェックできます。

$ ping akkagi.info
PING akkagi.info (133.130.115.53) 56(84) bytes of data.
64 bytes from v133-130-115-53.a046.g.tyo1.static.cnode.io (133.130.115.53): icmp_seq=1 ttl=51 time=39.5 ms

ここで移行先のサーバーIPで返答が帰ってきたらドメインのIP変更はokです。

nginxの個別設定

Webサイトにアクセスがあったとき、ドメインに応じてアクセスを振り分けます。

例えば、WordPressが動く最小構成のnginx設定です。(/etc/nginx/conf.d/aiueo.conf)

server {
    root    /var/www/aiueo;
    index   index.php;
    charset utf-8;

    listen  80;
    server_name akkagi.info;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }
}

rootはwordpressをインストールした場所、server_nameはドメインを設定します。ファイルができれば設定ファイルを読み込みます。

$ sudo service nginx reload

これでakkagi.infoにアクセスがあれば/var/www/aiueo以下のWordPressが動作します。実際にブラウザでakkagi.infoにアクセスしてきちんと表示されていれば完了です。

ぼくの場合は、サーバーのモジュール不足などで一部エラーがありましたので、必要に応じて細かい修正をします。

おわりに

さくらサーバーと違ってConoHaなら初期費用が0円なので、気軽に始められるのがいい点ですね。

これは以前のぼくのツイートです。

あっかぎ ‏@akkagi0416  4月3日
この前借りたConoHaのVPSがいい(・∀・)イイ!!。
さくらVPSで同じクラスのCPU2コアと比較すると、MySQLの検索がさくらが3秒後半だったのにConoHaは1.5秒くらい。
同じSSDとコア数でも結構体感できるくらい違う。
ちなみにRaspberry Piだと20秒・・・

数万件のレコードをもつテーブルを結合して、条件を満たすレコードをソートしながら拾ってくる処理をしたときのツイートです。

さくらVPSもConoHa VSPもどちらもSSDの高速ドライブで、CPU2コア、メモリ1GBと同じ条件ですが、2倍近くも速度が違いました。これくらい違ってくるといろんな処理をすると体感でもわかるくらいに差がありました。どちらも同じ900円なので、初期費用がないならSSDの容量も大きいConoHaが絶対にお得だと思います。

ほんとは性能評価はUnixBenchとかabのベンチマークを使って、サーバーやネットワークの性能を数値的にみた方がいいですけどね・・・暇があればということで(^^;

もちろんサーバーなので安定性が最重要ですが、4月から使っているアカウントも一度も止まったりトラブルになったりしていないので、この点も個人的には問題ないと思っています。

調子に乗ってこのサイトだけでなく、他の格安SIMのサイト(http://simtoku.net/)も引越ししました。1か月くらい運用してみてトラブルがなければ、さくらVPSはストップして今後はConoHaへ完全に移行したいと思います。