PHP プログラムを実行すると、通常、「致命的エラー: 許容メモリ サイズ xxxxxx バイトが使い果たされました」というエラーが発生します。これは、PHP スクリプトがメモリを大量に使用し、システムで設定された最大許容メモリを超えていることを意味します。
この問題を解決するには、まずプログラムが過剰なメモリを割り当てているかどうかを確認する必要があります。プログラムに問題がない場合は、次の方法で PHP のメモリ制限 (memory_limit) を増やすことができます。
phpのメモリ制限値を確認する
この値を確認するには、view-php-info.phpなどの空のphpファイルを作成する必要があります。次に、その中にコードを貼り付けます。
<?php phpinfo(); ?>
このスクリプトを Web サーバーに置き、ブラウザで呼び出します。現時点では、以下に示すように、PHP 環境設定に関する情報を確認できます。その一部は「memory_limit」に関するものです:
注: このメソッドを使用して、PHP のパラメータ設定だけでなく、PHP の他のパラメータ設定を表示することもできます。 Memory_limit
memory_limit はどのくらいに設定する必要がありますか?
これはアプリケーションの要件に完全に依存します。たとえば、WordPress ではコア コードを実行するために 32MB が必要です。 Drupal 6 では、この値が少なくとも 16MB である必要があり、32MB に設定することをお勧めします。多数のプラグイン、特に画像処理を必要とするプラグインをインストールする場合は、128MB 以上のメモリが必要になる場合があります。
memory_limit の設定方法
方法 1: php.ini
最も簡単または最も一般的な方法は、php.ini を変更することです
1) まず、Web サイトに効果的な php.ini ファイルを見つけます。場所はたくさんあるためです。 PHP パラメーターを設定できる場所では、正しい構成ファイルを見つけて変更を加えることが最初のステップです。上記の方法を使用して php ファイルを作成し、その構成パラメータを表示すると、「ロードされた構成ファイル」項目が表示されます。例を次に示します。
Linux ユーザーの場合は、「php -i | php」を実行します。 grep ロードされた設定ファイル」を実行して、対応する設定ファイルを見つけます。 Windows ユーザーの場合は、php インストール ディレクトリ内の php.ini を変更してみてください。
2) php.ini を編集する php.ini で「memory_limit」項目を見つけます。ない場合は、このパラメータをファイルの最後に追加できます。以下にいくつかの設定例を示します
memory_limit = 128M ; //可以将128M改为任何你想设置的值
ファイルを保存します
3) Web サーバーが Apache を使用している場合は、次のコマンドを実行します。
httpd restart
場合によっては、php.ini をプライベートに変更することが許可されない場合があります。たとえば、仮想ホスティング サービスを購入したが、サービス プロバイダーがこのファイルの変更を許可していない場合です。次に、memory_limit の値を増やすための他の方法を検討することもできます。
方法 2: .htaccess
注: このメソッドは、php が Apache モジュールで実行される場合にのみ有効です。 Web サイトのルート ディレクトリで「.htaccess」ファイルを見つけます。ファイルがない場合は、自分で作成できます。次に、次の設定をそれに追加します:
php_value memory_limit 128M ; //可以将128M改为任何你想设置的值
方法 3: 実行時に PHP のメモリ設定を変更する
次のコマンドラインを PHP コードに追加するだけです。
ini_set('memory_limit','128M');
Memory_limitの変更に失敗しました
仮想ホストを使用している場合、memory_limitの値の変更に失敗する可能性があります。これに対処する方法については、サービス プロバイダーに問い合わせる必要があります。通常、サービス プロバイダーでは設定できる最大値が制限されているか、まったく変更できません。その環境が本当に要件を満たせない場合は、別のホスティングプロバイダーへの変更を検討することをお勧めします。