📒 

При розгортанні PHP-додатків на віртуальному приватному сервері (VPS) важливо вибрати правильний метод виконання PHP. Цей вибір може суттєво вплинути на продуктивність і використання ресурсів ваших додатків. У цій статті ми розповімо про три найпоширеніші режими PHP: mod_php, FastCGI та PHP-FPM, обговоримо їхні відмінності, переваги та як їх налаштувати.

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 Process Manager)

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:

sudo nano /etc/nginx/sites-available/default

Додайте наступні рядки до блоку сервера:

location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Відкоригуйте версію PHP за потреби }
  • Для Apache:

Переконайтеся, що у вас увімкнено модуль proxy_fcgi:

sudo a2enmod proxy_fcgi

Потім відредагуйте конфігураційний файл Apache

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

Додайте наступні рядки в блок :

SetHandler “proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/” </FilesMatch

Крок 3: Перезапустіть веб-сервер

Перезапустіть веб-сервер, щоб застосувати зміни:

  • Для Nginx:
sudo systemctl restart nginx
  • Для Apache:
sudo systemctl restart apache2

3. Висновок

Вибір правильного режиму виконання PHP має вирішальне значення для оптимізації продуктивності ваших додатків на VPS. Кожен метод – mod_php, FastCGI та PHP-FPM – має свої переваги та ідеальні випадки використання. Для високопродуктивних додатків PHP-FPM часто є найкращим вибором завдяки ефективному управлінню процесами та масштабованості. Розуміючи ці можливості, ви зможете приймати обґрунтовані рішення для підвищення продуктивності та швидкості роботи вашого веб-сервера.