Month: June 2025

  • Dockerを用いたWordPress構築の手順書

    Dockerとは
    – アプリケーションをパッケージングし、「コンテナ」単位で実行するためのプラットフォーム。共通のプラットフォーム、共通のコンテナを利用することで、「自分のPCでは動いたのに、他の人のPCやサーバーでは動かない」といった環境問題を解消できる。

    • Dockerのメリット
      • 環境の分離・独立
      • 再現性
      • ポータビリティ
      • 環境構築が簡単
      • 比較的軽い
    • Dockerのインストール
      • 公式サイト
        https://www.docker.com/products/docker-desktop/
      • インストール時の設定
      • バージョン確認
        Command: docker --version docker compose version
      • 動作確認
        Comannd docker run hello-world
        以下のようなメッセージが出れば成功
        Hello from Docker! This message shows that your installation appears to be working correctly. ...
    • WordPressを構築するための手法の例
      • レンタルサーバー/ホスティングサービス
      • ローカル環境に直接インストール (XAMPP, MAMPなど)
      • Dockerを利用した構築
    • WordPressをDockerで構築するメリット
      • クリーンな環境を維持
      • テストや実験の容易さ
      • チーム開発の効率化
      • 本番環境との整合性
    • WordPressの構成
      • apatche一体型
        • メリット
        • デメリット
      • Nginx + PHP-FPM https://qiita.com/dalchan/items/20e758fe8646e7c58df8
        • メリット
        • デメリット
    • DockerでWordPressを構成する手順(Apache一体型)
      • 目的
        • Docker Compose により、WordPressイメージ(Apache版)とMySQL(データベース)の2つのコンテナを連携させる。
      • 作業用ディレクトリの作成
        • WordPressプロジェクト用のディレクトリをPC上に作成する。
          Command: mkdir wordpress cd wordpress
      • docker-compose.yml の作成
        Command: nano docker-compose.yml
      • docker-compose.ymlの記述
        • 以下の記述をdocker-compose.ymlへコピペする
    version: '3.8' # Docker Composeのファイルフォーマットのバージョン
    
    services:
      db: # データベースサービスの定義 (MySQL)
        image: mysql:5.7 # 使用するMySQLのDockerイメージとバージョン
        container_name: my_wordpress_db # コンテナ名(任意)
        volumes:
          - db_data:/var/lib/mysql # データの永続化設定
        restart: always # Docker起動時に常にコンテナを起動する
        environment:
          MYSQL_ROOT_PASSWORD: your_strong_root_password # MySQLのrootユーザーのパスワード (強固なものに変更)
          MYSQL_DATABASE: wordpress_db # WordPressが使用するデータベース名
          MYSQL_USER: wordpress_user # WordPressがデータベース接続に使用するユーザー名
          MYSQL_PASSWORD: your_strong_user_password # 上記ユーザーのパスワード (強固なものに変更)
        networks:
          - wpsite_network
    
      wordpress: # WordPressサービスの定義 (Apache一体型)
        image: wordpress:latest # 使用するWordPressのDockerイメージ(最新版のApache版)
        container_name: my_wordpress_app # コンテナ名(任意)
        depends_on: # 依存関係の定義 (dbサービスが起動してからwordpressサービスを起動)
          - db
        ports:
          - "8000:80" # ポートフォワーディング(ホストPCの8000番ポートをコンテナの80番ポートに接続)
        restart: always
        environment:
          WORDPRESS_DB_HOST: db:3306 # データベースホスト名(dbサービスのコンテナ名:ポート番号)
          WORDPRESS_DB_USER: wordpress_user # dbサービスで設定したユーザー名
          WORDPRESS_DB_PASSWORD: your_strong_user_password # dbサービスで設定したパスワード
          WORDPRESS_DB_NAME: wordpress_db # dbサービスで設定したデータベース名
        volumes:
          # ホストOSの現在のディレクトリにある `wp-content` フォルダを、
          # コンテナ内のWordPressの `wp-content` ディレクトリにマウントします。
          # これにより、ローカルでテーマやプラグインファイルを編集すると、即座にコンテナ内のWordPressに反映されます。
          - ./wp-content:/var/www/html/wp-content
          # (オプション) WordPressのルートディレクトリ全体をマウントする場合
          # - ./wordpress_files:/var/www/html # この場合、事前にwordpress_filesにWordPressコアファイルを展開する必要がある場合も
        networks:
          - wpsite_network
    
    volumes: # 名前付きボリュームの定義(データの永続化用)
      db_data:
    
    networks: # カスタムネットワークの定義
      wpsite_network:
        driver: bridge
    • DockerでWordPressを起動する
      • 前提
        • docker-compose.yml ファイルのあるディレクトリへ移動する
      • WordPressコンテナの起動
        Command: docker-compose up -d
      • コンテナの起動確認
        Command: docker-compose ps
    • WordPressの初期設定
      • WordPressへのアクセス
        • 上記の例ではhttp://localhost:8000
      • WordPressの初期設定画面

    WordPressの停止と削除

    • WordPressの停止
      • docker-compose.yml があるディレクトリで以下のコマンドを実行
        Command: docker-compose down
    • WordPressの削除(初期化)
      • 同じく、以下のコマンドを実行する
        Command: docker-compose down -v