mixhostでWordPressのPHPメモリ上限を上げる方法

mixhostでcPanelの「MultiPHP INI Editor」を使って、WordPressのメモリ上限を上げる方法についての設定・備忘録記事です。

WordPressで使用するPHPのメモリ上限は、デフォルト設定だと意外と低いらしく、処理の重いプラグインやページで表示が遅くなったり画面が真っ白になったり、場合によってはメモリ制限エラーが出ることもあるらしいです。

ということで、デフォルト設定のままだったPHPメモリ上限を上げてみました。当サイトで利用しているレンタルサーバー『mixhost』の場合は、cPanelのソフトを使って簡単に設定することができます。

スポンサーリンク
スポンサーリンク

PHPメモリ上限について

メモリ上限の確認

サイトで使用しているWordPressのメモリ上限は、「管理画面」→「ツール」→「サイトヘルス」→「情報タブ」→「サーバー」で確認可能。

サイトヘルスのサーバー情報

変更前

サイトヘルスのサーバー情報

変更後

WordPress5.5のデフォルト値だと「PHPメモリ上限:128M、PHPメモリ上限(管理画面のみ):256M」になっていた。

安定・快適な設定値の目安はよくわかりません(環境によると思う)。
mixhostのスタンダードプランだと割り当てメモリは4GBで余裕があるぽいので、とりあえず1024M(1GB)に設定してみました。
しかし、cPanelのメモリ使用量を見てもそんなに使っていないようなので、他サイトでもよく見かける512MBくらいあれば大丈夫ぽい?

メモリ上限の設定方法

WordPressで使用するPHPメモリ上限の設定方法は複数あり、[memory_limit]というパラメータで指定される。

  • php.ini
    • ドメインのルートディレクトリ
  • htaccess
    • ドメインのルートディレクトリ
  • wp-config.php
  • default-constants.php
    • ~/wp-includes/default-constants.php

いずれかのファイルに下記のコードを追加/変更することで設定を変更可能。

下記コードの数値はメモリ上限を「512MB」にする場合の設定。数値は任意。
書式は「512M」のような型で、「~MB」はNG、「~M」でOK。
設定値は、PHP環境設定の「php.ini」が優先される。php.iniよりも低い数値が他のファイルに設定されていた場合、それは無効になる。

php.ini

memory_limit = 512M

htaccess

php_value memory_limit 512M

wp-config.php

define('WP_MEMORY_LIMIT', '512M');

default-constants.php

// Define memory limits.
if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
define( 'WP_MEMORY_LIMIT', $current_limit );
} elseif ( is_multisite() ) {
define( 'WP_MEMORY_LIMIT', '512M' );
} else {
define( 'WP_MEMORY_LIMIT', '512M' );
}
}

if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
} elseif ( -1 === $current_limit_int || $current_limit_int > 536870912 /* = 512M */ ) {
define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
} else {
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
}
}

 // Set memory limits.
$wp_limit_int = wp_convert_hr_to_bytes( WP_MEMORY_LIMIT );
if ( -1 !== $current_limit_int && ( -1 === $wp_limit_int || $wp_limit_int > $current_limit_int ) ) {
ini_set( 'memory_limit', WP_MEMORY_LIMIT );
}
  • 6・8・18行:「512M」を任意の数値に変更
    • 6行目はマルチサイト時の設定
  • 15行:バイト表示の「536870912」を任意の数値に変更
  • [WP_MEMORY_LIMIT]:メモリ上限
  • [WP_MAX_MEMORY_LIMIT]:管理画面でのメモリ上限
「default-constants.php」は、WordPressの更新で上書きされる(=更新のたびに修正が必要)。

参考

手っ取り早いのは「php.ini」を使う方法みたいです。
使用しているサーバーの設定でphp.iniを変更出来ない場合は、他の方法を使うって感じでしょうか。

mixhostでの変更方法

mixhostでは、cPanelの「MultiPHP INI Editor」を使ってphp.iniを簡単に編集/設定できる。

php.iniの編集はサポート対象外の機能だそうです。自己責任でどうぞ。
jp17以降のサーバーは「MultiPHP INI Editor」、jp16以前のサーバーは「Select PHP Version」の「Switch To PHP Options」を利用するとのことです。
参考:php.iniの編集方法 – mixhost ヘルプ&サポート

cPanelにアクセス

mixhostのcpanel「MultiPHP INI Editor」

MixHost」→「マイページ」→「有効なサービス」→「cPanel」→「ソフトウェア」→「MultiPHP INI Editor」。

cPanelにログインしたら上部の検索ボックスに「php」などのキーワードを入力すると「MultiPHP INI Editor」を素早く見つけられます。

MultiPHP INI Editorで設定

基本モード

ディレクトリ/ドメインの選択

MultiPHP INI Editorを開いたら、「基本モード」タブのプルダウンメニューから設定を適用したいドメインやディレクトリを選択。

memory_limitの設定

次にページを下にスクロールしていって、一覧にある「memory_limit」の項目で数値を変更。あとは「適用」ボタンを押せば設定完了。

メモリ上限を設けず無制限にしたい場合は「-1」を入力。
php.iniが存在しない場合は、対象のディレクトリに作成される。
場所は[/public_html/ドメイン名/php.ini]

デフォルト値は「128M」、2倍なら「256M」、4倍なら「512M」、8倍なら「1024M」といった具合で適当に。

使用しているサーバー側の上限もあると思うので環境次第と思われます。

編集モード

MultiPHP INI Editoの編集タブ

編集モードでは、エディターで直接編集が可能。編集したら「保存」ボタンで反映される。

設定が終わったら、管理画面のサーバー情報で設定が反映されているか確認します。

補足/注意

基本モードでは適用ボタンを押すと「memory_limit」以外の設定もいっしょに適用されるため、少し注意が必要かもしれない。

デフォルト状態の設定で少し気になったのは以下。

  • max_execution_time = 30
    • スクリプト自身の実行時間の制限秒数(デフォルト:90秒)
    • 短すぎると各種の更新/実行でタイムアウトが発生しやすくなる
    • タイムアウト防止のために120に変更
  • max_input_time = 60
    • スクリプトで入力を受け付ける最大秒数(デフォルト:60秒)
    • ファイルアップロードの時間も含まれる
    • 大きいファイルや多数のファイルに備えて120に変更
上記2項目は、処理に時間が掛かりすぎるのを制限する機能なので、設定を長くしすぎるのも良くないらしいです。

まとめ

管理画面やサイトの表示が重い・遅い時があったりしたので、今回のメモリ設定に起因しているのかは分かりませんが、とりあえず上限を上げて余裕を持たせてみました。

メモリ上限を上げるのは、管理画面やサイトの表示が重い場合、メモリ不足で「Fatal error: Allowed memory size of ~ bytes exhausted」や「Fatal error: Out of memory」などのエラーが出る場合の対処にもなるようです。

サイトの調子が悪い時は、試してみるのもいいかもしれませんね。

スポンサーリンク
スポンサーリンク
WordPress
この記事をシェアする
どんぱっぱをフォローする
スポンサーリンク
となはざな
コメントの通知/購読設定
受け取る通知
guest
0 Comments
Inline Feedbacks
View all comments
タイトルとURLをコピーしました