1. HOME
  2. WordPress
  3. Docker起動時にPHPのファイルアップロード(post_max_size)上限を変更する方法
WordPress - 2025-08-15

Docker起動時にPHPのファイルアップロード(post_max_size)上限を変更する方法

Dockerを使ってPHPアプリケーション(特にWordPressなど)を開発していると、大きなファイルをアップロードしようとした際にエラーが発生することがあります。これは、PHPのデフォルト設定であるpost_max_sizeupload_max_filesizeの値が低いためです。

この記事では、Docker環境でこのファイルアップロード上限を簡単に引き上げるための、代表的な2つの方法と具体的な使用例を解説します。

方法1: Dockerfileで設定をイメージに組み込む

この方法は、これから作成するDockerfileに設定を書き込むやり方です。
一度イメージをビルドしてしまえば、そのイメージから起動するコンテナは全て同じ設定が適用されるため、配布や再利用に便利です。

カスタム設定ファイルの作成

まず、Dockerfileと同じ階層に、適用したい設定を記述した.iniファイル(例: my_php.ini)を作成します。

; ファイルアップロード上限を320MBに設定
post_max_size = 320M
upload_max_filesize = 320M

ポイント
post_max_sizeはPOSTリクエスト全体の上限、upload_max_filesizeはアップロードされるファイル1つあたりの上限です。
一般的にpost_max_size >= upload_max_filesizeとなるようにセットで設定します。

Dockerfileの編集

# ベースとなるPHPイメージ
FROM php:8.2-fpm

# (中略)

# 作成した設定ファイルを、PHPが追加設定を読み込むディレクトリにコピー
COPY my_php.ini /usr/local/etc/php/conf.d/

イメージのビルド

ターミナルで以下のコマンドを実行し、設定が組み込まれた新しいイメージをビルドします。

docker build -t my-custom-php .

これで、my-custom-phpイメージからコンテナを起動すれば、常時設定が反映された状態になります。

方法2: Docker Composeで手軽に設定を変更する

開発環境などで、コンテナを再ビルドせずに素早く設定を試したい・変更したい場合に非常に便利な方法です。ホストマシン上の設定ファイルを、直接コンテナにマウント(同期)させます。

カスタム設定ファイルの作成

方法1と同様に、設定ファイル(例: uploads.ini)を作成し、docker-compose.ymlと同じ階層に置きます。

post_max_size = 320M
upload_max_filesize = 320M

docker-compose.ymlの編集

docker-compose.ymlファイルで、対象のPHPサービス(コンテナ)のvolumesセクションに、作成したファイルをマウントする記述を1行追加します。

services:
  php: # ←サービス名は環境に合わせてください
    image: php:8.2-fpm
    volumes:
      - ./src:/var/www/html # ←既存のボリューム設定
      # 👇 この行を追加して設定ファイルをマウント
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

コンテナの再起動

以下のコマンドでコンテナを再起動すると、設定が反映されます。
この方法の最大のメリットは、今後uploads.iniの値を変更しても、コンテナを再起動するだけですぐに設定が反映される点です。

docker-compose up -d

【応用】WordPressコンテナで設定を変更する具体例

wordpress:latestのような公式イメージを使用している場合も、方法2(Docker Compose)を使うのが最も簡単です。以下のようなdocker-compose.ymlがあるとします。

変更前のdocker-compose.yml

services:
  wordpress:
    image: wordpress:latest
    ports:
      - 8000:80
    volumes:
      - wp_data:/var/www/html
# ...

このwordpressサービスのファイルアップロード上限を上げるには、volumesに設定ファイルのマウントを追加するだけです。

変更後のdocker-compose.yml

services:
  wordpress:
    image: wordpress:latest
    ports:
      - 8000:80
    volumes:
      - wp_data:/var/www/html
      # 👇 この行を追加
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
# ...

uploads.iniファイル(内容は前述の通り)を用意して以下のコマンドを実行すれば、WordPressの管理画面からアップロードできるファイルサイズの上限が変更されているはずです。

まとめ

Docker環境でPHPの設定を変更するには、主に2つのアプローチがあります。

  • Dockerfileで対応: 設定を普遍的なものとし、イメージ自体に組み込みたい場合に最適です。
  • Docker Composeのvolumeで対応: 開発中に素早く設定を変更したい、またはコンテナの再ビルドを避けたい場合に最適です。

プロジェクトの要件や状況に合わせて、最適な方法を選択してください。