仮想ホスト PHP の
Memory_limit は、単一の PHP スクリプトの 1 回の実行で使用可能な最大メモリ制限です。デフォルトの制限は 256MB で、最大値は 512MB に調整できます。以下のエディタでは、memory_limit を使用して PHP プロセスのメモリ使用量を制限する方法を紹介します。
memory_limit 名前が示すように、PHP プロセスのメモリ使用量を制限します。例:
magento2 のシステム要件には、PHP のmemory_limit に関する制限があり、512M 未満にすることはできません。 (デフォルト値は128Mです。変更しないとmagentoのバックグラウンド処理ロジックが正常に実行されません)
PHP公式サイトの説明を見てください
#必須memory_limit の値が大きいほど、つまり、単一の PHP プロセスが占有するメモリが多くなるほど、システムが同時に処理できるリクエストが少なくなることに注意してください。たとえば、2G メモリを搭載したマシンの memory_limit が 128M に設定されている場合、同時に最大 16 個のリクエストを処理でき、memory_limit が 256M に設定されている場合、最大 8 個のリクエストを同時に処理できます。 resource_limit を 512M に設定すると、同時に最大 4 つのリクエストを処理できます。 もちろんそうではありません。memory_limit の主な目的は、プログラムのバグや無限ループが大量のメモリを占有し、システムのダウンタイムを引き起こすのを防ぐことです。多数のサードパーティのプラグインやコードを導入する場合、メモリを制限することが非常に必要になります。 Memory_limit は、各 PHP プロセスが固定量のメモリを占有するようにしますか? それとも、単に割り当てられたメモリの上限なのでしょうか? アイデアをテストし、memory_limit を 10M に設定し、PHP リクエストで 2M/20M 文字列を初期化し、システム プロセスでのメモリ使用量を確認します。 Nginx 設定これは、スクリプトが割り当てることができるメモリの最大量 (バイト単位)。これにより、不適切に作成されたスクリプトがサーバー上の利用可能なメモリを使い果たすことを防ぐことができます。メモリ制限を設けないようにするには、このディレクティブを -1.
## に設定することに注意してください。
server { listen 8093; root /home/zhongwei/work/test/memory_limit/; index index.php index.html index.htm; server_name localhost; location / { # try_files $uri $uri/ =404; try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_param PHP_VALUE "memory_limit = 10M"; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } }PHP テストファイル
<?php $char_count = 2; $M = 1024 * 1024; echo sprintf("Current memory_limit value is: %s.", ini_get('memory_limit')); echo sprintf('<br/>Amount of memory allocated to PHP: %0.3fM.', memory_get_usage() / $M); $s = str_repeat("a", $M * $char_count); //sleep(30); echo sprintf('<br/>Amount of memory allocated to PHP: %0.3fM.', memory_get_usage() / $M); echo sprintf('<br/>Total memory allocated from system: %0.3fM.', memory_get_usage($real_usage=true) / $M); echo '<br/>success';テスト結果$char_count が 2 の場合、2M のメモリを占有する文字列が初期化されて出力されます。結果は
Current memory_limit value is: 10M. Amount of memory allocated to PHP: 0.344M. Amount of memory allocated to PHP: 2.348M. Total memory allocated from system: 4.004M. success$char_count は 20、つまり 20M のメモリを占有する文字列が初期化され、出力結果は
Current memory_limit value is: 10M. Amount of memory allocated to PHP: 0.346M.になります。HTTP ステータス コードは 500 であることに注意してください。これは、次のことを意味します。文字列が実行されます。初期化中に、PHP プロセスがシステムによって強制終了されました。 Nginx error.log に記録されたログ情報を確認してください。log
2017/03/01 10:41:23 [error] 6903#6903: *39 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 10485760 bytes exhausted (tried to allocate 20971552 bytes) in /home/zhongwei/work/test/memory_limit/index.php on line 8 PHP message: PHP Stack trace: PHP message: PHP 1. {main}() /home/zhongwei/work/test/memory_limit/index.php:0 PHP message: PHP 2. str_repeat() /home/zhongwei/work/test/memory_limit/index.php:8" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "localhost:8093"実際のテスト結果では、memory_limit は各 PHP プロセスにメモリ使用量を割り当てるのではなく、各 PHP プロセスのメモリ使用量の上限を制限するだけであることがわかります。プロセス、固定メモリ。したがって、memory_limit の設定が大きくなったために同時実行数が減少することはありません。 memory_limit のデフォルト値は何ですか PHP 5.2 より前は 8M
- PHP 5.2 は 16M
- PHP 5.2 以降のバージョンは 128M
- 推奨学習: php ビデオ チュートリアル
以上がMemory_limitを使用してPHPプロセスのメモリ使用量を制限する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
