PR

PHPでメモリーエラーやタイムアウトエラーを解決する方法

PHPでメモリーエラーやタイムアウトエラーを解決する方法 プログラミング
PHPでメモリーエラーやタイムアウトエラーを解決する方法

phpでシステム開発をしていると、

  • メモリーエラーが表示される(システムによっては真っ白な画面)
  • 長い読み込み中の後にエラーが表示される(システムによっては真っ白な画面)

こういった場合に遭遇する事が多いと思います。

いずれも重たい処理や不要な処理が原因となっている事が多く、コードかDBのチューニングを行えば解決できる事が多いです。

ただ開発中において、チューニングよりまずは先に開発を進めたい時ってありますよね。

そんな時の解決方法を紹介したいと思います。

このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。

もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!

ini_setを使ってメモリーエラーやタイムアウトエラーを解決

解決するにはいくつか方法があるのですが、一番手っ取り早いのは『ini_set』を使う方法かと思います。

ini_set("設定オプション", "値");

使い方はこんな感じで、動作させたい(エラーになってしまう)画面のできれば一番最初に記述しましょう。

ただしあくまでも一時的な対策である為、頻繁にメモリーエラーやタイムアウトエラーが発生する場合には、必ずチューニングも行うようにしましょう。

PHPでメモリーエラーを解決する方法

ではPHPでメモリーエラーを解決する方法ですが、ini_setを使って以下のように記述します。

ini_set("memory_limit","1024M");

このようにする事で、メモリー使用量の最大値を1024Mに変更できます。

この例では1024Mにしてますが、頻繁に表示する画面でこれほどまで処理の負荷がかかってしまう場合は、おとなしくチューニング作業を進めましょう。

var_dump(ini_get("memory_limit"));

また、このようにする事で設定値を確認する事が出来ます。

その為、

var_dump(ini_get("memory_limit"));
ini_set("memory_limit","1024M");
var_dump(ini_get("memory_limit"));

このようにし、設定前後の値を確認するようにもしましょう。

PHPでタイムアウトエラーを解決する方法

ではPHPでタイムアウトエラーを解決する方法ですが、こちらもini_setを使って以下のように記述します。

ini_set("max_execution_time","180");

このようにする事で、タイムアウトの最大値を180秒に変更できます。

この例では180秒にしてますが、こちらも頻繁に表示する画面でこれほどまで処理の時間がかかってしまう場合は、おとなしくチューニング作業を進めましょう。

こちらも設定値を確認する事ができるので、

var_dump(ini_get("max_execution_time"));
ini_set("max_execution_time","180");
var_dump(ini_get("max_execution_time"));

このようにし、設定前後の値を確認するようにもしましょう。

まとめ

この記事のおさらい
  • PHPでini_setを使ってメモリーエラーを解決しよう
  • PHPでini_setを使ってタイムアウトエラーを解決しよう
  • ただし一時的な解決でありチューニングも行うようにしよう

いかがだったでしょうか。

PHPでシステム開発をしている人にとっては、あるあるかと思いますが。これからPHPを覚える人はぜひ参考にしてみてください。

ただしあくまでも一時的な解決方法であり、一番はチューニング作業が大事となる事を忘れずに。

ちなみに、WordpressもLinuxも利用できるレンタルサーバーはエックスサーバーがオススメです。