10連休を目前にしてクライアントが休みを取るためにシワ寄せが僕ら下々の下っ端に押し寄せてきています。
で、この忙しいのにWordPressで制作を始めたばかりのサイトで、画像ファイルをアップロードしようとすると
HTTPエラー。
が出て正常にアップロードできなかったので対処した話です。
WordPressでメディアを新規追加するとHTTPエラーが出る
サーバーはエックスサーバーです。
このサーバーではもういくつ作ったか分からないくらいサイトを作ってるのでサーバーの問題ではありません。
他のサイトでは問題なく動いています。
phpのバージョンもWordPressのバージョンも稼働中の別サイトたちと同じ。
この時点でサーバーやWordPressの疑いは晴れるが、念のためメモリの割り当てをいじってみる。なぜなら、テーマやプラグインによってはメモリ食うやつがいるので。
サーバーのphpのメモリを増やす
エックスサーバーのサーバーパネルの php.ini設定 をクリック。
memory_limit という項目を増やす。
エックスサーバーのデフォルトは200M。通常、画像のアップロードなら十分な容量だ。
ちなみに以前、別のサーバーでどうやっても画像がアップできなくて、php.iniをチェックしてみたら16Mしかなかったレンタルサーバーがありました。
とりあえず300Mに設定。
アップロードを試みるが、やはり「HTTPエラー。」が出る。
プラグインを疑ってみる
とりあえずインストールしているプラグインをすべて停止してみた。
しかし相変わらず「HTTPエラー。」。
画像のサイズをいじってみる
画像のサイズをいろいろいじってみると、1000×650ピクセル程度でエラーとなり、800×500だとアップロードできた。
これはアップロード関連でリサイズする処理がおかしいに違いない。
けどWordPressのバージョンは他と同じ。
ということはコアプログラムは同じなので、そこに余計な処理をしているやつが原因だと気づく。
原因はテーマ
今回使用したテーマが問題でした。
そもそもこのテーマ、php7.2でエラーが出て、php7.1なら動作した。
この時点で不安定な作りというか、古い関数を使用していると分かる。
使用したテーマはこれ。Orenというテーマ。
phpのバージョンを5.3まで落としてようやく大きな画像でもアップロードできるようになりました。
とは言え、いまさらphp5.3なんて使う気になれない。WordPressのダッシュボードでも警告がでるし。そのうちWordPress自体が動かなくなると思います。5.1はすでに動かなくなってますし。
ということで、プラグインだけじゃなくテーマも悪さをすることがあるのでいろいろ疑ってみるといいですよという話でした。
このところ忙しくてブログぜんぜん書いてませんでしたね。
今日も忙しいわけですが、ご飯炊けるまでの間に記事が書けるかのチャレンジをやってみました。
結果は5分ほどオーバーでした。