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)
コンテナ起動時に実行されるスクリプトで、以下の処理を自動化しています。
- WP Core インストール:
wp core download,wp core install - ユーザー作成: 管理者ユーザーと一般ユーザーの作成。
- Config 設定:
wp-config.phpの生成(DB接続情報)。 - Redis 連携: Bonus 要件のための Redis 設定とプラグイン有効化。
bash
# 例: ユーザー作成
wp user create $WP_USER $WP_EMAIL --role=author --user_pass=$WP_PASSWORD --allow-rootこのアプローチにより、環境変数 (.env) を変更するだけで、再構築時に自動的に WordPress 環境がプロビジョニングされます。