どうも、スマコマのコマ太郎です。
WordPress に画像(メディアファイル)をアップロードしようとして、HTTPエラーになったことありませんか?
ぼくはいろんなサーバーを借りて、たくさんの WordPress を使っています。そのため、このHTTPエラーにちょこちょこ遭遇してます。
HTTPエラーの例
HTTPエラーが発生するのは、いくつかパターンがあるのですが、その中でもよくあるものに絞って記事にしてみようと思います。
HTTPエラーの対処法
ブラウザのセッションが切れた
WordPress で記事を書いていて、書き続けていれば問題ないのですが、投稿画面をひらっきぱなしで席を外し、戻って来てからメディアファイルをアップロードしようとすると出るパターンです。
これはブラウザのセッションが切れたことが原因で、解決策は簡単です。
下書きとして保存ボタン
投稿画面にある [下書きとして保存]ボタンを押してください。これでセッションが回復します。なお公開済みの記事の場合、[下書きとして保存]ボタンがありませんので、[公開]ボタンを押すか編集画面を開き直してください。
メディアファイルが大きすぎる
アップロードしようとしているメディアファイル(画像)が大きすぎても、HTTPエラーが発生することがあります。
フリーの画像サイト(特に海外)からダウンロードしたファイルを、そのままアップロードしようとすると起きやすいですね。
海外の画像は、高解像度のものがフリーで配布されています。画像サイズがとにかく大きいです。
高解像度の画像ファイル
ファイルサイズがメガバイトクラスだと、引っかかりやすいですね。ウェブの記事で使う画像は適度にサイズを落としてアップしてあげる必要があります。
大きいサイズでも200KB以下が望ましいかなと個人的には思っています。
HTTPエラーがあることで大きすぎる画像ファイルを誤ってアップロードしてしまうこともないので、この点では有り難いですね。
PHPの設定が原因
これもよくあるパターンの1つで、PHPの設定が原因で起きることがあります。個人的な肌感覚として、なぜかエックスサーバーでよく起きますね。
この場合、PHP の設定にある max_execution_time の値を大きくすることで、HTTPエラーを回避できます。
max_execution_time は、実行時間の最大時間で、単位は秒です。
多くのレンタルサーバーでここが30(秒)になっていますね。なのに、なぜかエックスサーバーでHTTPエラーが起きやすいのが謎です^^
PHP の設定は、PHP.ini を編集することで可能で、最近のレンタルサーバーではレンタルサーバーの管理画面で変更することができます。
エックスサーバーの管理画面
ここではエックスサーバーを例に操作方法を紹介しておきます。
まずエックスサーバーの管理画面にログインしてください。メニューにある [php.ini設定] をクリックします。(場所は上記画像を参照)
続いて設定を変更するドメインを選択してください。
PHP.ini を編集する
PHP.ini を編集する画面になったら編集画面を下にスクロールしてください。下方に [max_execution_time] の設定箇所があります。初期値は、30 になっていますので、この値を大きくします。
単位は秒。あまり大きくし過ぎるのもよくありませんので、60 から 100 くらいにするといいでしょう。ぼくは 100 にしてます。
WordPressでHTTPエラーが発生したときのまとめ
この記事では、よくあるパターンとして3つご紹介しましたが、そのほか、プラグインの影響で起きることがあります。
まあ、ほぼ上記3つで直るはずですから、まずは上記3つを確認してください。
それでもダメなときはプラグインを疑うことになります。プラグインの問題は、一旦、すべて無効化し、どのプラグインが問題を起こしているかをチェックし、問題のプラグインを特定します。
プラグインの特定方法は、こちらの記事に書いてありますので必要であればご覧ください。