ローカル環境でのWordPressの環境構築の方法はたくさんありますが、今回は、Dockerを利用した環境構築の方法を紹介したいと思います。
このサイトの作成経験をもとにして書いていきます。このサイトのwordpress themeは、howtostudyという名前にしています。
目的は、独自のwordpressのテーマを作るです。
WordPressの環境構築は、このサイトにあるように、Docker composeを利用して構築するのが多いように見受けられます。本サイトでも、この方法を用いて行います。
ただし、すべての方法が実行できるとは限りません。
Source Code
このサイトの全ソースは、以下のGitHubに挙げています。
https://github.com/GodRyosuke/NewRyostudy2
Pre-requests
あらかじめ、このサイトから、Dockerをインストールしておいてください。
- Docker
- Visual Studio Code
Let’s Code
docker-compose.yaml
今回使用するimageは次の3つです。
- wordpress
- mysql
- phpmyadmin
私はSQLコマンドに慣れていないので(汗、phpmyadminがないとデータベース操作できないのです…
これらを次に示すdocker-compose.yamlに記入していきます。各イメージに追加してインストールするものがないので、今回はDockerfileは作りません。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ../db:/var/lib/mysql
restart: always
# expose:
# - "3306"
ports:
- 3306:3306
environment:
- "MYSQL_ROOT_PASSWORD=password"
- "MYSQL_DATABASE=wordpress"
- "MYSQL_USER=wordpress"
- "MYSQL_PASSWORD=wordpress"
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
volumes:
- ../howtostudy:/var/www/html/wp-content/themes/howtostudy
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db #mysqlサービス名を指定
- PMA_USER=wordpress
- PMA_PASSWORD=wordpress
links:
- db
ports:
- 4040:80
volumes:
- ../phpmyadmin/sessions:/sessions
volumes:
db_data:
途中でMYSQL_USERなどが登場しますが、これらは必ずwordpressにしておいてください。テキトーなもので試したりしましたが、私の環境ではうまくdatabaseのconnectionが確立されませんでした。
フォルダの構成は以下のようになっています。
├─.docker
├─db
├─howtostudy
│ └─assets
│ ├─css
│ ├─img
│ └─js
└─phpmyadmin
└─sessions
解説
今回は、wordpress, database, phpmyadminの3つのコンテナを動かすので、3つのサービスをそれぞれ定義しています。
databaseの情報などは、ローカルのdbフォルダにvolume mountして、保存しています。
wordpressのテーマを独自に作成することを目的としているので、wordpressを実行するための種々のphpファイルは不要です。そこで、wordpress serviceのvolume mountには、wp-content/themesフォルダ内に直接マウントしています。
databaseは3306ポートに設定されているので、wordpressと通信できるように、wordpress側にWORDPRESS_DB_HOST環境変数を設定しています。
まとめ
本記事では、Dockerを用いたwordpressのlocalでの環境構築を行う方法を解説しました。
巷に出回っているwordpressの環境構築の方法では、データベースとwordpressの2つのみのコンテナとなっている場合が多いので、今回はこれにphpmyadminを追加したものを作成しました。
docker composeを活用して、複数のコンテナを一度に立ち上げて環境を作っています。その際、各コンテナ間の設定において、重要な項目がありました。
Localなどの、インストール一つでwordpressの実行環境を整えられるものもあります。本当に初心者な方はこちらのほうがおすすめかもしれません。