15%

Alexhost исполняСт ваши ТСлания

ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ опрос ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ·Ρ‹

01.11.2024

Π Π΅ΠΆΠΈΠΌΡ‹ PHP: mod_php, FastCGI ΠΈ PHP-FPM Π½Π° VPS

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° VPS AlexHost: Π²Ρ‹Π±ΠΎΡ€ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° (mod_php vs FastCGI vs PHP-FPM)

На PHP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 80% Π²Π΅Π±-сайтов, Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ выполнСния = мСдлСнная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, большой объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, сбои. VPS ΠΎΡ‚ AlexHost с NVMe ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ DDoS Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ mod_php, FastCGI ΠΈΠ»ΠΈ PHP-FPM для достиТСния молниСносной скорости. Π’ этом руководствС ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, показываСтся настройка cPanel Π² 1 ΠΊΠ»ΠΈΠΊ ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ PHP-FPM + LiteSpeed = Π² 10 Ρ€Π°Π· быстрСС.

1. ПониманиС Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² выполнСния PHP

1.1. mod_php

mod_php – это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Apache, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт PHP Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Apache. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ часто являСтся самым простым Π² настройкС

  • Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚: PHP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ процСсса Apache. Когда поступаСт запрос Π½Π° Ρ„Π°ΠΉΠ» PHP, Apache Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ mod_php для Π΅Π³ΠΎ выполнСния.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: mod_php ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ быстрым для ΠΌΠ°Π»Ρ‹Ρ… ΠΈ срСдних ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ устраняСт Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса.

НСдостатки

  • Π Π΅ΡΡƒΡ€ΡΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ: ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PHP выполняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ процСсса Apache, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запрос потрСбляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ расходу рСсурсов, особСнно ΠΏΡ€ΠΈ высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Π°Ρ конфигурация: Π’ Π½Π΅ΠΌ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ, доступныС Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PHP-FPM.

1.2. FastCGI

FastCGI – это Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° mod_php, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ PHP ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ нСсколько запросов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ

  • Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚: ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ FastCGI Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с Π²Π΅Π±-сСрвСром (Apache ΠΈΠ»ΠΈ Nginx) Ρ‡Π΅Ρ€Π΅Π· сокСт. Когда поступаСт запрос, Π²Π΅Π±-сСрвСр ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅Π³ΠΎ процСссу FastCGI для выполнСния.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: FastCGI ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сайтов с высокой ΠΏΠΎΡΠ΅Ρ‰Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ нСсколькими запросами ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ процСссы.

НСдостатки

  • Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ: Настройка FastCGI ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТной, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ использовании mod_php, ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… настроСк Π½Π° Π²Π΅Π±-сСрвСрС.

1.3. PHP-FPM (ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ процСссов FastCGI)

PHP-FPM – это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ вСрсия FastCGI, которая прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности для управлСния процСссами PHP

  • Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚: PHP-FPM управляСт ΠΏΡƒΠ»ΠΎΠΌ процСссов PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ запросы ΠΎΡ‚ Π²Π΅Π±-сСрвСра. Он ΠΌΠΎΠΆΠ΅Ρ‚ динамичСски Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство процСссов Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: PHP-FPM ΠΎΡ‡Π΅Π½ΡŒ эффСктивСн ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… запросов, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ подходящим для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами: PHP-FPM позволяСт Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы PHP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ настройки для ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ использования рСсурсов: Управляя ΠΏΡƒΠ»Π°ΠΌΠΈ процСссов, PHP-FPM ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивным с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния памяти, Ρ‡Π΅ΠΌ mod_php.

2. Настройка PHP-FPM Π½Π° VPS

Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PHP-FPM, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° VPS ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ubuntu

Π¨Π°Π³ 1: УстановитС PHP ΠΈ PHP-FPM

sudo apt update sudo apt install php-fpm

Π¨Π°Π³ 2: НастройтС Π²Π΅Π±-сСрвСр

  • Для Nginx:

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π±Π»ΠΎΠΊΠ° вашСго сСрвСра Nginx

###ATP_NOTR_1_CODE_TAG_NOTR_ATP##

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° сСрвСра:

location ~ .php$ { include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Adjust PHP version as needed }

  • Для Apache:

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ proxy_fcgi

sudo a2enmod proxy_fcgi

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Apache

sudo nano /etc/apache2/sites-available/000-default.conf

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π² Π±Π»ΠΎΠΊ <VirtualHost>

<FilesMatch .php$> SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/" </FilesMatch>

Π¨Π°Π³ 3: ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Π²Π΅Π±-сСрвСр

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Π²Π΅Π±-сСрвСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния

  • Для Nginx:
###ATP_NOTR_6_CODE_TAG_NOTR_ATP##
  • Для Apache:
sudo systemctl restart apache2

3. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° выполнСния PHP ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° VPS. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° – mod_php, FastCGI ΠΈ PHP-FPM – Π΅ΡΡ‚ΡŒ свои прСимущСства ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ сцСнарии использования. Для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ PHP-FPM часто являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ благодаря эффСктивному ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ процСссами ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ. Понимая эти возмоТности, Π²Ρ‹ смоТСтС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ вашСго Π²Π΅Π±-сСрвСра.

15%

Alexhost исполняСт ваши ТСлания

ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ опрос ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ·Ρ‹