WordPressで画像がアップロード出来ない症状では、よく下記の点が挙げられます
- 画像の保存先が書き込み可になっていない
- php.iniで設定している画像サイズの上限以上で行っている
- 画像圧縮プラグインが関与している
- そもそもHDD領域が足りない
- CPU負荷が100%になっている
2019年からアップロード出来なくなった?
とくに、php.iniやプラグインを変更していないのに、エラーが発生する症状が続いた。
「画像の後処理に失敗しました。このファイルが写真もしくは大きい画像であれば、2500ピクセルに縮小してから再度アップロードしてください。」
なんでも、下記で直る方もいる模様
- ブラウザーを一度起動し直す
- 管理画面からログアウトする
- 一度、下書き保存する
しかし、私の環境では解決しませんでした
原因
- WordPressとPHPのバージョンによる問題
- WordPressプラグインの不具合
対処法
もし、PHPとのバージョンによる問題だとしたら、現時点ではWordPressのバグフィックスを待つしかないので、急ぐ方は下記を行うしかないようです
- WordPressをバージョンダウンする
- PHPのバージョンを変更する(バージョンダウンもしくはバージョンアップ)
- 7.4にバージョンアップしてみる(WordPress5.3 PHP7.4と他のPHPバージョンで気をつけること )
- FTPで画像フォルダに手動でアップロードする
- 外部画像URLを利用する
その後の調査
DockerでWordPress 5.3とPHPのバージョンを変えて、環境を試してみたところ、何れもアップロードの不具合は起きなかった
WordPress | PHP | 合否 |
---|---|---|
5.3.2 | 7.0 | ○ |
5.3.2 | 7.3 | ○ |
5.3.2 | 7.4 | ○ |
解決
Docker検証の結果、WordPressとPHPの相性ではなく、その他の環境が影響しているものと断定
私の環境では、Docker-composeにてkusanagi-nginxとkusanagi-phpで運用しており、PHP環境が7.0であったため、7.3へアップデートしてみたが、そもそもPHPがエラーを吐いて起動しなかった。
WordPressのプラグインは、かなり少なめであったが、無効にしても不具合は解消されず、今回の原因は、KUSANAGI設定の画像最適化が悪さをしていたようであった。
これを無効にしたところ、あっさり画像がアップロード可能になった。
しかも、再度、有効に戻しても不具合が起きないのはキャッシュ??(謎
WordPressではキャシュ系や圧縮系の機能は鬼門です!