php設定php-fpm起動パラメータとconfiguration_PHPチュートリアルの詳細な説明
複数のディレクトリに同意する
/usr/local/php/sbin/php-fpm
/usr/local/php/etc/php-fpm.conf
/usr/local/php/etc/php.ini
まず、php-fpmパラメータを起動します
#php-fpm構成をテストします
/usr/local/php/sbin/php-fpm -t
/usr/local/php/sbin/php -fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t
#php-fpmの起動
/usr/local/php/sbin /php -fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
#閉じる php -fpm
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
#Restart php-fpm
kill -USR2 `cat /usr/local/php/var/run /php -fpm.pid`
2番目、php-fpm.confの重要なパラメータの詳細な説明
pid = run/php-fpm.pid
#pid 設定、デフォルトはインストールディレクトリの var/run/php-fpm.pid です。有効にすることをお勧めします
error_log = log/php-fpm.log
#エラー ログ、デフォルトはインストール ディレクトリの var/log/php-fpm.log です
log_level = Notice
#エラー レベルは次のとおりです: アラート (すぐに処理する必要があります)、エラー (エラー状況)、警告 (警告)状況)、通知 (一般的な重要な情報)、デバッグ (デバッグ情報)。デフォルト: Notice.
emergency_restart_threshold = 60
emergency_restart_interval = 60s
#値セット内で SIGSEGV または SIGBUS エラーがある php-cgi プロセスの数を示します。 Emergency_restart_interval によって、emergency_restart_threshold を超えた場合、php -fpm は正常に再起動します。これら 2 つのオプションは通常、デフォルト値のままです。
process_control_timeout = 0
#メインプロセスの再利用シグナルを受け入れるための子プロセスのタイムアウトを設定します。使用可能な単位: s (秒)、m (分)、h (時間)、または d (日) デフォルトの単位: s (秒) 。デフォルト値: 0.
daemonize = yes
#バックグラウンドで fpm を実行します。デフォルト値は yes ですが、デバッグのために no に変更できます。 FPM では、複数のプロセス プールを異なる設定で実行できます。 これらの設定は、プロセス プールごとに個別に設定できます。
listen = 127.0.0.1:9000
#fpm リスニング ポート。これは nginx の php によって処理されるアドレスです。通常、デフォルト値で十分です。使用可能な形式は次のとおりです: 'ip:port'、'port'、'/path/to/unix/socket'。各プロセス プールを設定する必要があります。
listen.backlog = -1
#バックログ番号、-1 はなしを意味します。制限はオペレーティング システムによって決定されるため、この行をコメントアウトするだけです。バックログの意味参照: http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1
#必要に応じて、FastCGI プロセスの IP へのアクセスを許可します。他のホストの nginx を設定するには、この FPM プロセスにもアクセスできます。リッスンの場所は、アクセス可能なローカル IP に設定する必要があります。デフォルト値は任意です。各アドレスはカンマで区切られます。設定されていないか空の場合、どのサーバーでも接続を要求できます
listen.owner = www
listen.group = www
listen.mode = 0666
#unix ソケット設定オプション (tcp を使用する場合)アクセスするには、ここにコメントしてください。
user = www
group = www
#プロセスを開始するアカウントとグループ
pm = 動的 #専用サーバーの場合、pm を静的に設定できます。
#子プロセスを制御する方法。オプションは静的と動的です。 static を選択した場合、固定数の子プロセスが pm.max_children によって指定されます。動的が選択されている場合、次のパラメータによって決定されます:
pm.max_children #、子プロセスの最大数
pm.start_servers #、起動時のプロセスの数
pm.min_spare_servers #、アイドル状態の最小数を確保するためプロセス、アイドル状態のプロセスがこの値より小さい場合、新しいサブプロセス
pm.max_spare_servers を作成して、アイドル状態のプロセスの最大数を確保します # アイドル状態のプロセスがこの値より大きい場合、クリーンアップされます
pm。 .max_requests = 1000
#各サブプロセスが再起動される前に処理されるリクエストの数を設定します。「0」に設定すると、リクエストは常に受け入れられます。デフォルト値: 0.
pm.status_path = /status
#FPM ステータス ページの URL が設定されていない場合、Munin モニタリングは ping URL を使用します。
ping.path = /ping
#FPM 監視ページ。設定されていない場合、このページは FPM が有効かどうかを外部から検出するために使用され、リクエストに応答する必要があることに注意してください。スラッシュ (/) で始まります。
ping.response = pong
#ping リクエストの返信応答を定義するために使用されます。返されるテキスト/プレーン フォーマット テキストは HTTP 200 です。デフォルト値: pong.
request_terminate_timeout = 0
# のタイムアウト中止時間を設定します。このオプションは、php.ini 設定の「max_execution_time」が何らかの特別な理由で実行中のスクリプトを中止しない場合に便利です。これを「0」に設定すると、502 のときにこのオプションを変更してみることができます。エラーが頻繁に発生します。
request_slowlog_timeout = 10s
#リクエストにタイムアウト期間が設定されている場合、対応するPHPコールスタック情報はスローログに完全に書き込まれます。これを「0」に設定すると、「オフ」を意味します
slowlog = log/$ pool。 .log.slow
#request_slowlog_timeout で使用される低速リクエストのログ記録
rlimit_files = 1024
#ファイルオープン記述子の rlimit 制限を設定します。デフォルト値: デフォルトのオープン可能なハンドルは 1024 です。ulimit を使用できます。 -n 表示、ulimit -n 2048 の変更。
rlimit_core = 0
# コア rlimit の最大制限値を設定します。 使用可能な値: '無制限'、0 または正の整数: 起動時にシステム定義の値。 to は絶対パスです。設定されていない場合、chroot は使用されません。
chdir =
#起動時にこのディレクトリに自動的に設定されます。定義されたディレクトリは絶対パスである必要があります。 : 現在のディレクトリ、または / ディレクトリ (chroot の場合)
catch_workers_output = yes
#実行中のプロセス中の stdout と stderr をメイン エラー ログ ファイルにリダイレクトします。設定されていない場合、stdout と stderr は、次に従って /dev/null にリダイレクトされます。 FastCGI ルール。デフォルト値: 空。
3 つの一般的なエラーと解決策
1. request_terminate_timeout によるリソースの問題
request_terminate_timeout の値が 0 または長すぎると、file_get_contents でリソースの問題が発生する可能性があります。
file_get_contents によって要求されたリモート リソースの応答が遅すぎる場合、file_get_contents は常にそこでスタックし、タイムアウトしません。 php.ini の max_execution_time で PHP スクリプトの最大実行時間を設定できることはわかっていますが、php-cgi (php-fpm) ではこのパラメータは有効になりません。 PHP スクリプトの最大実行時間を実際に制御できるのは、php-fpm.conf 設定ファイルの request_terminate_timeout パラメータです。
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 にタイムアウト パラメーターを追加することです。
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 10 //タイムアウトを秒単位で設定します
)
); .max_requests = 1000
各子プロセスが再起動される前に処理されるリクエストの数を設定します。「0」に設定すると、リクエストが常に受け入れられます。 PHP_FCGI_MAX_REQUESTS 環境変数と同等。デフォルト値: 0。
しかし、なぜプロセスを再起動するのでしょうか?
3、php-fpm のスロー ログ、デバッグ、および例外のトラブルシューティング アーティファクト:
コードをコピーします
コードは次のとおりです:
tail -f /var/log/www.slow.log
上記のコマンドは、実行が遅すぎるphpプロセスを確認できます。
プロンプト情報に従って問題をトラブルシューティングすると、過剰なネットワーク読み取りと遅い MySQL クエリという一般的な問題がわかります。
http://www.bkjia.com/PHPjc/825014.html
技術記事
いくつかのディレクトリについて合意します /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini 1. php-fpmの起動パラメータ次のようにコードをコピーします: #Test php-fpm 構成...

ホット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の特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

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

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

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