WordPress でメディア画像の処理に失敗してアップロードできない

  • PHP
  • WordPress

WordPress で画像をアップロードした時に、

画像の後処理に失敗しました。このファイルが写真もしくは大きい画像であれば、2500ピクセルに縮小してから再度アップロードしてください。

と表示されてアップロードができませんでした。そもそも 2500px 以下でもだめだったので、何かしら問題が起きていたようです。

php.ini のアップロード設定は問題なかったので、ウェブサーバー(nginx)のログを見てみると、

[error] 7110#0: 126 client intended to send too large body: 1238876 bytes, client: ..., server: ., request: "POST /wp-admin/async-upload.php HTTP/1.1", host: ".com", referrer: "https://.com/wp-admin/media-new.php"
client intended to send too large body

「大きすぎるファイルをアップロードしようとしていた」と言われています。

どうやら nginx の方ではデフォルトで1Mまでしかアップロードできないことになっているようなので、設定を変更します。

設定ファイルを修正

下記はデフォルトの nginx 設定ファイルの server ディレクティブに追加する例です。

とりあえず30Mに設定してアップロードできるようになりました。

sudo vi /etc/nginx/nginx.conf

設定を書き替え

server {
    ...
    client_max_body_size 30m; 
    ...
}

参考

https://qiita.com/notakaos/items/4816ad71b90a9967fa18