序章

VPSプロバイダー間の移行は、困難な作業のように思えます。 DigitalOceanと同様に、LinodeやRackspaceなどの他のVPSプロバイダーがルートアクセスを提供します。 これにより、必要なすべてのファイルを新しいDigitalOceanVPSに転送できます。

このガイドでは、簡単なWordPressブログをLinodeからDigitalOceanクラウドサーバーに転送する方法を示します。

WordPress Blog on Linode Server

どちらのインスタンスもUbuntuを実行します。 これらの手順は、他のプロバイダーから他のサービスを移行するように適合させることができます。

両方のVPSインスタンスでrootとして機能します。

の意味

このチュートリアルでは、ユーザーが入力またはカスタマイズする必要のある行はになります。 残りはほとんどコピーアンドパスタブルである必要があります。

予備的なDigitalOceanクラウドサーバー構成

ランプの取り付け

まず、DigitalOceanクラウドサーバーにLAMP(Linux、Apache、MySQL、PHP)スタックをインストールする必要があります。 これは、いくつかの異なる方法で実行できます。

UbuntuでLAMPを起動して実行する最も簡単な方法は、最初にドロップレットを作成するときに、事前構成された「LAMPonUbuntu」イメージを選択することです。 ドロップレット作成ページの[画像の選択]部分で、[アプリケーション]タブを選択します。 「Ubuntu14.04のLAMP」を選択します。

LAMP on Ubuntu image for DigitalOcean VPS

使用したいドロップレットがすでにある場合は、このリンクをたどってLAMPスタックをUbuntuにインストールできます。

Rsyncのインストール

sshrsyncを使用してファイル転送を行います。 次のコマンドを使用して、rsyncがDigitalOceanVPSにインストールされていることを確認します。

rsync --version

このコマンドが「コマンドが見つかりません」というメッセージを返す場合は、apt-getを使用してrsyncをインストールする必要があります。

apt-get install rsync

VPSサーバー間の通信

次の手順は、古いVPSで実行されます。 まだの場合は、rootとしてログインします。

古いVPSにもrsyncをインストールする必要があります。 このシステムでrsyncのチェックを再実行します。

rsync --version

必要に応じて、rsyncをインストールします。

apt-get install rsync

以前のVPSからDigitalOceanクラウドサーバーに関連情報を転送するには、rsyncが古いサーバーから新しいサーバーにログインできる必要があります。 これを行うためにSSHを使用します。

古いVPSでSSHキーを生成していない場合は、次のコマンドを使用してSSHキーを作成します。

ssh-keygen -t rsa -b 4096 -v

必要に応じてプロンプトに答えます。 すべてのプロンプトで「Enter」を押して、デフォルト値を受け入れてください。

次に、次のコマンドを使用してSSHキーを新しいVPSに転送します。 DigitalOcean VPS IPアドレスを反映するように、redの部分を変更します。

ssh-copy-id 111.222.333.444

サイトファイルの転送

まず、古いサーバーのWebルートにあるファイルを新しいクラウドサーバーに転送します。 構成ファイルを調べることで、WordPressWebルートがどこにあるかを見つけることができます。 サイトが有効なディレクトリを調べて、正しいVirtualHostファイルを見つけます。

cd /etc/apache2/sites-enabled
ls
li606-185.members.linode.com

ここでは、私たちのファイルは「li606-185.members.linode.com」と呼ばれていますが、あなたのファイルは何か違うかもしれません。 nanoでファイルを開きます。

nano li606-185.members.linode.com

Webコンテンツが提供されているディレクトリを示す「DocumentRoot」行を探しています。 この例では、次の行があります。

DocumentRoot /srv/www/li606-185.members.linode.com/public_html/

ファイルを閉じて、そのディレクトリにcdします。

cd /srv/www/li606-185.members.linode.com/public_html/
ls -F
出力
latest.tar.gz  wordpress/

ご覧のとおり、WordPressサイトのディレクトリがあります。 これには、当サイトのすべてのWebコンテンツが含まれています。

このディレクトリ全体を、そのアクセス許可とサブディレクトリとともに、この場所からDigitalOceanクラウドサーバーのWebルートに転送します。 デフォルトでは、Ubuntu 14.04のapache2は、「/ var / www / html」からコンテンツを提供するため、このコンテンツを配置します。

正しく転送するために、rsyncにいくつかのオプションを追加します。 「-a」オプションはアーカイブを表します。これにより、権限や所有権などの基盤となるファイルプロパティの多くを保持しながら、再帰的に転送できます。

また、詳細出力には「-v」フラグを使用し、転送の進行状況を示し、転送の問題が発生した場合にrsyncを再開できるようにする「-P」フラグを使用します。

rsync -avP wordpress 111.222.333.444:/var/www/html/

「wordpress」の後にnoの末尾のスラッシュがありますが、「/ var / www /html/」にはがあることに注意してください。 これにより、ディレクトリの内容だけを転送するのではなく、「wordpress」ディレクトリ自体が宛先に転送されます。

これで、WordPressディレクトリ構造全体が新しいクラウドサーバーのWebルートに転送されました。

