管理しているWordPress を使ったサイトで、先日、3.2.1–ja にバージョンアップした際に、
下記のようなエラーメッセージが出たサイトがあり、簡単ではありますがその時行った対処方法をまとめておきました。
class-http.php のエラーメッセージに関することで、それぞれが「対応できた!」というような事柄を上から順番に試してみました。
エラーメッセージ
Fatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 4409104 bytes) in /home/○○○/○○○/○○○/○○○/○○○/wp-includes/class-http.php on line 1420
[サーバーでPHPメモリー(memory_limit)が変えられない時の対処法]
①wp-config.php へ、PHP 割り当てメモリの増加を記述
●PHP への割り当てメモリ増加
» wp-config.php の編集 – WordPress Codex 日本語版
1 |
②class-http.phpにスクリプトがパーサにより強制終了されるまでに許容される最大時間を秒単位で指定
デフォルトでは30 に設定されていることが多いようです。
●fatal error wp-includes\class-http.php on line 1402 (6 posts)
» WordPress › Support » fatal error wp-includes\class-http.php on line 1402
ファイルの場所→/wp-includes/class-http.php
class-http.phpの先頭に記述。
1 2 |
[サーバーで設定が変えられる時(コマンドライン抜き)]
通常のレンタルサーバーの場合、任意での設定ができないかも知れませんが、
まずはサポートセンターなどへ問い合わせをしてみるというのも、有りかと思います。
③max_execution_timeをデフォルトの30から300へ変更
●Fatal Error (5 posts)
» WordPress › Support » Fatal Error
※スレッドでは”600″となってます。
【max_execution_time】
スクリプトがパーサにより強制終了されるまでに許容される最大の時間。
» PHP: 実行時設定 – Manual
④memory_limit を64M に変更
もともと40M であったmemory_limit を、64M に変更してみました。
【memory_limit】
スクリプトが確保できる最大メモリをバイト数。
» PHP: コア php.ini ディレクティブに関する説明 – Manual
今回は上記を順番に試し、最終的にはmemory_limit の変更でエラーメッセージが表示されず更新が行えましたが、
この方法ではご利用のサーバーの状況に左右されるため、解決への参考程度となってしまうかも知れません。