WordPressのライブラリにメディア(特に動画)をアップロードしようとしたとき、以下のメッセージが表示されたことはありませんか?
サーバーから予期しないレスポンスがありました。ファイルは正しくアップロードされているかもしれません。メディアライブラリもしくはページをリロードして確認してください。
上記エラーは、いろんな要因が考えられるため本記事に書いた方法で解決できるとは限りませんが、
本記事を読むことで、簡単にエラー回避できる可能性があります。
エラーメッセージ
以下の画面から写真や動画などをアップロードすることはよくあると思います。
このとき、写真のようにファイルサイズが比較的小さいものは問題ありませんが、ファイルサイズが大きい動画などの場合、ネットワーク環境によってはよくエラーになります。
ほとんどの場合、何度かトライすることによって解決するのですが、設定されたリミットを超える?と何度トライしても正常にアップロードすることはできません。
そのときに出力されるエラーメッセージが、冒頭に記載した以下のメッセージです。
サーバーから予期しないレスポンスがありました。ファイルは正しくアップロードされているかもしれません。メディアライブラリもしくはページをリロードして確認してください。
エラーメッセージの意味
「サーバーから予期しないレスポンスがありました。」というメッセージは、その言葉どおり、サーバー側に問題が発生したと理解して問題ないでしょう。
WordPressのコアソフトウェアの大部分はPHPで記述されています。
phpは主にウェブ開発で使用されますが、オープンソースで、サーバーサイドスクリプト言語で書かれています。
コードを書けない人(筆者も)にとっては、「サーバーサイドスクリプト」と言われても(・・? と思いますが、『すべての処理はウェブサーバー側で実行される』と覚えておけば十分です。
筆者が使用しているレンタルサーバーは「Xserver」なのですが、サーバー管理画面(サーバーパネル)に『php.ini』というものがあります。
php.ini とは?
php.iniとは、PHPプログラムの全体的な動作や環境を設定するファイルです。
サーバーパネル > php.ini設定 > ドメイン選択画面(任意のドメインを選ぶ)と進むと、『php.ini設定』という画面に切替ります。
ここに表示されているパラメーターを見れば、いろんな制御が出来そうということがなんとなくわかりますよね?
その中に「max_execution_time」というパラメータがあり、デフォルト値は180となっています。
max_execution_time
PHPマニュアルを参照すると以下のように説明があります。
max_execution_time
intスクリプトがパーサにより強制終了されるまでに許容される最大の時間を秒単位で指定します。この命令は、いい加減に書かれた スクリプトがサーバーの負荷を上げることを防止するのに役立ちます。 デフォルトでは、30に設定されています。 PHP を コマンドラインから実行する場合のデフォルト設定は0です。
出典:PHP マニュアル >関数リファレンス > PHP の振る舞いの変更 > PHP Options/Info > インストール/設定
つまり、Xserverで設定されている「max_execution_time」のdefaultは3分(180秒)ということがわかりました。
エラー回避の方法
「memory_limit」や「upload_max_filesize」等もチェックした上で、該当サーバーの設定値の中で最も可能性が高いと判断した「max_execution_time」の値を変更しました。
Xserverの「memory_limit」や「upload_max_filesize」は1G Byteと大きめです。
php.ini設定:「max_execution_time」をdefault値(180秒)の10倍(1,800秒)に変更
この変更により、ファイルサイズが大きめの動画をアップする場合においても、エラーになることは無くなりました。
まとめ
『サーバーから予期しないレスポンスがありました。』というエラーが表示される場合において、今回は「php.ini設定:「max_execution_time」」の値を大きくし、タイムアウトになる時間を延ばすことでエラー表示されなくなることを確認できました。
但し、契約しているレンタルサーバーの仕様によってはメモリ容量やファイルサイズなどのハードウェアリソース起因によるエラーも十分考えられるので、サーバーの仕様を理解した上でパラメーターを編集するようにしましょう。その点、Xserverは安心です。
ホームページの作成については、↓こちらの記事が参考になりますよ!
最後まで読んで頂き、ありがとうございました!