Dockerの公式WordPressで、ファイルアップロードの容量制限調整

docker

ワードプレスのロゴ

 

環境

今構築中の環境ではnginx-proxyをかましてやってるので(nginx-proxyには、SSL証明書とBasic認証をやらせている)

構成的には

  1. インターネットから接続される
  2. nginx-proxy
  3. wordpressの公式コンテナ⇔MySQLのコンテナ

みたいにしてます。

 

デフォルトだとアップロード容量制限がかかっている

nginx-proxy

デフォルトだと1MBの容量制限がかかっており、1MB以上のサイズのファイルをアップロードすると、まずここでひっかかります。

2MBのファイルをアップロードして怒られた図。

 

解消方法としては、

nginxのconfで指定してあげればいい。

./nginx-proxy/add.conf

みたいなファイルを作ってあげて、以下を書く。(以下の場合、100MBのアップロードファイルサイズ制限になる)

client_max_body_size 100M;

そして、

./docker-compose.yml

のnginx-proxyのところに

    volumes:
     - ./add.conf:/etc/nginx/conf.d/server.conf

みたく追加する。
参考になった記事(ありがとうございました!)

Apache

公式のwordpressのコンテナは2020年6月23日現在、WebサーバにApacheを採用している(ちなみにOSはDebian)

Apacheのファイルアップロードに関する制限は、

LimitRequestBody

で、設定されるが(厳密にはファイルだけではないが)

デフォルトの値が0(=無制限)となっているため、設定する必要はない。

php

デフォルトだと2MBの制限がかかっている。(WPの管理画面からメディアの追加をするなどすれば、画面上に表示されているのですぐに気づける)

3MBのファイルをアップロードしようとして怒られた図

php.iniの場所は、

wordpressコンテナの

/usr/local/etc/php/

配下になるが、2020年6月23日現在、ここにphp.iniファイルは存在しない。

その為作ってdocker-compose > volumesでマウントしてしまう。(今後作られる可能性はあるので覚えておくといい)

memory_limit PHPが使用するメモリーの最大値
post_max_size POSTされるリクエストの最大値
upload_max_filesize アップロードするファイルの最大値

の設定をベタで書いてやる。

参考にした記事(ありがとうございました!) 

./web/php/php.ini

みたいなファイルを作ってあげて、

post_max_size = 64M
upload_max_filesize = 32M

みたくベタに書く。

(memory_limitについてはもともと128MB取られていたため変更しない)

そして、

./docker-compose.yml

のwebのところに

    volumes:
     - ./web/php/php.ini:/usr/local/etc/php/php.ini

みたく追記する。

 

設定が終わったらdocker停止起動で読み込ませる。

docker-compose.yml

ファイルがあるディレクトリにて

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

を実行する。

僕の環境だと10秒くらいダウンタイムが発生しました。

すでにサービスインされている方はご注意ください。

 

以上です。

コメント

タイトルとURLをコピーしました