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

記事内にプロモーションリンクが含まれる場合があります。

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

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

よこやま良平

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

無料パソコンスクール講座
WordPress・SEO・プログラミング

あなたは以下のことで 悩んでないだろうか?

「フリーランスになりたいけど稼げるか不安だ」
「クラウドソーシングや営業して稼げるか不安だ」
「転職で必要になり困っている」
「スマホはあるけどパソコンが古くて不安だ」
「広告やLINEからの集客を得たい」
「仕事でグラフや資料制作を思うように作れない」
「プログラミングを学習して副業したいけど不安だ」
「副業をはじめたが、いっこうに成果がでない」
「退職してノートパソコンだけで収入を得たい」
「何がわからないかわからない状態が続き何度も挫折した」
「在宅で稼げるようになりたい」
「副業で収入を得たい」

そんなお悩みのあなたにこそ
取得して頂きたい内容です!

このメディアを運営している制作・プログラミング相談のプロが
全て無料で相談と学習できるように
無料スクールのメルマガ講座を開設しました。

\今なら300部限定無料ダウンロード/

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

いまなら、先着300部限定で無料プレゼント付です。

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

自分の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の意味でインストール続きが始まります。

空の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 などに変更することでアップロード上限ファイルサイズを変更できます。

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

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

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

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

define('FS_METHOD', 'direct');

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

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

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

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

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

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

公開に失敗しました。 返答が正しい 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を追加したあと、念のため
上記記載のパーマリンク>【変更を保存】も行ってください。

この記事を書いた人

よこやま良平

よこやま良平

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

4歳~85歳まで、年間1,792人名以上の方に
パソコンやプログラミング講座を行ってきました。

また18冊以上の書籍を出版しており、連続で1位を獲得しました。
オンライン講座では200件以上のレビューを頂いており
評価は4.9/5.0と高評価を得ています。

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