【WordPress】php でファイルの最大アップロードサイズ上限を変更する

  • PHP

WordPress のメディアをアップロードする時にサイズの大き過ぎる画像をあげようとすると「***.jpg は、このサイトのアップロードサイズ上限を超えています。」と表示されアップロードできないことがあります。

今回は PHP の設定を変更してファイルのアップロード上限を変更してみます。

PHP の設定ファイル(php.ini)の場所を探す

アップロードサイズの上限を変更するには、PHP の設定ファイルである php.ini を書き換える必要がありますが、まずはこのファイルの場所がどこにあるのかを以下のコマンドで探します。

php -i | grep "php.ini"

コマンドを実行してみると、

Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini

こんな感じで表示されます。今回の場合は/etc/php/7.4/cli/php.iniにあるようです。

php.ini ファイルを編集してアップロードサイズを変更する

ファイルの場所がわかったので、vi エディタで編集してみましょう。

ファイルの編集

vi /etc/php/7.4/cli/php.ini

ファイルを開いた後、すぐにスラッシュ(/)を押すと検索することができるので、以下の3つを検索します。

  • memory_limit
  • post_max_size
  • upload_max_filesize

memory_limit > post_max_size > upload_max_filesize の大きさ順に設定しなくてはならない点に注意してください。

vi エディタで修正したい場合は、aを押して INSERT MODE にしてから修正を行います。修正が終わったら esc キーを押して、再度修正箇所を探した後にaキーを押して修正しましょう。

memory_limit

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128MB

メモリの上限。PHPが処理するときに使うメモリの量なので、後述する post_max_size などより小さいと処理しきれません。-1になっている場合、無制限に使用します。また、行頭のセミコロン(;)はコメントアウトです。

この例では 128MB = 128メガバイトとなっています。

post_max_size

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 8M

POST できる最大サイズ。僕たちユーザーからサーバーにデータを送りつけた時に PHP が受け入れ可能な最大サイズのように思ってもらっていいかもしれません。memory_limit よりも小さい値を設定しましょう。

この例では 8M = 8メガバイトとなっています。

upload_max_filesize

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M

アップロードファイルの最大サイズ。post_max_size よりも小さい値を設定しましょう。サーバーにデータを送りつける量よりもアップロードできる最大サイズが大きかったらおかしなことになっちゃいますからね!

この例では 2M = 2メガバイトとなっています。ちょっと大きい画像だと厳しそうですね。

サーバー・PHP の再起動

サーバーを再起動しましょう。お使いの環境にあわせて再起動してください。下記は一例です。

systemctl restart apache2

php-fpm を使っているなら下記。

systemctl reload php-fpm

参考

WordPressサイトのファイルアップロードサイズ上限を引き上げる方