Skip to content

WordPress (PHP-FPM)

概要

WordPress は、PHP-FPM (FastCGI Process Manager) 上で動作させています。 Nginx などの Web サーバーをコンテナ内に含まず、PHP の実行環境のみを提供し、前段の Nginx コンテナからのリクエスト (fastcgi_pass) を処理します。

構成

Dockerfile 解析 (srcs/requirements/wordpress/Dockerfile)

dockerfile
FROM debian:bullseye

# 必要パッケージ: PHP-FPM, MySQL拡張, Redis拡張, WP-CLI
RUN apt-get install -y php7.4-fpm php7.4-mysql php7.4-redis mariadb-client wget ...

# PHP-FPM 設定 (www.conf) の配置
COPY conf/www.conf /etc/php/7.4/fpm/pool.d/www.conf

# WP-CLI のインストール
RUN wget .../wp-cli.phar ...

# セットアップスクリプト
ENTRYPOINT ["/usr/local/bin/setup.sh"]
CMD ["/usr/sbin/php-fpm7.4", "-F"]
  • Port: 9000 (FastCGI)
  • WP-CLI: コマンドラインから WordPress を管理するためのツールをインストールしています。

www.conf 設定

PHP-FPM が TCP ポート 9000 でリッスンするように設定を変更しています。

ini
[www]
listen = 9000
listen.owner = www-data
listen.group = www-data

自動セットアップ (Setup.sh)

コンテナ起動時に実行されるスクリプトで、以下の処理を自動化しています。

  1. WP Core インストール: wp core download, wp core install
  2. ユーザー作成: 管理者ユーザーと一般ユーザーの作成。
  3. Config 設定: wp-config.php の生成(DB接続情報)。
  4. Redis 連携: Bonus 要件のための Redis 設定とプラグイン有効化。
bash
# 例: ユーザー作成
wp user create $WP_USER $WP_EMAIL --role=author --user_pass=$WP_PASSWORD --allow-root

このアプローチにより、環境変数 (.env) を変更するだけで、再構築時に自動的に WordPress 環境がプロビジョニングされます。

参考資料

Released under the MIT License.