個人的な備忘録
Wordpressマルチサイト
1つのWordPressで複数のサイトを運用可能にすることで、共通のテンプレートやプラグインが利用できる機能
対応していないプラグインもあるが、全体で共通で利用するだけでなく、サイトごとに個別で有効化することもできる
機能として以下の3種類がある
サブディレクトリ型 マルチサイト
- kamihork.com/site1
- kamihork.com/site2
サブドメイン型 マルチサイト
- site1.kamihork.com
- site2.kamihork.com
複数ドメイン型 マルチサイト
- site1-kamihork.com
- site2-kmaihork.com
Wordpressマルチサイトでの、サブドメイン形式での構築手順
サブドメイン形式を選択する場合、予約済みドメイン(localhost)だとそれを実現できない
なので、これを実現するのに、lvh.meというループバックドメインを利用する
※ 参考 : https://techracho.bpsinc.jp/ebi/2020_04_23/91311
lvh.me
2020/5/14時点での、有効期限は1年間ぐらいある
$ whois lvh.me | grep Expiry
Registry Expiry Date: 2021-06-02T00:35:34Z
手順
Dockerを確認
$ docker -v
Docker version 18.09.2, build 6247962
$ docker-compose -v
docker-compose version 1.23.2, build 1110ad01
docker-compose.ymlを作成
version: '1.0'
services:
db:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
ports:
- 3306:3306
networks:
- wpnet
environment:
- MYSQL_DATABASE=kamihork-db
- MYSQL_USER=kamihork
- MYSQL_PASSWORD=pass
- MYSQL_ROOT_PASSWORD=root
app:
build:
context: ./app
dockerfile: Dockerfile
volumes:
- ./html:/var/www/html
- ./wp-install.sh:/tmp/wp-install.sh
ports:
- 80:80
depends_on:
- db
networks:
- wpnet
cli:
image: wordpress:cli-2.3.0-php7.1
volumes_from:
- app:rw
networks:
- wpnet
networks:
wpnet:
Dockerファイルを作成
FROM php:7.1-apache
RUN \
{ apt-get update; \
apt-get install -y zlib1g-dev libzip-dev; \
docker-php-ext-install zip; \
docker-php-ext-install mysqli; \
docker-php-ext-configure zip; \
docker-php-ext-configure mysqli ; \
}
wordpress cliを利用してもろもろ初期設定をするshellを作成
プラグインのインストールは、wp plugin install で可能
マルチサイトのインストールは、 wp core multisite-install で可能
#!/bin/bash
set -ex;
INSTALLDIR=/var/www/html
wp core download \
--locale=ja --version=5.2.2 --path=${INSTALLDIR}
wp config create \
--dbname=kamihork-db --dbuser=kamihork --dbpass=pass --dbhost=db:3306 \
--force --path=${INSTALLDIR}
wp core multisite-install \
--url=www.lvh.me --subdomains --title='kamihorkのマルチサイト' \
--admin_user=kamihork --admin_password=pass --admin_email=hoge@fuga.com --allow-root
wp site create \
--slug=sub --title='kamihorkのマルチサイト @サブ' --allow-root
コンテナを起動
$ docker-compose up -d --build
用意したシェルを実行
# ログイン
$ docker-compose run --rm cli bash
# 権限変える
$ chmod +x /tmp/wp-install.sh
# 実行
$ /tmp/wp-install.sh
コンテナを削除終了
$ docker-compose down --volumes
プロセス確認
$ docker ps
image確認
$ docker images
サイトの確認
本体サイト
http://lvh.me/
http://lvh.me/wp-admin/index.php
サブドメインサイト
http://sub.lvh.me/
http://sub.lvh.me/wp-admin/index.php
参考記事など
Docker選定に関する記事
Dockerとは
迷える子羊に捧げるコンテナ環境徹底比較
Docker導入するべき?するべきではない?
マルチサイトについて
WordPressマルチサイトとは?メリットデメリット丸わかり
複数のWordPressでサブドメインを運用する5つのポイント
WordPressマルチサイト対応プラグインの作り方
ループバックドメインの有効期限
AWS+Wordpressに関する記事
Dockerの利用
Dockerを利用したWordPressの開発環境をwp-cliを使ってさくっと構築する
Docker Composeを使ってWordPressが動作するローカル環境を作る
lvh.meドメインを使って、サブドメイン形式のWordPressマルチサイトのDocker開発環境構築
docker-compose コマンドまとめ
docker-compose.ymlの書き方について解説してみた
Dockerfileとは
AWS EC2 の利用
WordPress を Amazon EC2 インスタンスにデプロイする
WordPress ウェブサイトを構築する
小中規模向け低コストで可用性/拡張性の高いWordPress アーキテクチャ
AWS の WordPress High Availability by Bitnami
AWS再入門2018 WordPress on AWS編
[和訳]WordPress ベストプラクティス on AWS
AWS ECS の利用
Amazon ECSの主な機能と使い方
WordPressをAWSのDockerで公開
Docker環境をAWS ECSでデプロイするまで
AWS ECSでDockerコンテナ管理入門
CodePipelineからECSにBlue/Greenデプロイする