Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
18.12.2024
No categories

Менеджер процесів PHP FastCGI – PHP-FPM

Оптимізуйте продуктивність PHP за допомогою PHP-FPM на VPS на AlexHost

Чому варто використовувати PHP-FPM на AlexHost? PHP-FPM (FastCGI Process Manager) прискорює роботу веб-сайтів на PHP, таких як WordPress або Laravel, забезпечуючи швидший час відгуку та ефективне використання ресурсів. VPS від AlexHost зі сховищем NVMe, повним root-доступом і захистом від DDoS є ідеальною платформою для запуску PHP-FPM, гарантуючи, що ваші додатки з легкістю впораються з великим трафіком. У цьому посібнику ви дізнаєтеся, що таке PHP-FPM, чому він змінює правила гри та як його налаштувати на VPS від AlexHost.

Що таке PHP-FPM?

PHP-FPM, або PHP FastCGI Process Manager, є реалізацією FastCGI для PHP-скриптів. FastCGI – це протокол, який використовується для підвищення продуктивності веб-серверів за рахунок більш ефективної обробки запитів, ніж стандартний CGI (Common Gateway Interface). У той час як CGI створює новий процес для кожного запиту (що призводить до високого споживання ресурсів), FastCGI зберігає пул робочих процесів, готових до обробки декількох запитів, таким чином зменшуючи накладні витрати. PHP-FPM додає рівень управління процесами поверх FastCGI, що дозволяє використовувати такі функції, як об’єднання процесів, створення робочих процесів на вимогу, плавне завершення роботи і можливість легко обробляти середовища з високим трафіком. Зараз це де-факто стандартний обробник PHP для багатьох сучасних веб-серверів, включаючи NGINX і Apache

Навіщо використовувати PHP-FPM?

  1. Покращена продуктивність: PHP-FPM може обробляти більше паралельних запитів з меншою кількістю ресурсів, зменшуючи навантаження на сервер і прискорюючи час відгуку. Це особливо корисно для веб-сайтів з високим трафіком або додатків, які відчувають раптові сплески трафіку.
  2. Управління процесами: PHP-FPM дозволяє тонко налаштовувати управління процесами, надаючи вам контроль над тим, як PHP обробляє запити. Він використовує пул працівників, який можна налаштувати відповідно до очікуваного навантаження, забезпечуючи ефективне використання ресурсів сервера.
  3. Краще використання ресурсів: Оскільки PHP-FPM об’єднує процеси, він може обслуговувати декілька запитів, використовуючи одні й ті ж працівники, мінімізуючи необхідність безперервного створення і завершення процесів. Це покращує використання пам’яті та ефективність роботи процесора.
  4. Плавна деградація: При правильному налаштуванні PHP-FPM може плавно деградувати, зменшуючи кількість активних процесів, якщо сервер стає перевантаженим, запобігаючи повному падінню.
  5. Розширені можливості: PHP-FPM включає в себе розширені можливості, такі як повільний журнал для налагодження, адаптивний запуск процесів і звіти про стан, які дають уявлення про продуктивність і працездатність ваших PHP-додатків.

Ключові особливості PHP-FPM

  • Пули процесів: PHP-FPM дозволяє визначати декілька пулів робочих процесів PHP. Кожен пул може бути сконфігурований з різними налаштуваннями, що дозволяє запускати різні PHP-додатки з різними вимогами до трафіку на одному сервері.
  • Адаптивний запуск процесів: PHP-FPM може автоматично масштабувати кількість робочих процесів в залежності від рівня трафіку. Він починає з мінімальної кількості робочих процесів і може збільшувати розмір пулу за необхідності, не витрачаючи ресурси в періоди низького трафіку.
  • Повільний лог: Функція повільного журналу в PHP-FPM записує запити, які перевищують заданий час виконання. Це допомагає розробникам виявляти та усувати вузькі місця в PHP-коді.
  • Сторінка стану: PHP-FPM надає вбудовану сторінку стану, яка в реальному часі надає інформацію про стан пулу, активних працівників, працівників, що простоюють, та інші метрики, які можуть бути використані для моніторингу продуктивності.
  • Плавне завершення роботи: PHP-FPM може плавно завершувати процеси, дозволяючи поточним запитам завершитися перед вимкненням. Це запобігає раптовому завершенню запущених скриптів, забезпечуючи кращий користувацький досвід.

Як працює PHP-FPM

