DockerでKUSANAGIを使ってWordPress環境を構築する方法

Dockerを使ってKUSANAGI環境を構築して爆速Wordpress環境を作る方法の紹介です。

ローカル環境用ファイル

下記の2つを準備します。

version: '2'

services:
  kusanagi-data:
    image: busybox
    restart: always
    stdin_open: true
    tty: true
    volumes:
      - /var/lib/mysql
      - ./vol/etc-nginx:/etc/nginx/conf.d
      - ./vol/etc-httpd:/etc/httpd/conf.d
      - ./vol/etc-kusanagi:/etc/kusanagi.d
      - ./data:/home/kusanagi
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    command: /bin/sh

  kusanagi-nginx:
    image: primestrategy/kusanagi-nginx:1.10.0-1
    container_name: xxx.com
    environment:
      VIRTUAL_HOST: xxx.com
      LETSENCRYPT_HOST: xxx.com
      LETSENCRYPT_EMAIL: mail@xxx.com
      LETSENCRYPT_TEST: "false"
      PROFILE: xxx.com
      FQDN: xxx.com
      WPLANG: ja
      BCACHE: "on"
      FCACHE: "on"
    volumes_from:
      - kusanagi-data
    links:
      - kusanagi-php7:php
      - kusanagi-mariadb:mysql
    ports:
      - "443"
      - "80"
    restart: always
    networks:
      - common_link

  kusanagi-mariadb:
    image: mariadb:10.1.21
    environment:
      MYSQL_ROOT_PASSWORD: MYSQLパスワード
      MYSQL_USER: MYSQLユーザ名
      MYSQL_PASSWORD: MYSQLパスワード
      MYSQL_DATABASE: MYSQLデータベース名
    volumes_from:
      - kusanagi-data
    restart: always
    networks:
      - common_link

  kusanagi-php7:
    image: primestrategy/kusanagi-php7:7.0.6-1
    links:
      - kusanagi-mariadb:mysql
    volumes_from:
      - kusanagi-data
    restart: always
    networks:
      - common_link

networks:
  common_link:
    external: true

前提として、nginxのリバースプロキシを接続した共通ネットワーク「common_link」が必要です。Wordpressを作る際にMYSQL関係のデータベース名、ユーザ名、パスワードを覚えておく必要があります。初期設定時に入力する必要あり。

xxx.comに使いたいドメインを入力してあげます。ちなみにhostsで該当のドメインの登録すると、ローカル環境でも独自ドメインでアクセスできます。

sudo vi /etc/hosts

ここで開いたhostsに↓を記入。

127.0.0.1 xxx.com

記入が終わったらESC→「:qa」で保存して閉じればOKです。

file_uploads = On
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

同じフォルダにuploads.iniも用意した上で「docker-compose up」で起動します。

…初回起動時は結構時間がかかります。

WordPress初期設定

コンテナが立ち上がったら、記入したドメインにアクセスするとWordpressの初期設定画面になります。

上記のdocker-compose.ymlで入力したDB名やユーザー、パスワードを入力ください。

ちなみにDBのアドレスは「localhost」ではなく、「mysql」になります。

テーマをアップロード可能にする

KUSANAGI Run on Dockerではテーマを入れようと思ってもFTPが使えません。コンテナに入ってwp-config.phpに一文追加が必要です。

docker exec -it kusanagi-data /bin/sh
 
vi /home/kusanagi/(ドメイン名)/DocumentRoot/wp-config.php
※実際のアドレスはexecでコンテナに入ってcd+lsでwp-config.phpがあるところを探す
//ここの行を追加
define('FS_METHOD', 'direct');
viはi→上記を入力→ESC→:wq
コンテナから抜ける際は、Ctrl+P→Ctrl+Qでコンテナを起動したまま抜けられます。

次に永続化させたdataに権限を追加します。docker-compose実行しているフォルダで下記を実行。

sudo chmod -R o+w data

動作確認

ブラウザを開いて「xxx.com」を開けばwordpressの設定画面が開くはずです。