MENU

【備忘録】【サーバー移転】「さくらVPS」から「Xserver」へ

★環境 [移転前 >> 移転後]

 ・CentOS Linux 7 [※変更なし]
 ・Apache [2.4.33 (IUS) >> 2.4.46 (IUS)]
 ・MariaDB [10.6.8 >> 10.5.15]
 ・PHP [7.4.19 >> 7.4.28]
 ・ウェブコンテンツ:WordPress、Laravel

※2022年5月時点

自分が運営しているウェブサーバーを「さくらVPS」から「Xserver」へ移転しました。

目次

サーバー移転の理由

移転の主な理由をピックアップします。

  1. 「さくらVPS」の年間契約の期間終了が間近であったため
  2. VPSでの構築ウェブサーバーが不安定化してきたため
  3. VPSにこだわる理由がないため
  4. 「Xserver」でWordpressはもちろん、Laravelも動作可能なため
  5. 「Xserver」でコストカットできる上、オトクなキャンペーンも実施していたため

「さくらVPS」の年間契約の期間終了が間近であったため

私は「さくらVPS」を2012年から使ってきました。

当時は「さくらのVPS(v3) 2G」を契約していて、その後、ウェブとデータベースを分けるため「さくらのVPS(v3) 1G」の追加契約をしました。

そのサービスを解約した後も、「さくらのVPS(v4) SSD 4G TK02」「さくらのVPS(v4) HDD 2G TK02」を契約して継続して「さくらVPS」を使い続けてきました。

その年間契約も7月末で期限を迎えるため、今回別のサーバーを探す事を考えてました。

VPSでの構築ウェブサーバーが不安定化してきたため

ここ最近、ウェブサーバーがダウンする事がしばしばありました。

さくらのサービス「ダウン検知」を見れば、1週間に1回あるかないかで、スワップを使い尽くしてウェブサーバーにアクセスできない状況が発生しています。

私自身のapacheの設定方法にも問題があるかもしれませんが、色々試行錯誤しましたが、最終的な改善ができませんでした。

SSDが主流な時代、HDDでスワップを取っている事や、その上でウェブサーバーとデータベースサーバーを2台契約している事が、リソースの配分として間違っている事もあるかもしれません。

現に、SSDで運用されているデータベースサーバーは、ほとんどリソースを使っていませんでした。

設定だけでは解決できない事態かもしれないので、契約終了を契機に変えようと考えてました。

VPSにこだわる理由がないため

「さくらVPS」を使う前は、DTIの低価格で使える「ServersMan@VPS」を使ってました。

ところが、現在では知りませんが、2011年に契約した当時、かなりリソース不足などもあって、ウェブの運用に向きませんでした。

「さくらVPS」に変えてからは安定しましたが、別にVPSでなければいけない理由は特にありませんでした。

root権限で操作し、自由なパッケージを組みたいという思いは、元々サーバー管理者をしていたのでありましたが、一方で現在では、ウェブサイトを運用できればそれでいいので、VPSのメリットよりも、デメリットであるソフトウェアの管理、チューニングが自分にとって負担になっていました。

そこで、今回はレンタルサーバーを選ぶ事にしました。

「Xserver」でWordpressはもちろん、Laravelも動作可能なため

私が目をつけたレンタルサーバーは「Xserver」です。

評判が上々だった所と、安定性や運用実績を重視しました。

また、人気の「WordPress」はもちろんの事、PHPフレームワークの「Laravel」も動作するとの事だったので、移転に支障が無い事が分かりました。

「Xserver」でコストカットできる上、オトクなキャンペーンも実施していたため

「Xserver」のデメリットに、他のレンタルサーバーと比べて料金が割高という記事がありました。

確かにそうかもしれませんが、私が元々、「さくらVPS」を運用していた時は、2台で年間4万円近く掛かってました。

流石に私の規模のサイトではお金掛けすぎです😅

しかし安定性が見込める「Xserver」では、一番安いスタンダードプランを36ヶ月契約で月額990円になる上、6月16日までに申し込めが、半額キャッシュバックキャンペーンもやっていました。

3年契約で38,940 円の上、半額が戻ってきます。

しかもリソース保証は、私の契約していた「さくらVPS」のプランのリソースよりも多いです。

こうした点も決め手になりました。

あわせて読みたい
料金 | レンタルサーバーならエックスサーバー ご利用料金に関するご案内です。

移転をする上でやった実施した事

★「Xserver」のスタンダードプラン契約

当たり前ですが、まずは「Xserver」で契約します。

お試し期間が10日間あり、少し短く感じる人もいるかもしれませんが、その前に全ての移行をして、本当に運用に問題ないかチェックから始めました。

支払情報を登録すれば本契約になります。

★SSH公開鍵認証を設定

ブラウザから、「Xserver」のコントロールパネルのメニューより、公開鍵を生成しました。

メニューにある「アカウント」>「SSH設定」>「公開鍵認証用鍵ペアの生成」より作成できます。

