LoginSignup
0
0

More than 1 year has passed since last update.

DockerでWordPressなうに使っていいよ。

Last updated at Posted at 2021-04-18

DockerのWordPressイメージを公開します。

もし有用なら、GitHub や Docker hub で星を付けて頂けると励みになります。
※現在CentOSベースで作成していますが、Rocky Linuxに移行する予定です。

https://github.com/takeyamajp/docker-wordpress
このDockerイメージを使って、いつでも完成度の高いWordPress環境を気軽に作り出す事ができます。

サイト構築やプラグインのテスト環境として最適です。
また、個人レベルの小規模サイトであれば実運用にも耐えられます。

関連するDockerイメージとして、データベース用のMySQL, MariaDB, phpMyAdminなどのイメージも公開しています。
https://github.com/takeyamajp/docker-mysql
https://github.com/takeyamajp/docker-mariadb
https://github.com/takeyamajp/docker-phpmyadmin

また、WordPressで使用する送信専用メールサーバーには以下のDockerイメージがお勧めです。
https://github.com/takeyamajp/docker-postfix
https://qiita.com/takeyamajp/items/be4ccc61862de3b121bf

概要

このDockerイメージには、以下のような特徴があります。

・タイムゾーンを設定する事ができる。
・httpをhttpsに自動リダイレクトさせる事ができる。
・GZIP圧縮をサポートしている。
・BASIC認証をサポートしている。
・WordPressの基本設定を、このDockerイメージの変数から行う事ができる。
・php-fpmで動作する。

FROM centos:centos8
...

ENV TIMEZONE Asia/Tokyo

ENV FORCE_SSL true  
ENV GZIP_COMPRESSION true

ENV BASIC_AUTH false  
ENV BASIC_AUTH_USER user  
ENV BASIC_AUTH_PASSWORD password

ENV HTTPD_SERVER_ADMIN root@localhost  
ENV HTTPD_LOG true  
ENV HTTPD_LOG_LEVEL warn  
ENV HTTPD_PHP_ERROR_LOG true

ENV WORDPRESS_DB_HOST mysql  
ENV WORDPRESS_DB_NAME db  
ENV WORDPRESS_DB_USER user  
ENV WORDPRESS_DB_PASSWORD password  
ENV WORDPRESS_TABLE_PREFIX wp_  
ENV WORDPRESS_DEBUG false  
ENV WORDPRESS_CONFIG_EXTRA param1,param2  
ENV WORDPRESS_CONFIG_EXTRA_VALUE \'string\',true

VOLUME /wordpress

EXPOSE 80  
EXPOSE 443

実行方法

最もシンプルな実行方法を紹介します。

以下のymlファイルを作成してDocker-Composeで実行してください。
takeyamajp/mysqlの部分は、takeyamajp/mariadbに置き換えることができます。)

その後、任意のブラウザーからhttp://localhost:8080/、もしくはhttp://サーバーのIPアドレス:8080/にアクセスしてください。
(MySQLやMariaDBの初期化処理に数十秒~数分間待つ必要があります。)

docker-compose.yml
version: '3.1'  
services:  
  wordpress:  
    image: takeyamajp/wordpress  
    ports:  
      - "8080:80"  
    environment:  
      FORCE_SSL: "false"  
  mysql:  
    image: takeyamajp/mysql  

各種設定

タイムゾーン(TIMEZONE)

サイトで扱われる日時のタイムゾーン設定です。
Linuxで設定可能なタイムゾーンをそのまま設定する事ができます。
日本国内で使用する場合は、設定を変更する必要はありません。

SSL通信の強制(FORCE_SSL)

httpでアクセスした場合に、自動的にhttpsにリダイレクトする設定です。
簡易のテスト環境を用意する場合など、このDockerイメージを単体で動作させるときは、上記のdocker-compose.ymlファイルのようにfalseに設定してください。