PHP-FPM працює як окремий FastCGI-сервер, інтегрований з веб-сервером, таким як NGINX або Apache, для обслуговування PHP-скриптів. Коли надходить запит, веб-сервер перенаправляє PHP-запит до служби PHP-FPM, яка керує пулом робочих процесів для виконання PHP-коду і відправки результату назад на веб-сервер для доставки клієнту. Ось спрощена схема того, як PHP-FPM обробляє запит

  1. Запит клієнта: Користувач запитує веб-сторінку, яка містить PHP-код.
  2. Веб-сервер отримує запит: Веб-сервер (NGINX або Apache) отримує запит і пересилає його до служби PHP-FPM, використовуючи протокол FastCGI.
  3. Робочий процес PHP-FPM обробляє запит: Один з робочих процесів в пулі PHP-FPM обробляє запит, виконує PHP-скрипт і повертає результат.
  4. Відправлення відповіді назад: Веб-сервер отримує результат і відправляє його назад клієнту у вигляді остаточного відрендереного HTML.

Встановлення та налаштування PHP-FPM

Крок 1: Встановлення PHP-FPM

Для більшості дистрибутивів Linux PHP-FPM можна встановити за допомогою менеджера пакетів. Ось команди для поширених систем:

# For Debian/Ubuntu
sudo apt update
sudo apt install php-fpm
# For CentOS/RHEL
sudo yum install php-fpm
Після встановлення ви можете запустити службу PHP-FPM

sudo systemctl start php-fpm

Крок 2: Налаштування пулів PHP-FPM

Основний конфігураційний файл PHP-FPM зазвичай знаходиться в /etc/php/7.x/fpm/pool.d/ або /etc/php-fpm.d/ в залежності від вашого дистрибутива і версії PHP. Кожен пул описується у власному файлі, зазвичай названому на честь веб-сайту або додатку, який він обслуговує. Ось приклад конфігурації пулу:

[www]
user = www-data
group = www-data
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500
  • pm = динамічний: Менеджер процесів може динамічно змінювати кількість робочих процесів на основі попиту.
  • pm.max_children: Максимальна кількість робочих процесів, які можуть бути створені для обробки запитів.
  • pm.start_servers: Кількість робочих процесів, які запускаються при запуску PHP-FPM.
  • pm.min_spare_servers і pm.max_spare_servers: Визначають мінімальну та максимальну кількість простоюючих робочих процесів, дозволяючи PHP-FPM масштабувати ресурси в залежності від навантаження.
  • pm.max_requests: Максимальна кількість запитів, яку може обробити працівник, перш ніж його буде завершено і замінено. Це допомагає запобігти витоку пам’яті у довготривалих скриптах.

Крок 3: Налаштування веб-сервера для використання PHP-FPM

Для NGINX:

У файлі конфігурації NGINX (наприклад, /etc/nginx/sites-available/example.com) налаштуйте PHP-FPM як обробник PHP:

server {
listen 80;
server_name example.com;
root /var/www/html;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}

Для Apache:

Щоб увімкнути PHP-FPM в Apache, переконайтеся, що модуль mod_proxy_fcgi увімкнено

sudo a2enmod proxy_fcgi setenvif

Потім оновіть конфігурацію віртуального хоста Apache

<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>

Крок 4: Тестування конфігурації

Після налаштування PHP-FPM і вашого веб-сервера перезапустіть служби для застосування змін:

# For NGINX
sudo systemctl restart nginx
###ATP_NOTR_9_CODE_TAG_NOTR_ATP## Для перевірки працездатності PHP-FPM створіть файл phpinfo.php в кореневому каталозі вашого веб-сервера:
?php
phpinfo();
?>
Перейдіть до цього файлу через браузер (наприклад, http://example.com/phpinfo.php) і перевірте, чи вказано PHP-FPM в якості обробника

Висновок: Прискорюйте роботу PHP за допомогою AlexHost і PHP-FPM

PHP-FPM перетворює ваші PHP-додатки на високопродуктивні машини, а VPS на базі NVMe від AlexHost гарантує їхню безперебійну роботу під великими навантаженнями. Встановіть PHP-FPM, налаштуйте пули та інтегруйтеся з NGINX або Apache для швидкої та безпечної роботи веб-сайтів. Відстежуйте роботу за допомогою сторінок стану, налагоджуйте роботу за допомогою повільних логів і створюйте резервні копії конфігурацій для безпеки. З root-доступом і підтримкою від AlexHost ваші PHP-проекти не зупинити – кодуйте і масштабуйте без зайвих зусиль!

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills

Похожие записи не найдены.