WordPress管理画面のメディアページから画像ファイルをアップした時にFatal error: Maximum execution time of 30 seconds exceeded in…のようなエラーが表示され、アップロードできない場合の原因と対処法をまとめました。
Maximum execution time of 30 seconds exceeded エラーの原因と対処法
このエラーの意味はPHPスクリプトのタイムアウトです。画像をアップロードしたけど、規定時間内(上記エラーだと30秒以内)に処理が終わらなかったことが原因です。
最大アップロードサイズが30MBと大きい場合でも、アップロードとその他の処理に時間がかかればタイムアウトしてしまいます。
Maximum execution timeの値を変更してみる
php.iniや.htaccessにタイムアウト時間を指定(max_execution_timeの値を変更)することで解決します。また、共用サーバーの中にはコントロールパネルからphp.iniの値を変更できる所もあります。php.ini
php.iniを直接編集できる場合は、max_execution_time
の値を30から60や120などへ変更します。
1 |
max_execution_time = 120 |
ちなみに、max_execution_time = 0でタイムアウトをさせないようにする(時間無制限)こともできますが、共用サーバーを利用している場合は特にですが、サーバーに大きな負荷をかけるような設定変更は控えた方が良いと思います。
.htaccess
.htaccessファイルに以下のように書いてあげてもOKです。
1 |
php_value max_execution_time 120 |
PHPファイル
特定のページだけ時間を制御したい場合は、PHPファイルの先頭に以下のような記述をします。
1 2 3 |
<?php set_time_limit(120); ?> |
サーバーの管理画面から値を変更
管理画面(コントロールパネル)からphp.iniのmax_execution_timeの値を変更することができる共用サーバーもあります。わたしの場合、XサーバーにインストールしたWordPressで今回のエラーが発生したので、Xサーバーを例に変更の手順を紹介させていただきます。まずはコンパネ(サーバーパネル)にログインし、
PHPのメニューから「php.ini設定」をクリックします。
登録されたドメイン一覧で「選択する」リンクをクリックし、
設定対象ドメインが正しいことを最終確認した上で、php.ini設定メニューから「php.ini設定変更」をクリックします。
「その他の設定」の中にある
max_execution_time
の値を、30から60や120などに変更します。
コメント