wordpress Dockerで構築したワードプレスにアップロード制限をpnp.iniで解除する方法

Dockerで構築したWordPressにアップロード制限をpnp.iniで解除する方法

DockerにWordPressをインストールした際のアップロード上限は2MB になっています。

docker wordpress upload_max_filesizeの対処方法です。

2MBだとテーマやプラグインのアップロードで不都合が出てきますので、
2MBの制限を解除する方法を解説します。

よこやま良平

こんにちは18年以上ITエンジニアを行っているよこやまです。
詳しいプロフィールはこちら

【無料プレゼント】
WordPress緊急チェック50

「自分のサイトは今、安全なのか?」
自信を持って答えられますか?

WordPress緊急チェック50

こんなお悩みはありませんか?

  • ある朝、サイトを開いたら真っ白画面になっていた
  • 管理画面にログインできなくなって手が止まった
  • 身に覚えのない記事やページが勝手に増えていた
  • プラグインを更新したらサイト全体が崩れてしまった
  • 以前バックアップを取ったか自分でも覚えていない

累計1,000件以上のWordPressトラブル対応の経験から、「壊れる前に備える」ためのチェックリストを1冊にまとめました。
ログイン・本体・バックアップ・サーバー・運用の5分野を、50項目で「危険度・確認方法・対処法」まで解説しています。

セキュリティプラグイン・WordPressの教科書も含めた3大特典を、
今なら無料で受け取れます。

今すぐ無料ダウンロードする →

※登録後すぐにメールで特典をお届けします

自分のWordPress Dockerディレクトリ

ご自身の環境によってDocker内のUbuntuディレクトリが異なります。
わたしの場合を記載しておきます。

Ubuntu
  ┗home
    ┗yokoyama(ユーザー名)
      ┗docker
        ┗wp(WordPressフォルダ)

ですのでコマンド上の表示はこうなります。

yokoyama@xxxx:~/docker/wp$

Dockerのコンテナ名を調べる

まずWSL内のUbuntu(またはDocker内)にてDockerのコンテナ名を調べる

Dockerのコンテナ名を調べるコマンド

$ docker ps

コンテナ名のコマンド結果

$ docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                  NAMES
7ca12aec0c13   phpmyadmin:latest   "/docker-entrypoint.…"   9 minutes ago   Up 3 seconds   0.0.0.0:8881->80/tcp   WPphpMyAdmin
94ad9a5bc889   wordpress:php8.0    "docker-entrypoint.s…"   9 minutes ago   Up 3 seconds   0.0.0.0:8081->80/tcp   wordpress
8a018a49934b   mariadb:latest      "docker-entrypoint.s…"   9 minutes ago   Up 4 seconds   3306/tcp               WPmariadb

一番右にある「NAMES」(コンテナ名)をメモ

  • wordpress
    例えば「NAMES」が「WPCWordpress」となっていたら「WPCWordpress」とメモしておく

php.iniファイルをDocker内に作る

どこでも良いですが、Docker内にphp.iniファイルを作成します。
今回は、WSL内のDockerフォルダへ移動しました。

Docker内のフォルダへ移動する

例えば

$ cd docker/wp

このコマンドでdockerフォルダにあるwp(WordPress)フォルダへ移動します。

Dockerフォルダへ移動した結果

$ cd docker/wp
yokoyama@xxxx:~/docker/wp$

vi(Vim)コマンドが使えない場合

このあとvi コマンドを使ってファイルを編集するのですが、Vimが入ってなく動作しない場合があります。そんなときは

$ apt-get update
$ apt-get install vim

After this operation, x.x MB of additional disk space will be used.
Do you want to continue? [Y/n] 

このコマンドでインストールをします。

  • [Y/n]
    Yを入力するとYesの意味でインストール続きが始まります。

docker wordpress upload_max_filesizeを改善する

空のphp.iniファイルを作成する

次に制限解除するため、空のphp.ini を作成する

$ vi php.ini

このコマンドで【空のファイル】が表示されるのでファイルの中身に記述する

php.iniファイルに記述する内容

ファイルの中身に記述する内容は

upload_max_filesize = 1000M
post_max_size = 1000M

この2つを記述する

  • もっと容量を多くしたい場合は 50M を 1000M と記述します。

保存するには

  1. ESC(エスケープキー)押して
  2. 「:」コロン押して
  3. 「w」ダブリュー押して 書き込み
  4. 「:」コロン押して
  5. 「q」キュー押して終了
    「:wq」でいっぺんに保存して終了も可能です。

次に作成したphp.iniファイルを該当するWordPressのコンテナへコピーします。

このときエラーで保存できない場合があります。

そんなときは強制保存の

  • 「:wq!」
    先ほどの:wpの後ろに 「!」マークを入れると強制上書きになります。

保存できないエラーが出たときは覚えておいてください。

作成したphp.iniファイルを該当するコンテナへコピーする

Dockerのコンテナ名を調べるコマンド

最初にも確認したDockerのコンテナ名を調べるコマンド

$ docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                  NAMES
7ca12aec0c13   phpmyadmin:latest   "/docker-entrypoint.…"   9 minutes ago   Up 3 seconds   0.0.0.0:8881->80/tcp   WPphpMyAdmin
94ad9a5bc889   wordpress:php8.0    "docker-entrypoint.s…"   9 minutes ago   Up 3 seconds   0.0.0.0:8081->80/tcp   wordpress
8a018a49934b   mariadb:latest      "docker-entrypoint.s…"   9 minutes ago   Up 4 seconds   3306/tcp               WPmariadb

作成したphp.iniを
該当するWordPressで使っているDockerコンテナへコピーするコマンド

  • 先ほどメモしたコンテナ名「wordpress
    この部分は人によって異なるので注意
  • 例えば先ほどのコンテナ名のメモ「NAMES」が「WPCWordpress」となっていたら「docker cp ./php.ini WPCWordpress:/usr/local/etc/php/php.ini」と記述する
yokoyama@xxxx:~/docker/wp$ ← 今このフォルダにいる状態で下記コマンド
$ docker cp ./php.ini wordpress:/usr/local/etc/php/php.ini

コンテナの再起動

php.iniファイルのコピーが完了したらコンテナの再起動

$ docker compose restart

コマンドで再起動できない場合は
Dockerのアプリ自体からRestart(再起動)しても同じです。

  1. DockerアプリのContainers > Action にある「■」停止ボタンを押す
  2. 停止を確認したら
  3. DockerアプリのContainers > Action にある「▶️」停止ボタンを押す
  4. 起動が完了

再起動したらアップロード容量が増えてます。

再起動したら、自分のDockerにあるWordPressへアクセスして確認してみます。

php.ini を変更した結果のWordPressアップロード制限
初期状態は 2M になっていますが、php.iniを変更することで 50Mまでアップロードできる様になりました

この様にアップロード上限ファイルサイズが50Mにすることが出来ました。

大抵の場合はこのサイズで大丈夫ですが足りないようでしたら

  • upload_max_filesize = 50M
  • post_max_size = 50M

この 50M 部分を 100M などに変更することでアップロード上限ファイルサイズを変更できます。

WordPres+Dockerのパーミッション問題に悩んだら

フォルダの所有権グループを変更しておく

yokoyama@xxxx:~/docker/wp$ ← 今このフォルダにいる状態で下記コマンド
$ sudo chmod -R 707 wordpress/html/wp-content

wp-config.phpに追記しておく

define('FS_METHOD', 'direct');

プラグインやテーマのアップデート、WordPressのアップデートでFTP情報が表示されてしまう場合は

上記のコードをwp-config.phpに記述しておく。最終行で良い。

WordPres DockerのPHPMyAdminでエラーが出て表示できないとき

sessions フォルダの所有権グループを変更しておく

yokoyama@xxxx:~/docker/wp$ ← 今このフォルダにいる状態で下記コマンド
$ mkdir -p phpmyadmin/sessions
$ sudo chmod -R 777 phpmyadmin/sessions

このコマンドを入れて sessions に書き込みできる様にしておく。

WordPres+Dockerで公開に失敗しました。 返答が正しい JSON レスポンスではありません。とエラーが出る場合

これはパーマリンクが上手くいってない場合か、htaccessの記載がない場合におこりますので

  • ダッシュボード>設定>パーマリンク>変更を保存

なにも変更しないでパーマリンクの【変更を保存】をクリックして保存することで解消します。

エラーが解消しない場合は.htaccess に記述

エラーが解消せず、固定ページや投稿ページに書き込みができない場合は

.htaccessに以下を記述

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

上記を記述して保存すると解消します。

.htaccessを追加したあと、念のため
上記記載のパーマリンク>【変更を保存】も行ってください。

2025年最近使っている一発で対応させるDockerfile【番外編】

最近Docker+WordPress構築を行うときはDockerfileに以下を追加すると
一発でメモリやアップロード上限上げられる

# PHP設定を変更(アップロード上限やメモリ上限など)
RUN echo "upload_max_filesize = 1024M" > /usr/local/etc/php/conf.d/uploads.ini && \
    echo "post_max_size = 1024M" >> /usr/local/etc/php/conf.d/uploads.ini && \
    echo "memory_limit = 1024M" >> /usr/local/etc/php/conf.d/uploads.ini && \
    echo "max_execution_time = 300" >> /usr/local/etc/php/conf.d/uploads.ini && \
    echo "max_input_time = 300" >> /usr/local/etc/php/conf.d/uploads.ini

この記事を書いた人

よこやま良平

こんにちは!20年以上ITエンジニアとして活動してきた
よこやま良平です。

Wordpress復旧やサイト修復、オンライン講座では
200件以上のレビューを頂いており

「すぐに復旧してくれる!」
「当日行ってくれて助かった!」など

評価は4.9/5.0と非常に高く好評です。

またWordPress、SEO、Officeなど25冊以上の書籍を出版しており、
売上ランキング1位を連続で獲得致しました。

その他これまでに3000以上のサービス・システム・サイトを作成。

多くの方の「できない」や「悩み」を解決してきました。
その観点からわかりやすく解説しています。