検索
ホームページバックエンド開発PHPチュートリアルini_set('memory_limit', '128M') および php.inimemory_limit によって引き起こされる問題の詳細な紹介

症状


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

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


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

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

<?php phpinfo(); ?>

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

注: このメソッドを使用して、memory_limit だけでなく、php の他のパラメータ設定を表示することもできます


memory_limit は何に設定する必要がありますか?

これはアプリケーションの要件に完全に依存します。たとえば、WordPress ではコア コードを実行するために 32MB が必要です。 Drupal 6 では、この値が少なくとも 16MB である必要があり、32MB に設定することをお勧めします。多数のプラグイン、特に画像処理を必要とするプラグインをインストールする場合は、128MB 以上のメモリが必要になる場合があります。


memory_limit の設定方法


方法 1: php.ini

最も簡単または最も一般的な方法は、php.ini

を変更することです

1. まず、自分の環境に効果的な php.ini ファイルを見つけます。 Web サイトにはさまざまな場所で PHP パラメータを設定できるため、正しい設定ファイルを見つけて変更を加えることが最初のステップです。上記の方法で php ファイルを作成し、その構成パラメータを表示すると、「ロードされた構成ファイル」項目が表示されます。例を次に示します。 Linux ユーザーの場合は、「php -i」を実行できます。 | 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_valuememory_limit 128M; 128M を設定したい値に変更できます

方法 3: 実行時に php のメモリ設定を変更します

次のコマンドライン。


ini_set('memory_limit','128M');

Memory_limit の変更に失敗しました

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

本番環境でのトラブルシューティングの例


現象の説明:

本番環境ではサービスがありませんPHP スクリプトの実行中に、(スクリプトの内容には 5000 個のファイルのフェッチが含まれています) ことがわかりました。ローカル テストでは速度が非常に遅くなり、サーバー負荷の問題、データベースの問題、サーバー ネットワークの問題をトラブルシューティングして解決した後、数分で完了した作業が 2 時間以上かかりました。 php.ini 設定ファイルのリソース制限が原因かと思い、memory_limit のデフォルト値を 128M から 1024M に変更して元のスクリプトを再実行したところ、大幅に速度が向上しました。このパラメータの意味。


変更を加えた後、再起動する必要がありますか?

PHP にはデーモンがないため、理論上、変更を加えれば新しい設定ファイルがすぐに使用されます。


この値はどれくらいの大きさにすべきでしょうか?

アプリケーションの要件に応じて設定することをお勧めします。物理サーバーの場合、メモリが十分に大きい場合は、メモリを 512M または 1024M などのより大きなサイズに制限することをお勧めします。VPS の場合は、128 (デフォルト) または 64M 以下に制限される場合があります。特に複数の php fast-cgi が有効になっている場合、サーバーが停止する可能性があります。


パラメータ構文

memory_limit integer

このコマンドは、スクリプトが適用できるメモリの最大バイト数を設定します。

コマンド効果

これは、不適切に書かれたスクリプトがサーバー上の利用可能なメモリをすべて消費するのを防ぐのに役立ちます。


phpchina フォーラムで、誰かが次のように言いました:

Memory_limit は、PHP がメモリを使用するときにスペースを設定するためのもので、通常はメモリの 4 分の 1 に設定されており、これで十分です。たとえば、512M メモリは 128M に設定され、1G メモリは 256M に設定されます。

システム、データベース、その他のプログラムもメモリ領域を必要とするため、設定が大きすぎるとシステムの速度に影響します。通常、システムとデータベースのメモリ領域は独自に割り当てられます。


3つの修正方法を添付します

単語分割プログラムに問題がある可能性があります。検索フィールドが漢字 10 文字を超えると、次のようなエラーが表示されます

致命的なエラー: 許容メモリ サイズ 2345643 バイトが使い果たされました

オンラインで解決策を見つけました。方法は3つあります。

1. PHP.INI を直接変更します

memory_limit = 16M ;

しかし、私の変更は役に立ちません。サーバーを再起動する必要があると言われています。しかし明らかに。私の場合は仮想ホストです。したがって、独立したホストがある場合は、次のように変更できます。

2. .htaccess

を変更します

php_valuememory_limit 16M

変更直後は500エラーが表示されます。ホストプロバイダーによって制限されている可能性があります

3. プログラムページで直接変更します。

ini_set('memory_limit', '16M');

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

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)