目次
Apache は PHP リクエストを処理します" >Apache は PHP リクエストを処理します
ホームページ バックエンド開発 PHPの問題 PHP の fastcgi と php-fpm についての簡単な説明

PHP の fastcgi と php-fpm についての簡単な説明

Jun 15, 2021 pm 05:27 PM
php

この記事では、PHP の fastcgi と php-fpm について簡単に紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP の fastcgi と php-fpm についての簡単な説明

PHP 開発について話すとき、必ず fastcgi と php-fpm が挙げられますが、これら 2 つは PHP のパフォーマンスに重要な役割を果たします。 Baidu でのインターン中に ODP 環境は php-fpm でしたが、全く知識がなく、PHP 自体の概念も漠然としていたので、この 2 日間で予定より早く作業が完了しました。この機会に PHP についてさらに学び、PHP について少し深く理解してください。

Web サーバー

Web 開発専用に設計されたサーバー側言語として、PHP は Web サーバーを利用して実装する必要があります。一般的な PHP アーキテクチャには、LAMP とLNMP. 、PHP へのアクセスを説明する図を見つけます。

PHP の fastcgi と php-fpm についての簡単な説明

Apache は PHP リクエストを処理します

mod_php モード

次のことがわかります。リクエストは Apache に送信され、Apache が PHP を解析して処理し、結果をクライアントに返します。 LAMP アーキテクチャを使用する場合、LoadModule を使用して phpx_module (x は PHP のバージョン番号) をロードするように Apache 設定ファイル httpd.conf

加入如下两句
LoadModule phpx_module PHP_ROOT/phpxapache2_2.dllAddType appliaction/x-httpd-php.php
将下面语句做如下修改<IfModule dir_module> DirectoryIndex index.html</IfModule>改为 <IfModule dir_module> DirectoryIndex index.html index.htm index.php index.phtml</IfModule>
ログイン後にコピー

を変更する必要があります。 PHP は Apache のサブモジュールとして実行されることがわかり、PHP へのアクセス要求が行われると、Apache は phpx_module を呼び出して PHP コードを解析します。

php_module はどのように PHP コードを解析しますか? - サピ経由。

Apache、PHP、sapi の関係は次のとおりです。

PHP の fastcgi と php-fpm についての簡単な説明

sapi は、ソケットと同様に、外部通信用のインターフェイスを提供する中間層です。 、PHP を作成します。データを取得するために他のアプリケーションと対話できます。 PHP は、Apache および Nginx 用の php_module、IIS 用の ISAPI など、さまざまな sapi を提供します。

Apache が PHP を呼び出す実行プロセス:

Apache -> httpd -> php_module -> sapi -> PHP

つまり、 Web サーバーのパス php_module モードで PHP を解析および実行するモードは mod_php です。

mod_fastcgi モード

PHP の sapi のもう 1 つの方法は、cgi モードを提供することです。現在、cgi は fastcgi に置き換えられています。

いわゆる CGI は共通ゲートウェイ インターフェイスです。Web サーバーがリクエストを受信すると、そのリクエストを CGI プログラム (PHP の fastcgi など) に渡し、CGI がリクエストを処理します (PHP を解析します)。 )、結果を Web サーバーに送信し、Web サーバーはリクエストをクライアントに返します。

CGI の欠点は、各リクエストに起動プロセスと終了プロセスが必要なことです。これは非常に批判されているフォークアンド実行モードであり、同時リクエストが多数の場合に終了します。

fastcgi の誕生により、この欠点は補われ、リクエストの待ちを早めに開始し、リクエストに応答した後は終了せず、次のリクエストを待ち続けるという原理になっています。

fastcgi を使用した実行モードは mod_fastcgi と呼ばれます。

mod_php と mod_fastcgi の違いを比較してください。前者は PHP を Web サーバーのモジュールとして実行し、PHP はサーバーと高度に統合されます。後者は中間プロセスとして fastcgi を使用し、PHP サーバーと Web サーバーはリクエストと応答を完了するためにのみ fastcgi を使用します。

PHP の fastcgi と php-fpm についての簡単な説明

mod_php モード

mod_php モードでは、Apache がリクエストを受け入れるたびに、PHP に接続するプロセスが生成されます。 sapi リクエストの同時実行性が高い場合、明らかにサーバーはそれに耐えることができません。

PHP の fastcgi と php-fpm についての簡単な説明

mod-fastcgi mode

この図からわかるように、リクエストが到着するたびに、httpd は sapi を呼び出します。は PHP に渡され、完了後に終了せず、次のリクエストを待ちます。同時実行パフォーマンスが大幅に向上しました。

php-fpm

これまでの説明はphp-fpmの紹介だけでした。 php-fpm は何をするのですか?実際、これは fastcgi を支援するために使用されます。

fastcgi はプラットフォームや言語に依存しないインターフェイス実装であり、規定の方法に従ってさまざまな言語で実装するだけで、Web サーバーとの通信が完了します。上の図に示されている php-cgi は、PHP に付属の fastcgi マネージャーです。

インターネット上で見られる php-cgi には、主に 2 つの問題があります。

  • php-cgi が php.ini を変更した後、php-cgi を再起動して、 php.ini が有効になり、スムーズに再起動できなくなります。

  • php-cgi を直接強制終了すると、PHP は実行できなくなります。

php-fpm は上記の欠点を完全に解決し、専用の fastcgi マネージャー。

つまり、php-fpm の役割は、PHP で fastcgi を特別に管理することです。これにより、PHP は Web サーバーと安全かつ安定して連携して、高い同時実行性の条件下でリクエスト応答プロセスを完了できます。

推奨学習: php ビデオ チュートリアル

以上がPHP の fastcgi と php-fpm についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

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

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

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

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用して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での後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

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

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

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

See all articles