PHP7 の php.ini、php-fpm、www.conf 設定の詳細な説明
extension_dir=""
- PHP 拡張ライブラリのパスを設定します
expose_php = Off
- PHP 情報が http ヘッダーで公開されるのを回避します
display_errors = Off
- PHP が mysql を呼び出すときにエラー メッセージを公開しないようにします
- php-fpm.conf は php -fpm プロセス サービスの構成ファイルです。以下は一般的な構成の一部です
- php-fpm.conf と www.conf の主な設定情報
pm = Dynamic
<ul>
<li> アイドル プロセスの最大数を確認します。アイドル プロセスがこの値より大きい場合、クリーンアップされます。</li>
<li>dm が static に設定されている場合、pm.max_children パラメーターのみが削除されます。有効になります。システムはパラメータで設定された数の php-fpm プロセスを開きます。 php-fpm プロセスはおそらく 20m ~ 40m のメモリを占有するため、その数値サイズ設定は物理メモリのサイズに応じて設定する必要があります。また、データベースやシステム プロセスなどの他のメモリ占有にも注意を払う必要があります。 、上記4つのパラメータの設定値を決定します! </li>
<li>dm が動的に設定されている場合、4 つのパラメータすべてが有効になります。 php-fpm の実行が開始されると、システムは pm.start_servers php-fpm プロセスを開始し、システムのニーズに応じて pm.min_spare_servers と pm.max_spare_servers の間で php-fpm プロセスの数を動的に調整します。このパラメーターでは、pm.start_servers の値が pm.min_spare_servers と pm.max_spare_servers の間にある必要があります。 </li>
</ul>
<p><code>pm.max_requests = 1000
- 各子プロセスが再起動される前に処理されるリクエストの数を設定します。
- 最大数処理されたリクエストの数 これは、多数のリクエストを処理した後に php-fpm ワーカー プロセスが終了し、マスター プロセスが新しいプロセスを再起動することを意味します。 この構成の主な目的は、プログラムが参照する PHP インタープリターまたはサードパーティ ライブラリによって引き起こされるメモリ リークを回避することです。 #これは、メモリ リークがある可能性のあるサードパーティ モジュールに非常に役立ちます。「0」に設定すると、リクエストは常に受け入れられます。PHP_FCGI_MAX_REQUESTS 環境変数と同等です。デフォルト値: 0.
pm.status_path = /status
- #FPM ステータス ページの URL。設定されていない場合、ステータス ページにアクセスできません。デフォルト値: なしmunin 監視によって使用されます
ping.path = /ping
- FPM 監視ページの ping URL。設定されている場合、ping ページにアクセスできません。このページは、FPM が有効かどうか、および要求に応答できるかどうかを外部的にチェックします。スラッシュ (/) で始まる必要があることに注意してください。
ping.response = pong
- # は、ping リクエストの戻り応答を定義するために使用されます。戻り値は HTTP 200 text/plain です。フォーマットテキスト。デフォルト値: pong.
request_terminate_timeout = 0
- 単一リクエストのタイムアウト中止時間を設定します。このオプションは、 php.ini 設定の「max_execution_time」は、特別な理由で中止されないスクリプトには役に立ちません。「0」に設定すると、「オフ」を意味します。502 エラーが頻繁に発生する場合は、このオプションを変更してみてください。
##一般的なエラーと解決策
- #request_terminate_timeout の値が 0 に設定されているか長すぎる場合、PHP スクリプトが続行される可能性があります。実行します。このように、すべての php-cgi プロセスが file_get_contents() 関数でスタックすると、Nginx PHP Web サーバーは新しい PHP リクエストを処理できなくなり、Nginx はユーザーに「502 Bad Gateway」を返します。を設定します ただし、根本原因ではなく症状を治療するには、PHP スクリプトの実行時間を最大にする必要があります。たとえば、これを 30 秒に変更すると、file_get_contents() が Web ページのコンテンツを取得するのが遅い場合、これは 150 の php-cgi プロセスが 1 秒あたり 5 つのリクエストしか処理できないことを意味し、Web サーバーが「502 Bad」を回避することも困難になります。ゲートウェイ"。解決策は、request_terminate_timeout を 10 秒または適切な値に設定するか、file_get_contents にタイムアウト パラメーターを追加することです。
max_requests パラメータの不適切な設定
max_requests パラメータの不適切な設定により、断続的な 502 エラーが発生する可能性があります:
pm.max_requests = 1000各子プロセスが再生成される前に処理されるリクエストの数を設定します。これは、メモリ リークが発生する可能性のあるサードパーティ モジュールに非常に役立ちます。「0」に設定すると、リクエストは常に受け入れられます。 PHP_FCGI_MAX_REQUESTS 環境変数と同等、デフォルト値: 0。 この設定の意味は、PHP-CGI プロセスによって処理されるリクエストの数が 500 に累積すると、プロセスが自動的に再起動されることです。
しかし、なぜプロセスを再起動するのでしょうか?
一般に、プロジェクトでは、多かれ少なかれ、PHP のサードパーティ ライブラリを使用します。これらのサードパーティ ライブラリには、メモリ リークの問題がよく発生します。PHP-CGI プロセスが定期的に再起動されない場合は、 , メモリ使用量が増加し続ける原因となるのは間違いありません。そこで、PHP-FPMは、PHP-CGIの管理者として、指定回数リクエストを行ったPHP-CGIプロセスを再起動し、メモリ使用量が増加しないように監視する機能を提供します。
php-fpm のスロー ログ、デバッグ、例外のトラブルシューティング アーティファクト
-
request_slowlog_timeout はタイムアウト パラメーターを設定し、slowlog はスロー ログの保存場所を設定します。 , tail -f /var/log/www.slow.log では、実行が遅すぎる php プロセスを確認できます。 過剰なネットワーク読み取りと遅い Mysql クエリという一般的な問題が表示され、プロンプト情報に従って問題をトラブルシューティングすると、明確な方向性が得られます。
推奨チュートリアル: 「php チュートリアル」
以上がPHP7 の php.ini、php-fpm、www.conf 設定の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
