ホームページ >バックエンド開発 >PHPチュートリアル >PHPのmemory_limit制限を変更する方法

PHPのmemory_limit制限を変更する方法

伊谢尔伦
伊谢尔伦オリジナル
2016-12-02 09:24:001624ブラウズ

PHP プログラムを実行すると、通常、「致命的エラー: 許容メモリ サイズ xxxxxx バイトが使い果たされました」というエラーが発生します。これは、PHP スクリプトがメモリを大量に使用し、システムで設定された最大許容メモリを超えていることを意味します。

この問題を解決するには、まずプログラムが過剰なメモリを割り当てているかどうかを確認する必要があります。プログラムに問題がない場合は、次の方法で PHP のメモリ制限 (memory_limit) を増やすことができます。

phpのメモリ制限値を確認する

この値を確認するには、view-php-info.phpなどの空のphpファイルを作成する必要があります。次に、その中にコードを貼り付けます。

<?php phpinfo(); ?>

このスクリプトを Web サーバーに置き、ブラウザで呼び出します。現時点では、以下に示すように、PHP 環境設定に関する情報を確認できます。その一部は「memory_limit」に関するものです:

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 ファイルを作成し、その構成パラメータを表示すると、「ロードされた構成ファイル」項目が表示されます。例を次に示します。

PHPのmemory_limit制限を変更する方法

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(&#39;memory_limit&#39;,&#39;128M&#39;);

Memory_limitの変更に失敗しました

仮想ホストを使用している場合、memory_limitの値の変更に失敗する可能性があります。これに対処する方法については、サービス プロバイダーに問い合わせる必要があります。通常、サービス プロバイダーでは設定できる最大値が制限されているか、まったく変更できません。その環境が本当に要件を満たせない場合は、別のホスティングプロバイダーへの変更を検討することをお勧めします。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。