余談ですが、レンタルサーバーと言えば、私のイメージは20年近く前の、FTPでアップするイメージが強い分、コントロールパネルでSSHキーを生成してコンソール操作できるようになっているとは、知ってはいたけど、改めて使ってみるとスゴイという印象です😊

★データベースの設定

こちらもコントロールパネルから設定しました。

「データベース」>「MySQL設定」より、データベースの作成と、データベースユーザーを作成し、データベースへのアクセス権を設定します。

メニューでは「MySQL」となってますが、データベースは「MariaDB」です。

元々、MariaDBを使っているで全く問題ありません。

データベースのインポート

データベースを設定すれば、コントロールパネルの「phpmyadmin(MariaDB10.5)」からインポートできます。

もちろんコマンドからインポートも可能です。

私はSSHでサーバーに接続して、コマンドでインポートしました。

移転元(さくらVPS)からエクスポート

mysqldump --single-transaction -u <DBユーザー名> -p <データベース名> > <エクスポートファイル名>.sql
エクスポートSQLの編集

そのまま移転先にインポートすると問題がある箇所がありました。

ユーザー名や、データベースの接続先が異なる箇所などです。

viエディタで置換しました。

:%s/CREATE ALGORITHM=UNDEFINED/ALTER ALGORITHM=UNDEFINED/g
:%s/DEFINER=`<移転元ユーザー名>`@`<移転元のDB接続先アドレス>`/DEFINER=`<移転先ユーザー名>`@`<移転先のDB接続先アドレス>`/g

移転先(Xserver)へのインポート

mysql -u <DBユーザー名> -p -h localhost <データベース名> < <インポートしたいエクスポートファイル名>.sql

インポートエラーについて

インポートしたら、一部でエラーが発生しました。

ERROR 1146 (42S02) at line 60105: Table 'xserverDB.da_table' doesn't exist

これはviewの箇所でした。

この部分のSQLを削除し、インポート後にviewを発行するSQLを実行しました。

プロシージャを設定

プロシージャまで復元できませんでしたので、こちらも再発行しました。

ただ、なぜかSQLでの発行が上手くできなかったので、「phpmyadmin」から入力して再発行しました。

★vimのインストール

絶対必要というわけではないですが、使いやすいのでvimをインストールしました。

mkdir ~/opt && cd $_
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.3.tar.gz
tar zxfv ncurses-6.3.tar.gz
cd ncurses-6.3
./configure --prefix=$HOME/local
make
make install
cd ~/opt
git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge --enable-fail-if-missing --prefix=$HOME/local --with-local-dir=$HOME/local
make
make install
vi ~/.bashrc

viコマンドでvimを実行するため、以下の「.bashrc」に追記します。

# .bashrc に下記行を追加
export PATH=$PATH:$HOME/local/bin
alias vi='vim'

コマンドの設定を反映させます。

source ~/.bashrc

<参考>

Gist
XServer に Vim をインストールする XServer に Vim をインストールする. GitHub Gist: instantly share code, notes, and snippets.

★Laravelを動作させる準備

PHPのバージョン変更

PHPのバージョンを確認すると、古いバージョンになっていると思います。

php -v

2022年5月現在で、「Xserver」でPHPは5系列、7系列、8.0系列が使えます

PHP8を使おうかと考えましたが、ただでさえ移転におけるトラブルが発生する可能性があるため、その際に問題の切り分けがややこしくなるため、移転前と同じバージョンにする事にしました。

ln -s /usr/bin/php7.4 $HOME/bin/php
ls -la $HOME/bin/
vi .bash_profile
source .bash_profile
php -v

これで「PHP 7.4.28 (cli) (built: Mar 11 2022 17:05:41) ( NTS )」となっていれば切り替えOKです。

Composerのバージョンアップ

「Laravel」を使うには「composer」が必要です。

ただこちらのバージョンを確認すると古いです。

composer -V
Composer version 1.10.22 2021-04-27 13:10:45

よってアップデートします。

「Composer」の公式サイトより、以下のインストールコマンドが確認できますので、最新のコマンドを使います

php -r ""copy('https://getcomposer.org/installer', 'composer-setup.php');""

php -r ""if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;""

php composer-setup.php

以下が表示されればOKです。

All settings correct for using Composer
Downloading...

Composer (version 2.3.5) successfully installed to: /home/*****/composer.phar
Use it: php composer.phar

後はセットアップ用のファイルをunlinkします。

