この問題を解決するには、まずプログラムに過剰なメモリが割り当てられているかどうかを確認する必要があります。プログラムに問題がない場合は、次の方法で PHP のメモリ制限 (memory_limit) を増やすことができます。
phpのメモリ制限値を確認する
この値を確認するには、view-php-info.phpなどの空のphpファイルを作成する必要があります。次に、その中にコードを貼り付けます。
このスクリプトを 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 を使用している場合は、次のコマンドを実行します。
場合によっては、php.ini をプライベートに変更することが許可されない場合があります。たとえば、仮想ホスティング サービスを購入したが、サービス プロバイダーがこのファイルの変更を許可していない場合です。次に、memory_limit の値を増やすための他の方法を検討することもできます。
方法 2: .htaccess
注: このメソッドは、php が Apache モジュールで実行される場合にのみ有効です。 Web サイトのルート ディレクトリで「.htaccess」ファイルを見つけます。ファイルがない場合は、自分で作成できます。次に、次の設定を追加します
php_valuememory_limit 128M; 128M を任意の値に変更できます
方法 3: 実行時に php のメモリ設定を変更します
次のコマンドラインを php コードに追加します。
ini_set('memory_limit','128M');
memory_limitの変更に失敗しました
仮想ホストを使用している場合、memory_limitの値の変更に失敗する可能性があります。これに対処する方法については、サービス プロバイダーに問い合わせる必要があります。通常、サービス プロバイダーでは設定できる最大値が制限されているか、まったく変更できません。その環境が本当に要件を満たせない場合は、別のホスティングプロバイダーへの変更を検討することをお勧めします。
以上、幼少期の記憶の内容も含めてPHPのmemory_limit制限を変更する方法を紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。