この時点で、Webブラウザを新しいクラウドサーバーのIPアドレスに誘導し、WordPressサイトにアクセスしようとすると、MySQLエラーが発生します。

111.222.333.444/wordpress
Error establishing a database connection

MySQL Error establishing a database connection

これは、WordPressがまだ転送されていないMySQLデータベースにデータを保存しているためです。 次にMySQL転送を処理します。

MySQLデータベース転送

MySQLデータベースを転送する最良の方法は、MySQLの内部データベースダンプユーティリティを使用することです。 まず、ダンプする必要のあるデータベースを確認します。 MySQLにログインします:

cd
mysql -u root -p

続行するには、データベース管理者のパスワードを入力してください。 次のコマンドを使用してMySQLデータベースを一覧表示します。

show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| wordpress          |
+--------------------+
3 rows in set (0.00 sec)

サイト情報を含む「wordpress」データベースと、すべてのユーザー情報などを転送する「mysql」データベースを転送したいと思います。 「information_schema」は単なるデータ構造情報であり、それを保持する必要はありません。

次のステップで転送するデータベースを把握します。 MySqlを終了します。

exit

「mysqldump」を使用してデータベース情報をダンプしてから、「bzip2」を使用して圧縮します。 データベースをクリーンにインポートするために、いくつかのパラメーターを使用します。 redをデータベース名に置き換えます。

mysqldump -u root -p -QqeR --add-drop-table --databases mysql wordpress | bzip2 -v9 - > siteData.sql.bz2

繰り返しますが、続行するにはデータベース管理者のパスワードを入力してください。

これで、新しいクラウドサーバーに転送できるzip形式のデータベースファイルができました。 再びrsyncを使用します。 DigitalOceanサーバーのIPアドレスを反映するようにIPアドレスを変更します。

rsync -avP siteData.sql.bz2 111.222.333.444:/root

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

データベースファイルは圧縮され、新しいDigitalOceanクラウドサーバーに転送されます。 WordPressが利用できるように、新しいサーバーのMySQLにインポートする必要があります。

次の手順では、rootとしてDigitalOceanクラウドサーバーにログインします。

データベースファイルがrootユーザーのホームディレクトリに転送されたので、今すぐそのディレクトリに移動します。 「bunzip2」を使用してファイルを解凍します。

cd /root
bunzip2 siteData.sql.bz2

これで、ファイルを新しいMySQLデータベースにインポートできます。

mysql -u root -p < siteData.sql

MySQLが正しくインポートされたことを確認しましょう。

mysql -u root -p
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)

ご覧のとおり、「wordpress」データベースが存在します。 以前の「mysql」データベースは、古いVPSのものに置き換えられました。

MySQLを終了します。

exit

次に、データベースとサーバーを再起動します。

service mysql restart
service apache2 restart

ここで、DigitalOcean VPSIPアドレスに続いて「/wordpress」に移動すると、以前は古いVPSでホストされていたWordPressサイトが表示されます。

111.222.333.444/wordpress

WordPress Blog migrated to DigitalOcean VPS

最終的な考慮事項

ドメイン名を変更して新しいサイトの場所を指すようにする前に、セットアップを広範囲にテストすることが重要です。

古いVPSで実行されていたサービスを参照してから、それらの構成ファイルを確認することをお勧めします。 ログインして次のように入力すると、古いVPSで実行されていたサービスを確認できます。

netstat -plunt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      13791/mysqld    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      10538/sshd      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      13963/master    
tcp6       0      0 :::80                   :::*                    LISTEN      13771/apache2   
tcp6       0      0 :::22                   :::*                    LISTEN      10538/sshd      
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2287/dhclient3  

ここでは、新しいサーバーで構成するサービスを最後の列に表示できます。 あなたのリストはおそらく異なるでしょう。

各サービスには独自の構成構文と構成場所があるため、ケースバイケースでドキュメントを確認する必要があります。

例として、SSHデーモンの構成を新しいVPSに複製する場合は、rsyncを使用して構成ファイルを新しいVPSのホームディレクトリに転送できます。

rsync -avP /etc/ssh/sshd_config 111.222.333.444:/root

ファイルを転送した後、デフォルトのファイルを古いVPSのファイルに単純に置き換える必要はありません。

プログラムのバージョンが異なると、構文が変更される可能性があります。 古いVPSに固有の設定オプションからも問題が発生する可能性があります。 ホスト名、IPアドレス、またはファイルパスを参照するオプションは、新しい設定を反映するように変更する必要があります。

必要に応じて新しいクラウドサーバー’のネイティブ構成ファイルを調整できるように、ファイルのdiffを作成する方が安全です。

2つのファイルの違いを示すことができるさまざまなプログラムがいくつかあります。 1つは単純にdiffです。

diff /root/sshd_conf /etc/ssh/sshd_config

これにより、2つのファイル間のすべての違いのリストが作成されます。 違いを調べて、それらを考慮に入れることができます。 古い設定から組み込みたい構成オプションもあれば、変更または破棄したい構成オプションもあります。

ジャスティン・エリングウッド