VPSで管理しているWordPressサイトにアニメGIFファイルがアップロードできない事に気がつきました。
最初はブログエディタ経由でアップロードしていたので、使っているブログエディタが原因かと思っていたのですが、WordPressの管理画面から直接アップロードしても「サーバーの負荷が高いか十分なリソースがないため画像の後処理に失敗しました。もっと小さな画像をアップロードしてみてください。推奨する最大サイズは2500ピクセルです。」というエラーメッセージが表示されます。
ネットで検索してみると
- WordPressに再ログインする
- イメージサイズを縮小する
という方法を掲載しているサイトが多数見つかりましたが、今回の現象には全く関係がありませんでした。
以下実際に問題を解決できた方法を説明します。
目次
サーバーがNginxの場合は要注意
WordPressはNginxで運用しています。そこに注目して検索してみたところ、Nginxの設定ファイル(/etc/nginx/nginx.conf等)に「client_max_body_size」を追加すると良いという情報が見つかりました。
http { client_max_body_size 20M; (後略) }
恐らくアップロードしようとしている画像ファイルのサイズより、client_max_body_sizeで指定したサイズの方が大きければエラーが解消するということだと思います。
実際に設定を変更した後nginxを再起動すると、問題が解消し、アニメーションGIFファイルがアップロードできるようになりました。
WordPressの場合、phpの「memory_limit」あたりも関係する可能性がありそうです。このあたりはレンタルサーバーの場合は適切に設定されているはずですが、自前でサーバーを立ち上げている場合、見落としがないように気をつけた方が良さそうです。