Обща информация за FastCGI и PHP-FPM

FastCGI

FastCGI за PHP е значително подобрение на традиционната CGI технология за изпълнение на PHP скриптове. FastCGI се поддържа на нашите VPS решения от 2016 г. За разлика от традиционната CGI технология за изпълнение на PHP скриптове, FastCGI позволява един процес да обработва множество заявки преди да бъде прекратен. Намаляването на излишните ресурси за стартиране на нов PHP процес за всяка нова заявка значително подобрява времето за изпълнение на отделните заявки и намаля потреблението на ресурси. Благодарение на подобрената си технология, FastCGI намалява времето за зареждане на сайтовете и позволява едновременното изпълнение на по-голям брой заявки. FastCGI поддържа и OPcache - система за кеширане, която пази предварително компилиран байт код в сървърната памет. Това допълнително забързва изпълнението на PHP скриптове и увеличава производителността.

PHP-FPM

FPM (FastCGI Process Manager) е по-нова версия на FastCGI технологията със значителни подобрения (особено за натоварени сайтове). PHP-FPM е една от най-ефективните и стабилни технологии за изпълнение на PHP, като се поддържа изцяло на всички наши сървъри за споделен хостинг и VPS решения. Използвайки FastCGI протокола, FPM има всички предимства на FastCGI технологията за изпълнение на PHP скриптове, но може да поддържа работещите FastCGI процеси за изпълнение на PHP заявки активни през цялото време. Това води до още по-бързо изпълнение на PHP скриптове. PHP-FPM създава допълнителни FastCGI процеси при необходимост, за да изпълни всички заявки максимално бързо и навреме. PHP-FPM е настроен да работи с OPcache по подразбиране и използва OPcache ресурсите много по-ефективно от FastCGI, тъй като ги споделя между всички PHP-FPM процеси.

Какво пропускате, ако използвате FastCGI вместо FPM?

Ето някои от предимствата на FPM спрямо FastCGI:

  • FPM обработва заявки по-бързо (над 30%) от FastCGI, позволявайки едновременното изпълнение на над 30% повече заявки в сравнение с FastCGI.
  • FPM подобрява изживяването на посетителите на сайтовете и спомага по-доброто класиране в търсачки благодарение на повече от 5 пъти по-бързото време за зареждане на първия байт (TTFB - Time To First Byte). Това подобрение се дължи на поддържането на работещи FastCGI процеси от FPM, докато FastCGI трябва да създава нов работещ процес, ако няма активен и свободен такъв.
  • FPM се поддържа на всички наши сървъри, а FastCGI може да се активира само на определени VPS решения.
  • FastCGI може да се активира само ръчно, докато FPM може да се активира с един клик на мишката в раздел "PHP настройки" на Контролния панел.
  • OPcache е включен по подразбиране за FPM, но за FastCGI трябва да се включи ръчно.
  • FPM има по-добра поддръжка и се изпробва по-обстойно от PHP проекта.

Прекратяване на поддръжката за FastCGI

Тъй като имплементацията на FPM технологията на нашите сървъри няма никакви недостатъци спрямо нейния FastCGI еквивалент, постепенно ще спрем поддръжката за FastCGI технологията. Поради тази причина Ви съветваме да преминете към FPM възможно най-скоро.

Преминаване от FastCGI на FPM

Преминаването от CGI/FastCGI към FPM на нашите сървъри е изключително лесно. Всичко, което е необходимо да направите, е да промените PHP технологията за Вашия домейн/поддомейн от "CGI" на "FPM с OPcache" през раздел "PHP настройки" на Контролния панел. Можете да откриете информация как да промените PHP технологията в статията Поддържани версии на PHP.

Въпреки че този процес е незадължителен, Ви съветваме да извършите в обратен ред стъпките за активиране на FastCGI (описани в статията ни Използване на FastCGI + OPcache), премахвайки:

  • блока с код <IfModule mod_fcgid.c> от .htaccess файла в директорията на Вашия сайт;
  • .ht-fcgi-php-wrapper файла от директорията на Вашия сайт;
  • блока с код [opcache] от основния php.ini файл за Вашия сайт.

Важно:FPM технологията за изпълнение на PHP скриптове работи безпроблемно с множество уеб приложения, но Ви съветваме старателно да проверите Вашия сайт за проблеми след преминаване към FPM, тъй като определено уеб приложение или скрипт може да не е съвместим с FPM. В такъв случай трябва да промените PHP технологията за Вашия сайт на CGI.

Ако срещнете някакви проблеми или имате нужда от помощ при преминаването от FastCGI към FPM, можете да се свържете с отдела ни за техническа поддръжка.