ホームページ  >  記事  >  バックエンド開発  >  PHPにメモリ制限がある場合はどうすればよいですか?

PHPにメモリ制限がある場合はどうすればよいですか?

墨辰丷
墨辰丷オリジナル
2018-05-15 16:23:008350ブラウズ

この記事では主にPHPでメモリが制限されている場合の対処法を紹介します。興味のある友人は参考にしていただければ幸いです。

昨日、サーバー側でプログラムをデバッグしているときに、突然ウェブサイトが表示されました致命的なエラー: 許可されたメモリサイズ...、その時は混乱しましたが、すぐに正常に戻り、それは私の好奇心を刺激しただけでなく、 , Baidu 原因を突き止めたところ、単一のスクリプトがメモリを過剰に使用していることが原因であることがわかりました。以下、転載記事です。

PHP プログラムを実行すると、通常、「致命的なエラー: 許容メモリ サイズ xxxxxx バイトが使い果たされました」というエラーが発生します。これは、PHP スクリプトがメモリを使用しすぎて、システムの最大メモリ設定を超えていることを意味します。この問題を解決するには、まずプログラムに過剰なメモリが割り当てられているかどうかを確認する必要があります。プログラムに問題がない場合は、次の方法で PHP のメモリ制限 (memory_limit) を増やすことができます。

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

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

<?php 
phpinfo();
 ?>

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

PHPにメモリ制限がある場合はどうすればよいですか?

注: このメソッドを使用して、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にメモリ制限がある場合はどうすればよいですか?

    Linux ユーザーの場合は、「php -i | php」を実行します。 grep ロードされた設定ファイル」を実行して、対応する設定ファイルを見つけます。 Windows ユーザーの場合は、php インストール ディレクトリの php.ini を変更してみてください。

  2. php.ini を編集します

    php.ini で、「memory_limit」項目を見つけます。ない場合は、このパラメータをファイルの最後に自分で追加できます。以下にいくつかの設定例を示します

    memory_limit = 128M ; 可以将128M改为任何你想设置的值

    ファイルを保存します

  3. Webサーバーを再起動します

    WebサーバーがApacheを使用している場合は、次を実行します

    httpd restart

場合によっては、変更が許可されない場合がありますphp をプライベートで。たとえば、仮想ホスティング サービスを購入したが、サービス プロバイダーがこのファイルの変更を許可していない場合です。次に、memory_limit の値を増やすための他の方法を検討することをお勧めします。

方法 2: .htaccess

注: この方法は、Apache モジュールで php が実行される場合にのみ有効です。

Web サイトのルート ディレクトリで「.htaccess」ファイルを見つけます (ない場合)。自分で作成できます。次に、次の設定をそれに入れます

php_value memory_limit 128M ; 可以将128M改为任何你想设置的值

方法 3: 実行時に PHP のメモリ設定を変更する

次のコマンドラインを PHP コードに追加するだけです。

ini_set(&#39;memory_limit&#39;, &#39;128M&#39;);

Memory_limitの変更に失敗しました

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

関連する推奨事項:

PHPのメモリ解放とガベージコレクションの詳細な説明


PHPのメモリリークの詳細な説明

PHPのメモリ管理の詳細な説明

以上がPHPにメモリ制限がある場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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