LoginSignup
7
9

More than 3 years have passed since last update.

docker-compose for wordpress と php.ini の設定

Posted at

はじめに

Mac local に Wordpress の動作環境を作る必要があったのでどの方法が良いか検討したところ、docker-compose でやるのが一番手っ取り早いと思った。

docker-compose.yml の sample がdocker のドキュメント に載っていたので、ほぼほぼそのまま使わせていただくことにした。

が、起動してみると、テーマのアップロードができなかった。原因を調べたところ、php.ini の設定項目追加が必要だった。次回以降のためにメモ。

作業ログ

docker-compose.yml sample

まずは(ほぼほぼ)サンプルのまま起動してみる

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:5.3.2-php7.2-apache
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

docker-compose up して

$ docker-compose up -d
Creating network "wordpress_default" with the default driver
Creating volume "wordpress_db_data" with default driver
Creating wordpress_db_1 ... done
Creating wordpress_wordpress_1 ... done

ブラウザでアクセス

とりあえずログインまでは問題なし

Screen Shot 2020-02-20 at 14.53.41.png

テーマをアップロードしてみる

Screen Shot 2020-02-20 at 14.55.12.png

The link you followed has expired.

が、エラー

Screen Shot 2020-02-20 at 14.55.21.png

エラーメッセージは以下

  • The link you followed has expired.
  • 辿ったリンクは期限が切れています。

このエラーは php.ini に以下の設定を入れることで解消できた

設定の入った Docker image を使いたいので build する

Dockerfile ①

FROM wordpress:5.3.2-php7.2-apache

# set recommended PHP.ini settings
RUN { \
  echo 'max_execution_time=-1'; \
  echo 'memory_limit=-1'; \
  echo 'post_max_size=-1'; \
} > /usr/local/etc/php/conf.d/wp-recommended.ini

build

$ docker build -t my_wordpress:1 .

docker-compose.yml を修正して再トライ

$ docker-compose down && docker-compose up -d

どうかな?

残念ながらまたエラー

Screen Shot 2020-02-20 at 15.36.40.png

The uploaded file exceeds the upload_max_filesize directive in php.ini.

エラーメッセージは以下

  • The uploaded file exceeds the upload_max_filesize directive in php.ini.
  • アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。

これはありがちなやつか

upload_max_filesize を追加

Dockerfile ②

FROM wordpress:5.3.2-php7.2-apache

# set recommended PHP.ini settings
RUN { \
  echo 'max_execution_time=-1'; \
  echo 'memory_limit=-1'; \
  echo 'post_max_size=-1'; \
  echo 'upload_max_filesize=100M'; \
} > /usr/local/etc/php/conf.d/wp-recommended.ini

build

$ docker build -t my_wordpress:2 .

今度はどうか

いけた!

Screen Shot 2020-02-20 at 15.41.48.png

おわり

7
9
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
7
9