Різні способи перезапуску PHP-FPM ⋆ ALexHost SRL

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

Use code at checkout:

Skills
09.12.2024

Різні способи перезапуску PHP-FPM

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

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

Перш ніж зануритися в методи, давайте коротко обговоримо, чому перезапуск PHP-FPM може бути необхідним:

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

Необхідні умови

Переконайтеся, що у вас є root-доступ або необхідні привілеї для перезапуску служб на вашому сервері. Залежно від дистрибутива Linux, ви можете використовувати різні команди, такі як systemctl або service.

Спосіб 1: Використання systemctl

У сучасних дистрибутивах Linux, таких як Ubuntu 16.04 і CentOS 7, systemctl є стандартним методом управління службами, включаючи PHP-FPM. Ось як можна перезапустити PHP-FPM за допомогою systemctl:

Перезапуск PHP-FPM

sudo systemctl restart php-fpm

Ця команда перезапустить службу PHP-FPM, застосувавши всі нові зміни конфігурації.

Зупинка і запуск PHP-FPM

Якщо ви хочете отримати більше контролю, ви можете зупиняти і запускати PHP-FPM вручну:

sudo systemctl stop php-fpm
sudo systemctl start php-fpm

Це може бути корисно, якщо вам потрібно переконатися, що служба повністю зупинена, перш ніж запускати її знову.

Перевірити стан

Щоб переконатися, що PHP-FPM успішно перезапустився, скористайтеся:

sudo systemctl status php-fpm

У результаті буде показано стан служби PHP-FPM, зокрема, чи вона активна, а також останні повідомлення журналу.

Спосіб 2: Використання команди service

Команда service зазвичай використовується на старих дистрибутивах Linux або для забезпечення зворотної сумісності. Ось як перезапустити PHP-FPM за допомогою service:

sudo service php-fpm restart

Або зупинити і запустити сервіс окремо:

sudo service php-fpm stop
sudo service php-fpm start

Спосіб 3: Перезапуск окремих версій PHP-FPM

Якщо у вас встановлено кілька версій PHP, вам потрібно вказати версію PHP-FPM, яку ви хочете перезапустити. Наприклад, якщо у вас встановлено PHP 7.4, скористайтеся наступною командою:

sudo systemctl restart php7.4-fpm

Або за допомогою сервісу:

sudo service php7.4-fpm restart

Цей спосіб особливо корисний у середовищах, де для різних додатків або веб-сайтів потрібні різні версії PHP.

Спосіб 4: Надсилання сигналів безпосередньо до PHP-FPM

Ви можете безпосередньо надсилати сигнали до PHP-FPM для перезавантаження конфігурацій без повного перезапуску сервісу. Це більш тонкий підхід, який може бути менш руйнівним для вашого веб-трафіку:

Перезавантажити конфігурацію

Щоб перезавантажити конфігурацію PHP-FPM без завершення існуючих процесів, використовуйте:

sudo kill -USR2 $(cat /run/php/php-fpm.pid)

Замініть /run/php/php-fpm.pid на шлях до вашого PID-файлу, якщо він відрізняється. Цей метод корисний, коли ви хочете перезавантажити зміни конфігурації без перезапуску всіх процесів PHP-FPM.

Плавний перезапуск

Плавний перезапуск дозволяє PHP-FPM завершити обслуговування поточних запитів перед перезапуском:

sudo kill -QUIT $(cat /run/php/php-fpm.pid)

Це особливо корисно у виробничих середовищах, де ви хочете уникнути переривання активних сесій користувачів.

Спосіб 5: Використання pkill або killall

Якщо у вас виникли проблеми з PHP-FPM і вам потрібно примусово зупинити всі процеси, ви можете скористатися pkill або killall. Це більш агресивний метод, і його слід використовувати з обережністю:

sudo pkill php-fpm

Або

sudo killall php-fpm

Після завершення процесів потрібно запустити PHP-FPM вручну:

sudo systemctl start php-fpm

Спосіб 6: Використання перезапуску Nginx або Apache

У деяких випадках перезапуск веб-сервера може побічно перезапустити PHP-FPM, якщо він тісно пов’язаний з процесом веб-сервера. Ось як це можна зробити:

Nginx

sudo systemctl restart nginx

Apache

sudo systemctl restart apache2

Хоча цей метод не рекомендується для вирішення специфічних для PHP-FPM проблем, він може бути корисним, якщо ви виконуєте обслуговування всього вашого веб-стека.

Кращі практики перезапуску PHP-FPM

  • Перевірте логи: Перед перезапуском перевірте журнали PHP-FPM на наявність помилок або попереджень. Це може допомогти виявити основні проблеми, які можна вирішити без перезапуску.
  • Плавний перезапуск у виробництві: Завжди віддавайте перевагу м’якому перезапуску у виробничому середовищі, щоб не заважати користувачам.
  • Відстежуйте використання ресурсів: Використовуйте такі інструменти, як top, htop або ps для моніторингу процесів PHP-FPM до і після перезапуску, щоб переконатися, що вони працюють належним чином.

Висновок

Перезапуск PHP-FPM – це звичайне завдання, з яким повинен бути знайомий кожен адміністратор сервера або розробник. Незалежно від того, чи використовуєте ви systemctl, service, надсилаєте сигнали або виконуєте плавний перезапуск, знання правильного методу для вашої ситуації може забезпечити безперебійну роботу і мінімальні перебої в роботі ваших сервісів. Дотримуючись найкращих практик, ви зможете підтримувати ефективну роботу PHP-FPM і впевнено вирішувати будь-які проблеми, що можуть виникнути.

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

Use code at checkout:

Skills