Webサイト構築: Dockerを利用したWordPress導入

様々なシーンでWeb上に情報を発信、共有したい場合がある。その手段となるWebサイトの構築手順を記載する。
本ナレッジでは、最初に必要となる手順として、Webサイトを簡易に構築可能とするコンテンツ管理システム (CMS) であるWordPressの導入方法を記載する。
本手順は開発およびその後の運用を容易にするため、Dockerも合わせて利用した手順となる。

 

Sponsored Links
You have been blocked from seeing ads.

本手順の前提となるサーバ環境

本手順を実施するためのサーバ環境を以下に示す。

  • サーバ環境は、AWSやGCPのようなクラウド上のIaaSや、レンタルサーバを利用すると、Webサイトをそのまま公開することが可能である。ただし、自身のPCへ導入することも可能なため、まずはテストとして自身のPCに導入しても良い。
    • 後述するが、本手順はDocker を利用した導入手順のため、PCにテストとして導入し、Webサイト構築後クラウド上のサーバへ移行することも容易である。
  • OSはUbuntuやCentOS等のLinuxを利用する。

 

DockerおよびDocker Composeインストール

WordPressを導入するにあたり、物理サーバやPCにそのままインストールし、導入することも可能である。しかし、構築にはDBの導入等も必要であり、さらに運用においてもバージョンアップが必要であったり、サーバやPC環境を替えたい場合新規に環境構築が必要となり、容易ではない。
そのため、本ナレッジでは、DockerおよびDocker Composeを利用して、サーバ環境を仮想化し、その中にWordPressを導入する。本対応により構築も運用も容易となる。特に仮想化したサーバ環境をそのまま別PC、サーバにも移行可能となるため、自身のPCでテストした後、クラウド上のサーバへ移行するといった対応が容易である。

 

WordPress用仮想サーバのためのDocker設定

  • WordPress用仮想サーバのためのDockerComposeファイルを設置するディレクトリを作成。
    • 以下のディレクトリは例である。任意のディレクトリで問題ない。
$ mkdir -p ~/web/top/docker_compose/
$ cd ~/web/top/docker_compose/

 

  • WordPress用仮想サーバのためのDockerComposeファイルを作成する。
    • 下記例ではエディタとしてviを記載しているが、emacs等何を利用しても問題ない。
$ vi docker-compose.yml

 

  • 下記内容をコピーし、”docker-compose.yml”ファイルに記載して保存。
  • 本設定はWordPressの仮想サーバとMySQLを利用したデータベースの仮想サーバをダウンロードし、構築するものである。
version: '3'

services:
  db:
    image: mysql:5.7
    volumes:
      - ./volumes/db_data:/var/lib/mysql
    environment:
      MYSQL_DATABASE: top_wordpress_db
      MYSQL_USER: user01
      MYSQL_PASSWORD: passWord01@
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
    restart: always

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "80:80"
    volumes:
      - ./volumes/wordpress/html:/var/www/html
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: top_wordpress_db
      WORDPRESS_DB_USER: user01
      WORDPRESS_DB_PASSWORD: passWord01@
    restart: always

上記設定の詳細について記載する。本設定は例であり、必要に応じて適宜修正。

  • データベースの仮想サーバ設定
    • MySQL 5.7を利用。
    • 物理PCやサーバ上の ”./volumes/db_data” を、仮想サーバの “/var/lib/mysql” に設定。“/var/lib/mysql” 配下にはデータベースの実体ファイルがあるため、ファイルを順次更新する必要がある。Dockerを利用した仮想サーバはポリシーにもよるが、基本的に変更を加えるファイルの実体は仮想サーバ内に持たない方が良い。そのため、本設定により物理PCやサーバ側のディレクトリと連携させて、そちらにファイルを保存する。
    • DB名は ”top_wordpress_db” 。
    • DB内のユーザ名は “user01” 。
    • 上記ユーザのパスワードは “passWord01@” 。
    • DB内のrootユーザの初期パスワードを (pwgenにて) ランダムで生成。
    • 障害等で停止したら、自動で再起動。
  • WordPressの仮想サーバ設定
    • WordPressの仮想サーバはデータベースの仮想サーバの後に構築。
    • WordPressは最新バージョンを利用。
    • 仮想サーバの80番ポートを、物理PCやサーバ上の80番ポートに繋げて公開。
    • 物理PCやサーバ上の ”./volumes/wordpress/html” を、仮想サーバの “/var/www/html” に設定。“/var/www/html” 配下にはWordPress関連の実体ファイルがあるため、ファイルを順次更新する必要がある。Dockerを利用した仮想サーバはポリシーにもよるが、基本的に変更を加えるファイルの実体は仮想サーバ内に持たない方が良い。そのため、本設定により物理PCやサーバ側のディレクトリと連携させて、そちらにファイルを保存する。
    • WordPressにて利用するデータベースを上記のデータベースとして、3306番ポートにて接続。
    • WordPressにて利用するデータベースを上記のデータベースとして、DB名 ”top_wordpress_db” に接続。
    • WordPressにて利用するデータベースを上記のデータベースとして、ユーザ名 “user01” にてDBへログイン。
    • 上記ユーザのパスワードは “passWord01@” を利用。
    • 障害等で停止したら、自動で再起動。

 

前述の設定内にある、仮想サーバ側のディレクトリと連携する物理PCやサーバ上のディレクトリを作成する。

  • データベース用仮想サーバの “/var/lib/mysql” とする、物理PCやサーバ上の ”./volumes/db_data” を作成。
  • WordPress用仮想サーバの “/var/www/html” とする、物理PCやサーバ上の ”./volumes/wordpress/html” を作成。
$ mkdir -p ./volumes/db_data
$ mkdir -p ./volumes/wordpress/html

 

WordPress用仮想サーバ起動 & Webサイト表示確認

  • 作成したファイルを基にDocker Compose利用して、WordPress用仮想サーバをダウンロード、インストールし、起動。
$ docker-compose up -d

 

  • Webブラウザで下記にアクセス。
http://localhost/
 (または、http://127.0.0.1/) 

 

  • WordPress の画面が表示されれば完了。言語の選択画面が表示される。
  • その後は、WordPress画面に従って初期設定を実施する。本設定の手順は別ナレッジにて記載する。
Sponsored Links
You have been blocked from seeing ads.