php -r ""unlink('composer-setup.php');"""

続いてダウンロードしたComposerリネームして移動します。

mkdir -p $HOME/bin
mv composer.phar $HOME/bin/composer"

今度はpathを追加します。

vi ~/.bashrc

# 「.bashrc」に以下を追記する
export PATH=$HOME/bin:$PATH"
source ~/.bashrc

設定を反映させ、再びバージョン確認をしてアップデートされていればOKです。

source ~/.bashrc
composer -V
Composer version 2.3.5 2022-04-13 16:43:00"

<参考>

みやしもブログ
XSERVERにLaravelをインストールする方法を解説する XSRVERに『Laravel』をインストールする方法について解説してゆきます。画像付きで詳しく解説してゆきますので、プログラミング初心者でも簡単に作業をすることが可能です...
アナライズギア開発ブログ
エックスサーバー Composerをインストール(バージョン変更)する方法 エックスサーバーにはデフォルトで Composer がインストールされていますが、バージョンが古いため別のディレクトリに最新バージョンをインストールします。既存のComposer...
あわせて読みたい
Composer A Dependency Manager for PHP

★DNS変更:お名前.com

ドメインのDNSを変更します。

私は「お名前.com」よりドメイン取得してますので、お名前.comのDNS設定を変更します。

本当は「Xserver」で完全にウェブの設定をした後の方が良かったのですが、「Xserver」にてSSL設定をする際に、DNSレコードが「Xserver」に向いてないと設定できないので、とりあえず複数ある移転サイトの内、1つを変更しました。

サイト移転が完了したら、残りサイトは順次切り替えていきました。

DNSレコードは、基本的にはAレコードを契約した「Xserver」のグローバルIPアドレスに変更すればOKです。

ちなみ、移転が分かっている場合は、事前にTTL(そのレコード設定が有効な時間)を短くしてあげる事で、多少変更の反映がスムーズに理論上はいくはずです。

★ドメイン設定:Xserver

コントロールパネルより、「ドメイン」>「ドメイン設定」からドメインを追加します。

続いて、そのドメインのサブドメインも「ドメイン」>「サブドメイン設定」から追加します。

更にSSLの自動証明書を取得するため「ドメイン」>「SSL設定」から設定します。

ドメイン設定トラブル

ドメイン設定でいくつかのトラブルがありました。

①サイト設定の反映に時間がかかる

サブドメインを設定するれば、サーバー上で公開ファイルの設置が可能です。

しかし設置しても、直ぐには反映されず、エラーが表示されました。

このウェブスペースへは、まだホームページがアップロードされていません。
早速、エックスサーバー上へファイルをアップロードしてみましょう。
アップロードの方法などは、サポートマニュアルをご参照ください。

エックスサーバー・サイトトップページ
Copyright © Xserver Inc. All Rights Reserved.

恐らくですが、レンタルサーバーなので、ウェブサーバーのサービスを定期的に反映させているのでは?と思いますので、多少待つ必要があります

②「このウェブスペースへは、まだホームページがアップロードされていません。

これは先程と同じエラーメッセージですが、実はこれに結構ハマりました。

これは時間が経っても同じままでした。

しかも原因はとても単純でした。

何と「Xserver」で初期に生成されるファイル「index.html」であり、移転前のウェブファイルをごっそりその場所にコピーした際、それが「index.php」だったため、ファイルが上書きされず、表示の優先が「index.html」だったため、ずっと表示されてました

これは盲点でした😅


このウェブスペースへは、まだホームページがアップロードされていません。
早速、エックスサーバー上へファイルをアップロードしてみましょう。
アップロードの方法などは、サポートマニュアルをご参照ください。

エックスサーバー・サイトトップページ
Copyright © Xserver Inc. All Rights Reserved.
③DNSレコードが「Xserver」に設定されていない

1つは、前述の通り、DNSレコードが「Xserver」に設定されていない場合はエラーになります。

またDNSレコードが反映されたとしても、DNSレコードが全世界で書き換わるのに理論的には最大で3日ほどかかるので、しばらくは待つ必要もでてきます。

SSL設定
関連マニュアル
SSLの設定状況確認と設定の変更を行うことができます
SSL設定一覧
 
独自SSL設定追加
「x.hara-d.biz」に独自SSL設定を追加する際にエラーが発生しました。
以下に該当する場合、SSLサーバー証明書の設定追加に失敗します。
「サイト転送」を設定している
「アクセス制限」を設定している
SSLサーバー証明書の発行元によるメンテナンス作業中である
以下の項目をご確認のうえ、独自SSL設定の追加を再度お試しください。

「サイト転送」の設定を一時的に外す
「アクセス制限」の設定を一時的に外す
(以上、いずれにも該当しない場合、)しばらく待ってからもう一度申請する
設定の変更に関する詳細は、以下のマニュアルをご参照ください

サイト転送設定
アクセス制限
また、設定に問題がないにもかかわらず、設定追加に失敗する場合は、ネームサーバー、DNS各レコードの設定変更から最大24時間お待ちいただいてから、改めてお試しください。

以上をお試しくださいましても設定追加に失敗する場合は、サポートまでお問い合わせください。
④サイト転送設定がエラーになる

エラー画面の注意書きにもありますが、対象ドメインが転送設定されている場合、エラーになります。

私は「Xserver」にて転送設定してませんでしたが、.htaccessにてSSLの転送設定している事を思い出しました。

こちらを一旦無効にしたら成功しました。

★WordPressとLaravelを移転する

後は移転元のファイルを移動する、もしくはGitHub上からgit cloneすれば完了です。

これについての詳細は、後日の記事にまとめます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる