画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

トラブルシューティング

先日、いつものようにブログ記事を投稿しようとしていた時の事でした。記事内で使用する画像をアップロードしようとするとHTTPエラーが表示されてアップロードできない事態に陥りました。そのごWEBで調べて解決できたのですが、皆様が同じ問題に陥った時にすぐに解決できるよう手順を載せておきます。

メディア画面からアップすると詳しいエラー内容が見れる!

記事投稿画面内から画像をアップロードしようとしたときのエラーは「HTTPエラー。」でした。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

メディア画面から同じ画像をアップロードしようとすると上記とは別の別の詳細なエラーメッセージが出て、解決の糸口がつかめるのでぜひ試してみてください。メディア画面からのアップロードの方法も解説しておきます。

メディアページから画像のアップロードを試みる

WordPressのダッシュボードから②「メディア」、③「新規追加」を選択します。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

メディアのアップロード画面で④「ファイルを選択」から画像を追加します。また同じエリアに画像をドラッグすることで追加することも出来ます。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

画像アップロード時にエラーが表示されます。もし、下記のような⑤「Fatal error: Maximum execution time of 30 seconds exceeded in」と言うメッセージが表示されたらこの記事内の手順で解決できます。

他のメッセージの場合はこの出力されたエラーメッセージで検索をかけると解決方法が見つかるかも知れません。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

ちなみに「Fatal error: Maximum execution time of 30 seconds exceeded in」の意味は「最大実行時間が30秒を超えました。」と言う内容です。サーバサイドでの処理時間のタイムアウトです。

サーバ側でタイムアウトまでの処理時間を30秒より長くすることでこのエラーを回避できます。

php.iniのmax_execution_timeをデフォルトの30秒から60秒に変更する

原因はphp.iniに記載されているmax_execution_timeと言うパラメータが30(秒)と短いためです。このパラメータはサーバ側で実行するスクリプトが設定した時間以上かかるとタイムアウトさせています。

無駄に長くしすぎるのは無限ループや高負荷なスクリプトが長時間実行されないようにある程度の短さの秒数にする必要があります。

当手順内ではいったん60秒に修正しています。

エックスサーバーならサーバーパネルから簡単にphp.iniを修正できる

エックスサーバの場合はphp.iniの修正がGUIメニューで準備されています。サーバパネルから⑥「php.ini設定」を開きます。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

ドメイン選択画面で⑦「設定対象のドメイン名」を選択します。通常は独自ドメイン名を選択することになります。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

php.ini設定画面が開くので⑧「php.ini設定変更」タブを選択します。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

画面を少しスクロールし、中段の⑨「max_execution_time」を30から60に書き換えます。

変更ができれば⑩「確認画面へ進む」を選択します。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

確認画面が表示されるので⑪「max_execution_time」が60に変わっていることを確認したら

⑫「変更する」ボタンを選択します。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

これで必要なphp.iniの変更は以上です。

最後に動作確認をしよう

最初と同じようにメディアページから画像のアップロードをしてみます。下図⑬のように問題なくアップロードできれば対応完了です。お疲れさまでした。

画像アップロード時の「HTTP エラー」の対処方法はphp.iniの変更

コメント