Published on

エックスサーバーでWordPressの画像のアップロードに失敗するのはこれが原因かも

目次

エックスサーバー(xserver)でwordpressを使っていて、画像をアップロードしようとすると「エラーが出る」という方へ向けた記事です。

メディアや記事のサムネイルをアップロードすると

HTTPエラー

と表示される場合、サーバー管理画面などからphpiniの「max_execution_time」を初期設定から伸ばすと解決したり、画像のサイズ、ピクセル数が関係していることもあるみたいですが、僕の場合それでは解決しなかったので、どうやって解決したか説明します。

原因は「Xアクセラレータ(エックスアクセラレータ)」かも

とりあえずphpiniでメモリやmax_execution_time(これは関係あるのか?)を変更してみようと思い、管理画面から変更してみました。

変更後、phpiniの設定が変わっていませんでした。

おかしいなと思い、他の方法で解決できないかと他の設定を考えていたところ、

Xアクセラレータの存在を思い出したので設定を確認。

Ver.2(バージョン2)はPHPの高速化が目的なので、有効にしていました。

「Xアクセラレータ」はWebサイトを高速・安定化させるための機能です。
設定は以下のいずれかからお選びいただけます。
Xアクセラレータ Ver.1 … 静的ファイルの高速化(キャッシュ)
Xアクセラレータ Ver.2 … 静的ファイルの高速化(キャッシュ)+PHPプログラムの高速化

https://www.xserver.ne.jp/manual/man_server_xaccelerator.php

あー、phpの高速化だからこれが関係している可能性高そうだな。。

もう少し調べると、バージョン2を利用時に変更できないphpiniの項目もあるようです。

XアクセラレータVer.2利用時に無効となるphp.ini設定について

ということで、解決策はこちら

Xアクセラレータをバージョン1に変更したらアップロードエラーがでなくなった

アクセラレータのバージョンをVer.2からVer.1に変更したら画像のアップロードでエラーが出なくなりました。

結構単純な解決策でしたね。

今後アクセラレータの修正が行われたりバージョンアップでこのような問題が解決すると思うので期待しましょう。

もし、アクセラレータではなく原因は別にあるよという情報がありましたら教えてください。。