Web サイトのパフォーマンス向上の鍵: PHP-FPM 最適化実践ガイド
インターネットの急速な発展に伴い、Web サイトの役割はますます重要になっています。 Web サイト運営者にとって、Web サイトのパフォーマンスを向上させることは、ユーザー エクスペリエンスを向上させるだけでなく、検索エンジンのランキングを向上させるためにも重要です。 PHP-FPM (FastCGI Process Manager) は、PHP 実行のプロセス マネージャーとして、Web サイトのパフォーマンスを向上させる上で重要な役割を果たします。この記事では、具体的なコード例を含む、PHP-FPM 最適化の実践的なガイドを提供します。
1. PHP-FPM のインストールと構成
まず、PHP がサーバーにインストールされていることを確認する必要があります。次のコマンドで確認できます:
php -v
PHP がインストールされていない場合は、次のコマンドを使用してインストールしてください (CentOS を例にします):
yum install php
インストールが完了したら、php.ini ファイルを変更し、PHP-FPM サポートを有効にする必要があります。次の 2 行のコードを見つけて変更します。
cgi.fix_pathinfo=0 ; FastCGI dynamic process spawning ; Set to 0 if you're not having permission errors when running PHP as a CGI. ; http://php.net/cgi.fix-pathinfo
コードの 1 行目を次のように変更します。
cgi.fix_pathinfo=1
コードの 2 行目を次のように変更します。
;cgi.fix_pathinfo=0
変更と再起動 変更を有効にするには、PHP-FPM サービスを開始します。
service php-fpm restart
2. PHP-FPM の構成パラメータを調整する
PHP-FPM を最適化する前に、まず PHP-FPM のいくつかの重要なパラメータを理解する必要があります:
- pm.max_children: プロセスの最大数を指定します。これは、PHP-FPM が作成できる PHP プロセスの最大数です。この値を超えると、新しい接続はキューに入れられます。
- pm.start_servers: 起動時に作成される PHP プロセスの数を指定します。
- pm.min_spare_servers: PHP-FPM が維持する必要があるアイドル プロセスの最小数を指定します。
- pm.max_spare_servers: PHP-FPM が維持する必要があるアイドル プロセスの最大数を指定します。
- pm.max_requests: 各 PHP プロセスによって処理されるリクエストの最大数を指定します。この値を超えると、プロセスが再起動されます。
サーバー構成と Web サイトのトラフィックに応じて、これらのパラメーターを適切に調整して、PHP-FPM のパフォーマンスを向上させることができます。たとえば、サーバー構成が低い場合は、pm.max_children を 20 などの小さい値に設定できます。 Web サイトへのアクセス数がそれほど多くない場合は、pm.min_spare_servers と pm.max_spare_servers を 5 などの小さい値に設定できます。
これらのパラメータは、php-fpm.conf ファイルを編集することで変更できます:
vi /etc/php-fpm.conf
変更する次のコード行を見つけます:
pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 10 pm.max_requests = 500
変更を保存した後、再起動します。変更を有効にするための PHP-FPM サービス。
service php-fpm restart
3. PHP の OPcache 拡張機能を有効にする
OPcache は、PHP バージョン 5.5 以降に導入されたアクセラレータです。コンパイルされた PHP スクリプトをメモリにキャッシュして、繰り返しのコンパイル時間を短縮できます。 OPcache 拡張機能は、次の手順に従って有効にできます:
- php.ini ファイルを開きます:
vi /etc/php.ini
- 次のコードを見つけます:
;zend_extension = <path_to_opcache.so>
- 先行する「;」を削除し、「
」を特定の OPcache 拡張パス (通常は /usr/lib64/php/modules/opcache.so) に置き換えます。 - 変更を保存した後、PHP-FPM サービスを再起動して OPcache を有効にします。
service php-fpm restart
4. PHP-FPM の Slow Log 機能をオンにする
PHP-FPM の Slow Log 機能は、実行時間が指定したしきい値を超えたリクエストをログ ファイルに記録できます。後で使用するための分析と最適化。次の手順で Slow Log 機能を有効にできます。
- php-fpm.conf ファイルを開きます:
vi /etc/php-fpm.conf
- 次のコードを見つけます:
;slowlog = /var/log/php-fpm/www-slow.log ;request_slowlog_timeout = 0
- 先行する「;」を削除し、「request_slowlog_timeout」を必要なしきい値 (秒単位) に変更します。たとえば、これを 1 に変更すると、実行に 1 秒以上かかるリクエストがログに記録されることになります。
- 変更を保存した後、PHP-FPM サービスを再起動して、Slow Log 機能を有効にします。
service php-fpm restart
5. Nginx などのリバース プロキシ サーバーを使用する
Nginx などのリバース プロキシ サーバーを使用すると、静的リソース リクエストを Nginx に転送して処理できるため、PHP-FPM の複雑さが軽減されます。ウェブサイトを読み込み、パフォーマンスを向上させます。
Nginx 構成ファイルでは、次のコードを通じて静的リソースのリクエストを Nginx に転送できます:
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { proxy_pass http://yourdomain.com; proxy_set_header Host $host; }
上記のコードは、jpg、jpeg、png、gif、ico、css、 js 他のサフィックスに対するリクエストは、処理のために http://yourdomain.com に転送されます。
6. キャッシュ メカニズムを使用する
Web サイトのビジネス ロジックでは、キャッシュ メカニズムを使用してデータベース アクセスと動的ページの生成を削減し、Web サイトのパフォーマンスを向上させることができます。 。これは、Redis や Memcached などのキャッシュ テクノロジを使用して実現できます。
次のコード例で Redis キャッシュを使用できます:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $key = 'user_info_' . $user_id; if ($redis->exists($key)) { $user_info = $redis->get($key); } else { $user_info = getUserInfoFromDatabase($user_id); $redis->setex($key, 3600, $user_info); }
上記のコードでは、まずユーザー情報がキャッシュに存在するかどうかを確認します。存在する場合は、キャッシュから直接取得されます。 ; 存在しない場合はデータベースから取得します。 からユーザー情報を取得してキャッシュに保存し、有効期限を 3600 秒に設定します。
概要:
PHP-FPM を最適化することで、Web サイトのパフォーマンスを向上させ、ユーザー エクスペリエンスを向上させることができます。この記事では、PHP-FPM 最適化の実践的なガイドを提供し、参考として具体的なコード例を示します。実際のアプリケーションでは、最高のパフォーマンスを達成するために、特定のニーズに応じて調整および最適化することもできます。
以上がWeb サイトのパフォーマンス向上の鍵: PHP-FPM 最適化実践ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

セッションIDは、機密操作の前、30分ごとにログイン時に定期的に再生する必要があります。 1.セッション固定攻撃を防ぐためにログインするときにセッションIDを再生します。 2。安全性を向上させるために、敏感な操作の前に再生します。 3.定期的な再生は長期的な利用リスクを減らしますが、ユーザーエクスペリエンスの重量を量る必要があります。

PHPのセッションCookieパラメーターの設定は、session_set_cookie_params()関数を通じて達成できます。 1)この関数を使用して、有効期限、パス、ドメイン名、セキュリティフラグなどのパラメーターを設定します。 2)session_start()を呼び出して、パラメーターを有効にします。 3)ユーザーログインステータスなど、ニーズに応じてパラメーターを動的に調整します。 4)セキュリティを改善するために、セキュアとhttponlyフラグを設定することに注意してください。

PHPでセッションを使用する主な目的は、異なるページ間でユーザーのステータスを維持することです。 1)セッションはsession_start()関数を介して開始され、一意のセッションIDを作成し、ユーザーCookieに保存します。 2)セッションデータはサーバーに保存され、ログインステータスやショッピングカートのコンテンツなど、さまざまなリクエスト間でデータを渡すことができます。

サブドメイン間でセッションを共有する方法は?一般的なドメイン名にセッションCookieを設定することにより実装されます。 1.セッションCookieのドメインをサーバー側の.example.comに設定します。 2。メモリ、データベース、分散キャッシュなど、適切なセッションストレージ方法を選択します。 3. Cookieを介してセッションIDを渡すと、サーバーはIDに基づいてセッションデータを取得および更新します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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