こんにちは。
Docker Composeを使って軽量で堅牢なWordPress環境を構築したあと、お気に入りの高機能テーマ(NewsMunch Proなど)をアップロードしようとした際、以下のようなエラーに阻まれた経験はないでしょうか。
413 Request Entity Too Large(Nginx側のエラー画面)- 「アップロードしたファイルはphp.iniで定義されたupload_max_filesizeを超えています」(WordPress側の警告)
コンテナ環境におけるこの問題は、サーバー全体のプランを上げる必要はなく、「2つの設定ファイルを書き換えてコンテナをリフレッシュするだけ」で美しく解決できます。今回はその構造と具体的な手順を解説します。
1. エラーが発生する構造(原因)
このエラーが発生する理由は、外部からのアクセスをせき止めている「Nginx(リバースプロキシ)」と、Webアプリケーションを動かしている「WordPress(PHP)」の双方に、初期設定として安全のための「容量制限(デフォルトは2MB〜数MB程度)」が課されているためです。
リッチなテーマファイル(数テンMB〜)を投げ込んだ際、システムは以下の2つの関門で通信を遮断します。
Plaintext
[ユーザー] ──(テーマファイル: 30MB)──> [第1関門: Nginx] (2MB制限で413エラー)
│ (通過した場合)
▼
[第2関門: PHP] (upload_max_filesize超過)
これを突破するには、NginxとWordPress(PHP)の双方の制限値を、一律で「50MB」などの適切な値へ引き上げる必要があります。
2. 3ステップによる解決手順
ホスト側の設定ファイルを修正し、コンテナへ安全に反映させます。
ステップ①:Nginxの許容量を拡張する
Nginxの設定ファイル(例:./nginx/conf.d/default.conf)を開き、server ブロックまたは location ブロック内に client_max_body_size の設定を追加します。
Nginx
server {
listen 80;
server_name example.com;
# ★クライアントからの最大アップロード許容量を50MBに拡張
client_max_body_size 50M;
location / {
proxy_pass http://wordpress:80;
# (その他のプロキシ設定)
}
}
ステップ②:WordPress(PHP)の許容量を拡張する
次に、PHP側の制限を解除するための設定ファイル(例:./uploads.ini)をホスト側に新規作成(または編集)します。
Ini, TOML
# ./uploads.ini の中身
file_uploads = On
memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 300
※このファイルを、docker-compose.yml 内の wordpress サービスで以下のようにマウント(同期)させていることを確認してください。
YAML
volumes:
- ./wordpress:/var/www/html
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # ★ここ
ステップ③:コンテナの「完全リフレッシュ」を実行する
設定ファイルを書き換えただけでは、現在メモリ上で動いているコンテナプロセスには反映されません。 設定を100%確実に適用するため、コンテナを一度完全に破棄して再生成(完全リフレッシュ)します。以下のコマンドをVPSのターミナルで実行します。
Bash
# 稼働中のコンテナを停止して完全に削除
docker compose down
# 設定ファイルを読み込み直して、バックグラウンドで再起動
docker compose up -d
※データ永続化(volumes)が正しく設定されていれば、コンテナを一度削除しても構築中のブログデータが消えることはありません。
3. 動作確認と技術的メリット
再起動後、WordPressの管理画面から「メディア」->「新規追加」を開き、「最大アップロードサイズ: 50 MB」 と表示されていれば設定変更は成功です。これで大容量の高級テーマも一瞬でインストール可能になります。
このアプローチの技術的利点
共用レンタルサーバーの場合、これらの上限値はサーバー会社が一律で管理しているため、ユーザーが自由に上限を広げることはほぼ不可能です。
しかし、VPS上のDocker環境であれば、設定ファイルの書き換えと docker compose down && docker compose up -d という数秒のオペレーションだけで、「必要なコンテナの、必要なパラメータだけをピンポイントで最適化」できます。他のZabbixやGrafanaといった監視コンテナの挙動を一切邪魔することなく、Webサーバーのスペックを自力で拡張できる点に、コンテナ運用の本質的な強みがあります。
予期せぬ制限の壁に遭遇した際は、ぜひこの手順でインフラをスマートにコントロールしてみてください。





