Dockerの公式WordPressで、ファイルアップロードの容量制限調整
公開日: : docker httpd.conf, nginx.conf, php.ini, wordpress
環境
今構築中の環境ではnginx-proxyをかましてやってるので(nginx-proxyには、SSL証明書とBasic認証をやらせている)
構成的には
- インターネットから接続される
- nginx-proxy
- 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秒くらいダウンタイムが発生しました。
すでにサービスインされている方はご注意ください。
以上です。
Googleアドセンスレスポンシブ
関連記事
-
jwilder/nginx-proxy でサイトごとにBasic認証をかける
docker-compose.ymlでボリュームマウント volumesに
-
docker-compose CentOSコンテナとかでResterting…にならんように常時起動にする
command: /sbin/init を記述する。 ↑↑の、最下部のやつ。
-
serviceコマンドが使えないdockerコンテナ内のapacheを再起動したり
config test httpd -t apache再起動 httpd -k
-
DockerのMySQLコンテナでDUMPとRESTOREする
参考リンク こちらがすべてです。(Thank you!!) # Backup dock
-
docker-compose up したときに Unsupported config option for services.networks: ‘app_net’
事象 固定IPをコンテナに振ろうと思い、ここを参考に設定して docker-co
-
docerのPostgresql で restore
コンテナに入ってから su - postgres してから psql データベース名
-
CentOS7でdockerとdocker-composeをセットアップするメモ
rootになる su - sudo コマンド って解説してるサイト多いです
-
Dockerでイメージを保存(save)、読み込み(load)
イメージ保存コマンド docker save イメージ -o 保存ファイルパス.tar do
-
dockerのjwilder/nginx-proxy に443(https)でアクセスした際に接続が拒否される
事象 タイトルの通り。 原因 docker-composeを使って、 ssl証明書のディ
-
Dockerの利用回数に関するポリシー変更11月から
わかりやすくメールまとめてくださってる方のツイート Docker 社からポリシー変更のお知