さくらインターネットのプラン乗り換えクーポンを使って、16倍早いさくらちゃんを導入した手順
2018/08/28
このブログは「さくらインターネット」のスタンダードプランで運営しているのですが、ページの更新をするだけで500エラー(Internal Server Error)が出たりするなど、最近はやったらと重かったので、Wordpressが最大16倍早くなる噂の『新生さくらのレンタルサーバ(スタンダード)』にプランを変更してみることにしました。
新生さくらのレンタルサーバは、以下のような特徴があるようです。
- PHPモジュールモード採用で、Wordpressが最大16倍に高速化
- Nginxを採用しサーバの処理能力を向上。HTTP/2対応により表示速度の向上
- コントロールパネルを刷新
- PHP7の導入
- SSDでDBを高速化
せっかくなので、プラン変更の際のデータベースや WordPress、ドメインの移行方法など、乗り換え順などをまとめてみたいと思います。
余談ですが私が初めてさくらインターネットを契約したのが
--
登録完了日 2004年08月25日
--
と当時のメールにあるので、(ちょうど今日で!)驚きの14年ユーザとなってしまいました。
プラン変更によるサーバレスポンスの結果
「プランを変更してサーバのレスポンスは本当に早くなるのか?」というのはもっともな疑問だと思いますので、私の環境下での移行前、移行後のレスポンスの結果を先に出しておこうと思います。
プラン変更を考えている人の何かの足しになれば幸いです。
PageSpeed Insights
Googleの「PageSpeed Insights」で計測した値です。
URLが wataame.sumomo.ne.jp となっていますが、これは事前にキャプチャを撮り忘れてしまったので、変更前のサーバで用意されているサブドメインでブログを表示させて計測した結果です。
プラン変更前
Mobile:Low 52/100
パソコン:Medium 74/100
サーバの応答時間:1.6秒
プラン変更後
Mobile:Medium 72/100
パソコン:Good 82/100
サーバの応答時間:0.50秒
サーバを入れ替えるだけで、1/3ぐらいの時間まで短縮できました。
これはちょっと驚き。
サイト表示スピード測定
http://site-speed.podzone.net/index.cgi
上記サイトでも計測してみました。
こちらは忘れずにきっちりとキャプチャを撮ったので、ドメインは nodoame.net となっています。
プラン変更前
測定結果 = 1.952(秒)
プラン変更後
測定結果 = 0.39(秒)
1/5 ぐらいの時間まで短縮できました。
ホンマかいな。
『新生さくらのレンタルサーバ』へのプラン変更及び移行手順
ということで、ここからは手順の解説。
SSHでログインする方法や、ファイルの圧縮コマンドなど、コピペレベルで使える情報を書いていきたいと思います。
ちなみに今回はMacで作業したので、SSHのログインなどはMacのターミナルを使っての解説となります。
1. データベースのエクスポート(ダンプ)
phpMyAdminを使ってデータベース(DB)をダンプします。
ダンプ(エクスポート)までは良かったのですが、ファイルサイズが大きかったのか、私の使っていたDBサーバが古いが原因なのかどうかは分かりませんでしたが、一括でエクスポートしても、そのまま新サーバのDBへインポートすることが出来ませんでした。
そもそも新プランでのデータベースの形式と違っていたのも原因か??
仕方ないので、Wordpressで必要なテーブルをいくつかに分割してダンプする方法を採用。
いきなりつまづきかけてちょっと萎えました。
↑ プレフィックスが「wp_」となっているテーブルが、Wordpressで使用しているテーブル
今回は私は4個ずつチェックしてエクスポートすることにしました。
エクスポート時のファイル名は「mizuame_001」など、任意で構いません。
2. サーバ上のWordpress構成ファイルを全てダウンロード
WordPress構成ファイルを全てダウンロードします。
FTPでちまちまDLしても構いませんが時間の無駄と断言できるので、ターミナルからディレクトリ(フォルダ)ごと圧縮して、一括ダウンロードする方法を紹介。
さくらのレンタルサーバへSSHログインする方法
MacのLauncherpadから「その他」を開き「ターミナル」を起動します。
↑ このアイコンのアプリ
下記SSHコマンドを実行し、ログインします。
1 |
ssh ユーザ名@ドメイン名.sakura.ne.jp |
SSH接続で使用するユーザ名、パスワードは、FTPで使用するユーザ名、パスワードと同じものを使います。
接続先ドメイン名は、コントロールパネルへのログイン時に入力するドメイン名を使います。
契約ドメインが「hogehoge.sakura.ne.jp」の場合、初期設定だと下記のようになっていると思います。
サンプル | メモ | |
---|---|---|
ユーザ名 | hogehoge | ドメイン名 |
ドメイン名 | hogehoge.sakura.ne.jp | コントロールパネルへのログイン時に入力するドメイン名 |
パスワード | ********* | コントロールパネルへのログイン時に入力するサーバパスワード |
実際のターミナルでは以下のような感じです(一部伏せ字にしています)
1 2 3 4 5 6 7 8 9 10 11 |
MacBook:~ toogie$ ssh hogehoge@hogehoge.sakura.ne.jp ←★「ユーザ名@ドメイン名」を入力 The authenticity of host 'hogehoge.sakura.ne.jp (***.***.***.***)' can't be established. ECDSA key fingerprint is SHA256:*******************************************. Are you sure you want to continue connecting (yes/no)? y ←★接続したいかどうかの確認 Please type 'yes' or 'no': yes ←★「y」だけだと怒られたので、「yes」と入力 Warning: Permanently added 'hogehoge.sakura.ne.jp,***.***.***.***' (ECDSA) to the list of known hosts. hogehoge@hogehoge.sakura.ne.jp's password: ←★パスワードを入力(入力文字は表示されません) Last login: Mon Jan 15 12:12:52 2018 from *************.**.*******.ne.jp ←★前回のログインログが表示されます FreeBSD 9.1-RELEASE-p22 (SAKURA17) #0: Wed Dec 3 15:24:48 JST 2014 Welcome to FreeBSD! ←★ここまで表示されたら接続完了です |
WordPress構成ファイルを一括圧縮
おおよそ下記のコマンドを使えば目的のパスまで移動し、ディレクトリを圧縮することができると思います。
- ファイルの一覧を表示する → ls
- ディレクトリを移動する → cd
- 現在のパスを表示 → pwd
- ディレクトリごと圧縮 → tar
- 圧縮ファイルを展開 → tar
lsコマンド
1 |
ls -al |
cdコマンド
1 2 3 |
cd www ←★wwwディレクトリに移動 cd wp ←★wpディレクトリに移動 cd ../ ←★1回層上に移動 |
pwdコマンド
1 |
pwd |
tarコマンド
<圧縮>
1 |
tar -zcvf xxxx.tar.gz directory ←★directoryという名前のディレクトリを、xxxx.tar.gz というファイルに圧縮する |
<展開>
展開するのもtarコマンドを使用します。圧縮とはコマンドオプションが違うだけです。
1 |
tar -zxvf wp.tar.gz ←★wp.tar.gzを展開 |
手順としては以下のようになると思います。
- さくらインターネットで用意されている個人用ドキュメントルート「www」へ移動し、一覧を表示してディレクトリ名を確認。
- WordPress関連ファイルが格納されているディレクトリ(私の場合は「wp」)を一括で圧縮。
- 圧縮したファイルをFTPでダウンロード
圧縮コマンドは下記となります。
1 |
tar -zcvf wp.tar.gz wp |
以上で手順2は完了です。
(手順3)新サーバにデータベースを作成し、インポート
手順1でダンプしたデータを、新サーバへphpMyAdminを使ってインポートします。
(3-1)データベースの新規作成
新サーバのコントロールパネルにログインし、新規データベースを作成します。
ベータ版のコントロールパネルから作成しようとしたらなぜか出来なかったので、旧来のコンパネから作成します。
↑「データベースの新規作成」リンクをクリック
↑ データベース名を入力
「wp」や「wordpress」とするのが一般的でしょう。
出来上がりは『hogehoge_データベース名』(例:hogehpge_wp)という名称となります。
オプションのバージョンは5.7のみ選択可能で、データベースの文字コードは
- UTF-8(utf8mb4)
- UTF-8(utf8)
- EUC-JP(ujis)
- EUC-JP(eucjpms)
の中から選択可能。
EUCはほぼ使うことがないので、UTF-8(utf8mb4) or UTF-8(utf8) になると思います。
「utf8mb4」は、UTF8で4バイト文字を扱う事が出来るものとのこと。
実は使ったことがないので、よく分かりませんでした(えー)
ということで、いつも使っている「UTF-8(utf8)」を選択しました。
現状、特に困ったことはありません。
(※もしかしたら、一番最初にWordpressをインストールしたときも、よくわからんという同じ理由で「UTF-8(utf8)」を選択したのかも…。)
(3-2)データのインポート
作成したデータベースへphpMyAdminでアクセスし、上部グローバルメニューから「インポート」をクリック。
今回は複数個に分けてダンプしたので、その個数回インポートを行います。
↑ 手順1でダンプしたデータをインポートしていきます
(手順4)Wordpress構成ファイルをアップロード
(4-1) 圧縮ファイルを展開する
手順2でダウンロードした圧縮ファイルをFTPで新サーバの www へアップし、展開します。
新サーバにSSHでログインし、www へ移動。
1 2 |
cd www ←★移動 tar -zxvf wp.tar.gz ←★wp.tar.gzを展開 |
展開はファイルサイズにもよりますが、数秒~数十秒で終わると思います。
不要になった圧縮ファイルは、FTPで削除すればOKです。
コマンドを使っても良いのですが、事故が怖いので削除はFTPで行いました。
(4-2) データベース設定の修正
データベースの接続先情報を書き換えます。
wordpressのディレクトリ直下にある wp-config.php というファイルにDBの接続先が書いているので、そこを修正。
1 2 3 4 5 6 7 8 9 10 11 12 |
// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', '/* データベース名 */'); /** MySQL データベースのユーザー名 */ define('DB_USER', '/* 接続ユーザー名 */'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', '/* パスワード名 */'); /** MySQL のホスト名 */ define('DB_HOST', '/* 接続先ホスト名 */'); |
(手順5)PHPの設定
PHPが7.2になりましたので、php.iniの設定をいくつか行います。
以前のポストにPHP5版の設定方法を書きましたが、バージョンが違うと少し違うところがあったので、新たにまとめておきます。
(関連)php5の設定ポストはこちら。
date.timezone
タイムゾーンが設定されていないとエラーログがたまる恐れがあるので設定します。
「Asia/Tokyo」を設定し、日本標準時間とします
default_charset
デフォルト文字コードを設定します。
「UTF-8」とします。
mbstring.language
mbstringのデフォルト言語を設定します。
「Japanese」とします。
mbstring.encoding_translation
HTTP入力文字のエンコーディングを内部文字のエンコーディングに自動的に変換するかどうかを設定します。
「Off」を指定し、自動的に変換しないようにします。
mbstring.detect_order
文字コードを自動検出する際の優先順位を設定します。
「UTF-8,SJIS,EUC-JP,JIS,ASCII」とします。
expose_php
HTTPのレスポンスにPHPのバージョン情報を出力するX-Powered-Byヘッダを含めるかどうかを設定します。
「Off」を指定し、HTTPのレスポンスによりPHPのバージョン情報が出ないようにします。
post_max_size
POSTデータに許可される最大サイズを設定します。
次の「upload_max_filesize」より大きな値を設定する必要があり、且つ、一般的に memory_limit は post_max_sizeよりも大きくする必要があるので、今回は「100M」としました。
なお memory_limit はデフォルトで「128M」となっていました。
upload_max_filesize
ファイルをアップロードする際のファイルの最大サイズを設定します。
今回は「50M」としました。
まとめると、以下のようになります。
1 2 3 4 5 6 7 8 |
date.timezone = 'Asia/Tokyo' default_charset = UTF-8 mbstring.language = Japanese mbstring.encoding_translation = Off mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII expose_php = Off post_max_size = '100M' upload_max_filesize = '50M' |
まだ他にも設定する箇所はあると思いますが、取り急ぎ設定が必要そうなところをまとめてみました。
上記の設定を、コントロールパネル → PHP言語に関する設定 → PHP設定の編集 と移動し、フォームに書き込んで「保存する」ボタンをクリックすれば完了です。
以下のオプションは使わない
下記のオプションは PHP5.6以降は非推奨となっているので、使用しないようにします。
- mbstring.internal_encoding
- mbstring.http_input
- mbstring.http_output
(手順6)ドメインの移行処理
私の場合は、nodoame.net という独自ドメインにて運営していたので必要な処理でした。
nodoame.net 自体は「お名前コム」にて取得したドメインでしたので、そちらの処理も書いておきたいと思います。
https://www.sakura.ne.jp/speedup/