リバースプロキシのバックエンドとして動作させる場合はtrueに設定してください。
(リバースプロキシとhttps通信するためにイメージ内に自己署名のSSL証明書を自動作成します。)

GZIP圧縮(GZIP_COMPRESSION)

サイトの表示速度を向上させるために、GZIP圧縮を有効にする設定です。
通常は設定を変更する必要はありません。

BASIC認証(BASIC_AUTH)

一部の人だけがサイトにアクセスできるようにBASIC認証をかける事ができます。
前述のFORCE_SSLtrueになっている場合は、先にhttpsにリダイレクトされた後にBASIC認証が要求されるため、ネット上で認証情報を平文でやりとりする事はありません。

サーバーの管理者情報(HTTPD_SERVER_ADMIN)

サーバー上でエラーが発生した場合に、エラーページに表示する問い合わせ先情報です。
本番運用する場合は、連絡先のメールアドレスを設定してください。
https://httpd.apache.org/docs/2.4/ja/mod/core.html#serveradmin

サーバーのログ出力

このDockerイメージで出力されるログは、すべてDocker logsに出力します。
次のコマンドdocker logs -f wordpressを実行すると、出力されるログをリアルタイムで確認する事ができます。

HTTPD_LOG
WEBサーバーのログ出力をするかどうかの設定です。
通常は変更する必要はありません。
出力内容を増減させたい場合は、後述するHTTPD_LOG_LEVELを変更してください。

HTTPD_LOG_LEVEL
WEBサーバーのログ出力レベルを8段階で設定します。
通常は変更する必要はありません。
https://httpd.apache.org/docs/2.4/ja/mod/core.html#loglevel

HTTPD_PHP_ERROR_LOG
PHPプログラムでエラーが発生した場合にログ出力するかどうかの設定です。
WordPress、プラグインなどでエラーが発生した場合にログが出力されます。
通常は変更する必要はありません。

WordPressのデータベース設定

ここで事前にデータベース設定をしておけば、初回起動時にデータベースの接続情報を手入力する必要はありません。

WORDPRESS_DB_HOST
データベースのホスト名(Dockerのコンテナ名)を設定します。

WORDPRESS_DB_NAME
データベース名を設定します。
データベースのコンテナと設定を合わせる必要があります。

WORDPRESS_DB_USER
データベースのユーザー名を設定します。
データベースのコンテナと設定を合わせる必要があります。

WORDPRESS_DB_PASSWORD
データベースユーザーのパスワードを設定します。
データベースのコンテナと設定を合わせる必要があります。

WORDPRESS_TABLE_PREFIX
データベースのテーブル名で使用される接頭辞です。
通常は設定を変更する必要はありません。
1つのデータベースに2つ以上のWordPressデータを保存するときに、WordPressのコンテナ毎に設定を変えてください。

WordPressの追加設定

wp-config.phpに自動追加される設定です。
多くの場合、手動でWordPressの設定ファイルを編集する必要は無いでしょう。

例えば、サンプルとして用意されているデフォルト設定では、wp-config.phpの先頭に以下の行が自動追加されます。

// BEGIN CONFIG EXTRA
define('param1', 'string');
define('param2', true);
// END CONFIG EXTRA

WORDPRESS_CONFIG_EXTRA
カンマ区切りでパラメータ名を設定します。

WORDPRESS_CONFIG_EXTRA_VALUE
カンマ区切りでパラメータの値を設定します。
文字列を設定する場合は、カンマ文字をエスケープしてください。

WordPressのデータを永続化する。

必要に応じて、任意のディレクトリをボリューム/wordpressにマウントしてください。

新規の環境を構築する場合は、空ディレクトリをマウントしてください。
既存のWordPressディレクトリをマウントする事で、他の環境からファイルデータを引き継ぐ事ができます。

WordPressのデバッグ設定

WORDPRESS_DEBUG
WordPress自体のデバッグを行う場合にtrueに設定してください。
通常は使用しません。


以上です。
それでは良いWordPressライフを。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0