WordPressを利用したWebサイトの環境移行 (GitとDocker活用)

Webサイトを構築後、その環境を異なる環境に移行したいケースがある。
例えば、ローカルのPC等でテストとして環境を構築し、その後クラウド上のサーバに移行してWebに公開するケース。また、レンタルサーバにて構築した環境を、異なる安価なクラウド上のサーバに移行したいケースなどである。
そこで、本ナレッジではDockerとWordPressを利用したWebサイト環境を、Gitを利用して移行する手順を記載する。
移行対象環境は下記ナレッジのような環境となる。

本手順はWebサイト環境を移行対象として記載しているが、DockerおよびDocker Composeを利用した環境であれば、同手順にて環境の移行は可能である。

 

Sponsored Links

移行元環境から環境取得

移行元環境から、WordPressを利用したwebサイト環境を取得する。
本手順はGitを利用した手順を記載するが、対象ディレクトリやファイルが移行出来れば、Gitを使わずzip等に圧縮してファイルを移行しても問題ない。

下記手順は移行元サーバ側での手順となる。

  • WordPress環境のデータベースの静止断面を取得するのため、docker_composeにて環境を停止する。
  • docker_composeコマンドは docker-compose.yml ファイルが存在するところで実施する。
$ cd ~/web/top/docker_compose/

$ docker-compose stop

Stopping docker_compose_wordpress_1 ... done
Stopping docker_compose_db_1        ... done

 

  • 環境が停止したことを確認する。
$ docker-compose ps
           Name                         Command                State     Ports
------------------------------------------------------------------------------
docker_compose_db_1          docker-entrypoint.sh mysqld      Exit 0  
docker_compose_wordpress_1   docker-entrypoint.sh apach ...   Exit 137 

 

  • Docker および Docker Composeを利用している環境においては、基本的にdocker-compose.yml とその中で利用してるvolumesのディレクトリが、環境の全てとなる。そのため、そのディレクトリとファイルを確保する。
    • WordPress本体はその設計図となるdocker-compose.ymlさえ確保しておけば、それを基に移行先環境で同一環境が構築可能である。
    • WordPressのテーマ等の更新されたファイルは、WordPress用仮想サーバの “/var/www/html” に格納されている。そのため、その領域をvolumesにてマウントしているディレクトリである “./volumes/wordpress/html” も確保する必要がある。
    • WordPressの記事等の更新されたファイルは、データベース用仮想サーバの “/var/lib/mysql” に格納されている。そのため、その領域をvolumesにてマウントしているディレクトリである “./volumes/db_data” も確保する必要がある。
$ ls ~/web/top/docker_compose/
docker-compose.yml           volumes

$ ls ~/web/top/docker_compose/volumes/
db_data  wordpress

 

$ sudo cp -rfp ~/web/top/docker_compose/* ~/git_repo/pj01_repo01/
$ cd ~/git_repo/pj01_repo01/
$ sudo git add *
$ sudo git commit -m "for migration"
$ git push -u origin master

 

  • 移行元のwebサイトは、必要に応じて起動する。
$ cd ~/web/top/docker_compose/

$ docker-compose start

 

移行先環境へ環境設置

移行先環境に、先ほど取得したDocker環境を設置する。
 
下記手順は移行先サーバ側での手順となる。

 

$ mkdir ~/git_repo
$ cd ~/git_repo
$ git clone ssh://[User]@[FQDN]:[port][リポジトリの絶対パス]

 

  • もし、既に過去にgit clone実施済みでありローカルリポジトリを更新するのみの場合は、以下コマンドのようにワークツリー配下で pull を実施。
$ cd ~/git_repo/pj01_repo01
$ git checkout master
$ git pull origin master

 

  • ダウンロードしたディレクトリ、ファイルを移行元と同じディレクトリに配置。
$ mkdir -p ~/web/top/docker_compose
$ cd ~/web/top/docker_compose/
$ sudo cp -prf ~/git_repo/pj01_repo01/* ~/web/top/docker_compose/

 

移行先環境にてwebサイト環境を起動

 

  • 移行したファイルの中のWordPress実体ファイルについて、WordPress管理とするためオーナを “www-data” に変更する。
$ cd ~/git_repo/pj01_repo01
$ ls
docker-compose.yml           volumes

$ sudo chown -R www-data:www-data volumes/wordpress/html
$ ls -l volumes/wordpress/
total 4
drwxrwxr-x 5 www-data www-data 4096 Dec 27 01:28 html

 

  • Docker ComposeにてWordPress環境を起動。
$ sudo docker-compose up -d

 

以上でWebサイトの起動が完了し、移行が完了となる。
”http://localhost/” や、”http://[公開IP]” など、移行先環境の公開IPに従ってアクセスしWebサイトの起動を確認する。

Sponsored Links