環境構築

DockerでWordPressを手軽に動かす

Docker (wordpress)
o_wani

WordPressを自分のPC上で動かします。Dockerを使えば簡単に起動できますので、手順を簡単に記載します。(Dockerはインストールしてある前提です)

docker-compose.ymlファイルの作成

下記の内容で任意のフォルダ内に、docker-compose.ymlを作成します。dockerHubの内容を参考にしています。

version: '3.1'

services:
  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress_data:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db_data:/var/lib/mysql

volumes:
  wordpress_data:
  db_data:

※下記のエラーに該当する場合、docker-compose.ymlを修正します。

追記)M1のMacbookで実行するとエラーになる場合

! db The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

対応するDockerイメージが存在しないことを示しているエラーです。

特に古いバージョンのイメージ(例えば mysql:5.7)は、ARM64アーキテクチャでのサポートがない可能性があります。そのためmysql8.0を指定します。

version: '3.1'
services:
  wordpress:
    image: wordpress:latest
    platform: linux/arm64/v8
    restart: always
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - ./wordpress_data:/var/www/html

  db:
    image: mysql:8.0
    platform: linux/arm64/v8
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - ./db_data:/var/lib/mysql

volumes:
  wordpress_data:
  db_data:

コンテナの起動

% docker-compose up -d
...
...
[+] Running 5/5
 ✔ Network wordpress_default          Created            1.7s 
 ✔ Volume "wordpress_wordpress_data"  Created   0.1s 
 ✔ Volume "wordpress_db_data"         Created         0.1s 
 ✔ Container wordpress-wordpress-1    Started        26.2s 
 ✔ Container wordpress-db-1           Started

ブラウザで確認する

http://localhost:8080/にアクセスします。

ここから各種設定に進み、利用開始できます。

テーマをアップロードできないので修正

テーマをアップロードするときに下記のエラーが出ていました。

PHP Warning:

POST Content-Length of 15575284 bytes exceeds the limit of 8388608 bytes in Unknown

このエラーメッセージは、POSTリクエストのContent-LengthがPHPの設定で許可されている最大値を超えていることを示しています。

この場合、アップロードしようとしているWordPressのテーマのサイズが、PHPの設定で許可されている最大POSTサイズを超えているようです。

この問題を解決するには、php.ini ファイルの post_max_size の値を増やす必要があります。

php.iniの作成

例として64Mを指定しました。

post_max_size = 64M
upload_max_filesize = 64M

docker-compose.ymlを修正

php.iniの記述を追加します。

...
...
  services:
  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress_data:/var/www/html
      - ./php.ini:/usr/local/etc/php/conf.d/uploads.ini
...
...

上記修正後、コンテナを再起動します。

STAFF
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました