このサイトのサーバーはsitegroundを借りていました。とても使いやすくて素晴らしいサーバーなのですが、ディスク容量が小さすぎてコストパフォーマンスが悪いのでサーバーをmixhostに引っ越すことにしました。
この記事では、サーバー引越しの手順をまとめておきたいと思います。
mixhostを選んだ理由
mixhost以外で考えていたホスティングサービス
ColorfulBox
ColorfulBoxはmixhostとほぼ同じ性能と価格のサービス。数字の上ではどちらでも構わないという感じだったが、mixhostの半額キャンペーンの破壊力のせいで同じ価格ならmixhostの方が使用できるリソースは段違いに高い。
Xserver
Xserverはアクセス集中に耐えられるかどうかだけが課題。もし耐えられない場合は、WpXかKusanagi CONOHAなどに移転する必要が出てくる。
将来性を考えると今回はパス。
WpX
WpXは性能的には問題ないが、SSHが使えない等、使い勝手が悪いのでパス。
KUSANAGI CONOHA
KUSANAGIは魅力的だが、性能対運用コストが高いのでパス。同じ金額だったら他のサービスの方が安いということ。
fastcomet
Sitegroundと同じようなタイプのWordpress特化型のホスティング。SSD容量のコスパが悪すぎるので、移転するメリットが無い。
A2 hosting
Sitegroundやfastcometと同列で比較されるWordpress特化型のホスティング。SSD容量のコスパが良いが、日本のホスティングと比べて劣るのでメリットが無い。
既存ドメインをSSL化する
mixhostはネームサーバーを切り替えてドメインをSSL化する仕様だった
Xserverでは、SSL化してあるドメインをネームサーバー切り替え前に移転先ドメインのSSL化ができるようになっているのでダウンタイムは発生しません。
しかし、mixhostは、ドメインをSSL化する際に事前認証が出来ません。
つまり、mixhostはネームサーバーが切り替えないと移転先のドメインのSSL化ができない仕様でした。
ネームサーバー切り替えて、mixhostのSSL化が終わるまで、ダウンタイムが発生するので、出来ればネームサーバーの切り替えは避けたいです。
Lets Encryptをmixhostに自前でインストールしてSSL化する
意外と困っている人は多いようで、検索すると解決策が簡単に見つかりました。
Lets Encryptを自前でインストールすると、wwwありとwwwなしの独自ドメインだけしかSSL化されないですが、気にしなくても大丈夫です。
現在の証明書が切れる3日前にmixhostのSSLに自動的に切り替わるので、Lets Encryptの期限が来れば正規のSSLに切り替わるそうです。
Lets EncryptでSSL化されていなかったドメインもLets Encryptの有効期限が切れた時にすべてSSL化される。
サーバー移転
All in One Migrationを使います
移転元のサイトでAll in One Migrationでエクスポート。
hostsファイルを書き換える
windowsのhostsファイルを書き換えて、独自ドメインをIPアドレスと紐づけます
mixhostのwordpressにログイン
mixhost側のwordpressにログインして、移転元のデータをインポート
ドメインはすでにSSL化されているはずですが、httpsだと古いサイトが表示されることがあるので、httpでアクセスした方がよいです。
ネームサーバーmixhostに切り替える
windowsのhostsファイルを元に戻してから、ネームサーバーを切り替えます。
DNSが切り替われば移転完了
数分でmixhost側に切り替わり、SSLでアクセスできるようになります。
もし、DNSの切り替わりが遅く、移転元と移転先のどちらにログインしているかわからない状況が発生するのを嫌う場合は、wordpressにログインして編集したい場合は、再度hostsファイルを編集した方が早い。
httpsにURLを正規化(統一)する
mixhostは、Wordpressの「設定」でhttpsにしてもリダイレクトされない仕様です。
.htaccessに以下を書くことでhttpsにリダイレクトされるようになります。
[R,L]だと302リダイレクトになりますので、必ず[R=301,L]と書きましょう。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
public_htmlはindex表示させないように設定する
mixhostは、index.htmlやindex.phpが無いフォルダではファイルリストを表示してしまう仕様である。
WordPressをインストールして使っている場合はこの件は問題にならない。しかし、初期ドメインなどWordpressをインストールしていないケースでは、ファイルリストが表示されてしまう。
cPanelの設定からファイルリスト表示をしないように設定できる。
リスト表示の有無は、上位フォルダの設定を引き継ぐ仕様のようなので、public_htmlをリスト表示禁止にしておくことで、webで公開されているすべてのフォルダがリスト表示されない設定となる。
SSH関連
わたしは、SSHクライアントにRLoginを使っています。
MixhostのSSHの情報は少ないので、RLoginで必要な情報をまとめておきます。
- ログイン名:マイページで表示されるユーザー名
- パスワード:最初のメールに書かれている(自分で設定したものではない)
- SSHポート:22
- 秘密鍵ファイル:putty形式にする
mixhostのSSHでphpがOut of memoryになる時の対処方法
WP CLIをmixhostで使おうと思ったときに、コマンドラインのphpが必要になります。
SSH経由でログインして、phpと打つと、その時点でOut of memoroyというエラーになります。
コマンド自体が受け付けられないので、そのあと何もできません。phpが正しくインストールされていないように見えました。
cPanelのパネルを見てたら、Terminalというのがあったので、ダメもとでTerminal経由でphpをコマンドラインでを使うと、Warningは出てもとりあえず動きます。
散々検索してみましたが、解決策がわからず、サポートに問い合わせました。
何とサーバーの設定ミスということで、解決しました。
メール関連
cPanelでメールアドレスのパスワードは自動生成しない方が良い
gmailで外部popや外部SMTPとしてmixhostのメールサーバーにつなごうとしたら、パスワード入力でエラーになった。
自分でパスワードを設定した時にはエラーが無くなったので、おそらく自動生成されたパスワードによろしくない記号などが入っていたのだと思います。
メールパスワードは、自動生成ではなく、自分で設定した方が良い。
メール転送
わたしは独自ドメインメールをgmail転送してgmailで管理していたので、mixhostでもメール転送の設定を行いました。
mixhostは初期状態でWAFとウィルススキャンに対応済み
mixhostが国内のサーバーと圧倒的に違うのは、サーバー側のセキュリティ対策だと思います。
正直、サイト側の対策だけでは限界があります。
mixhostにはcPanelのWAFとウィルススキャンが標準装備されています。
通常、WAFというとWordpressの便利な機能を損なう方向に機能するので、使いにくくなる欠点がありますが、mixhostのWAFはそのような使いずらさを感じたことはありません。
また、Imunify360というウィルススキャン、駆除システムが利用できるので、怪しいファイルがあると自動的に駆除してくれるという優れものです。
ウィルススキャン、駆除までサーバー側で行っている国内のレンタルサーバーはcloud LinuxでcPanelを利用しているmixhostとcolorfuboxだけだとも思います。
まとめ
mixhostに移転したことで、sitegroundのリソース制限やSDD容量の少なさから解放されました。国内サーバーになったため、海外からのアクセスは遅く感じますが、これは仕方ない部分だと思います。mixhostは今半額キャンペーン中なのでXserverを借りるよりも安く契約できますので、おすすめします。