既存のWordPressを移設する方法

投稿者: | 2020年3月9日

今回はWordpressを移設したため、その手順について紹介します。元々設置されていた環境は、Ubuntu 16.04 Serverでした。それをUbuntu 18.04 Serverとほぼ環境が変わらないので、30分ほどで作業は終わりました。また、今回は、サーバにnginxを利用しました。

移設の手順は、次の通りです。

  1. 新しいマシンにWordpressをインストールする
  2. 古いマシンから必要なファイルをダウンロードする
  3. 新しいマシンに必要なファイルを展開する
  4. DNSの設定を変更する
  5. 証明書を取得する
  6. 自動で証明書が更新されるようcronを設定する( certbotで証明書を生成する場合のみ必要 )

全ての作業が完了するまでに30分から1時間程度の時間を要しました。

 

1.新しいマシンにWordpressをインストールする

今回は、次のようにインストールしました。

既存のライブラリを最新のものにアップデート

 

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

 

インストールしたデータベースにwordpressでアクセスするユーザを作成し、そのユーザがアクセスできるデータベースを作成

ここで、rootアカウントでmysqlにアクセスするためには、sudoでmysqlコマンドを実行する必要があります。

 

サーバ ( nginx )をインストール

 

PHP7.2と必要なコンポーネントをインストール

 

次にPHPの設定ファイル( /etc/php/7.2/fpm/php.ini )を変更します。インストール時の初期状態から、変更が必要な項目は次の通りです。それ以外はそのままにしておきます。

 

2.古いマシンから必要なファイルをダウンロードする

古いマシンから移動が必要なファイルは、mysqlに格納されているデータとwordpressのフォルダ一式です。ここでの手順は全て、古いマシンで実行します。

次のコマンドを実行して、mysqlから必要なデータを取り出します(ダンプ)

 

ここで、ユーザ名( user )、データベース名( wordpress )は先ほど作成した情報ではなく、古いマシンで設定した情報を使います。

 

次のコマンドを実行して、wordpressのファイル一式を圧縮ファイルにします。( /var/www/wordpress というフォルダにインストールされていると想定します )

 

作成した2つのファイルをscpなどを用いて、新しいマシンに移動します。

 

3.新しいマシンに必要なファイルを展開する

ここでの作業は、全て新しいマシン上で実施します。また、古いファイルから取り出したファイルは、ホーム( ~/ )に移動したと想定しています。

まず、mysqlへのデータの挿入は次のコマンドで実行します。

 

次に、wordpressのファイルを展開します。新たな展開先として、/var/wwwの下にwordpressというフォルダを作成して、その下に設置すると想定します。

 

単純に展開しただけだと、rootが所有者となってしまい、アクセス権限でファイルをアップロードできないといった問題が発生する可能性があるため、nginxの実行ユーザ( www-data )が所有者になるように変更しておきます。

 

4.DNSの設定を変更する

DNSサーバで設定しているwordpressを設置したマシンのIPアドレスを古いマシンのIPアドレスから、新しいマシンのIPアドレスに変更します。ここは、利用しているDNSサービスによって、操作手順が異なるため、手順の説明は省略します。

 

5.証明書を取得する

古いマシンから必要な証明書ファイルを移動させても良いです。しかし、ここでは、certbotを利用して、無料で必要な証明書を取得するようにします。

 

ここで、nginxが稼働していると、外部からURLを検証するための仮サーバを稼働させられなくなるため、サービスを確実に停止させておきます。

次に、生成した証明書を読み込んで、HTTPSでアクセスできるようにするため、nginxの設定ファイル( /etc/nginx/site-available/default )を次のように変更します。

 

設定が完了したら、次のコマンドを実行して、設定ファイルが正しく設定されていることを確認します。

 

ここで、test failedと表示される場合、証明書のパスが間違っている、php-fpmのバージョンが7.2ではない、rootフォルダのパスが違うといったことが原因になりうると考えられます。

以上の作業で、ブラウザでアクセスして問題なく動作することが確認できると思います。

 

6.自動で証明書が更新されるようcronを設定する

ここでの作業は、certbotで作成した証明書を使っている場合のみ必要な作業です。certbotで作成した場合、証明書の有効期間は90日です。そのため、90日ごとに証明書を更新する必要があるのですが、忘れてしまうことが多く、そういった場合にこの設定をしておけば、証明書の有効期限を気にすることなく、サーバを運用することができます。

まず、5ではnginxを停止した状態で証明書を生成しました。しかし、証明書を更新する度に、運用しているnginxを停止することは難しいと思います。そこで、nginxを稼働したまま、証明書が更新する次のコマンドを実行して、証明書を生成しなおします。

 

この時、次のように既存の証明書を利用するか、生成し直すかと聞かれるので、2を選択して、新たに生成し直すよう選択します。

 

これで、certbot renewでnginxを停止する必要なく、証明書を更新することが可能になります。次にcronの設定を、/etc/cron.d/certbotファイルに次の1行を追記します。

 

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください