WPのPHP memory_limitは、デフォルト値は40Mらしい

WPのPHP memory_limitは、デフォルト値は40Mらしい

とあるWP製サイトがPHPのメモリ不足でエラーを吐いていました。

PHP Fatal error: Out of memory (allocated ****) (tried to allocate **** bytes)

php.iniで設定されている値よりもかなり少ないメモリでエラーを吐いてしまっているので、その原因を調べました。

WPのPHP memory_limitデフォルト値

調べた結果、WPのPHP memory_limitデフォルト値は、シングルサイト40M、マルチサイト64M、管理画面256Mに設定されているようです。 これがエラーの原因ですね。

memory_limitの設定箇所

/wp-includes/default-constants.php の32行目辺りにmemory_limitを設定するスクリプトがありました。

memory_limit の設定方法

サイトのPHP環境設定(php.iniなど)でWP_MEMORY_LIMITの設定値よりも大きなサイズが指定されている場合はWP_MEMORY_LIMITの設定値は無効となってしまうので、

php.iniに


か、

.htaccessに


wp-config.phpに

を記述することでWPのmemory_limitの設定が可能になります。 また、「512M」は、自分の使いたいメモリの値にしてください。

memory_limit 確認方法

以下のコードで、きちんと設定されているか、現在設定されているmemory_limitを表示することで確認することができます。

終わりに

WPで大きな容量のファイルをインクルードする時などには、PHPのメモリ制限には注意しないといけませんね。