環境
今構築中の環境ではnginx-proxyをかましてやってるので(nginx-proxyには、SSL証明書とBasic認証をやらせている)
構成的には
- インターネットから接続される
- nginx-proxy
- wordpressの公式コンテナ⇔MySQLのコンテナ
みたいにしてます。
デフォルトだとアップロード容量制限がかかっている
nginx-proxy
デフォルトだと1MBの容量制限がかかっており、1MB以上のサイズのファイルをアップロードすると、まずここでひっかかります。
解消方法としては、
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の管理画面からメディアの追加をするなどすれば、画面上に表示されているのですぐに気づける)
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秒くらいダウンタイムが発生しました。
すでにサービスインされている方はご注意ください。
以上です。
コメント