Різні способи перезапуску PHP-FPM
PHP-FPM (PHP FastCGI Process Manager) – це потужний і широко використовуваний менеджер процесів для PHP, який часто надають перевагу за його швидкість і здатність обробляти веб-сайти з високим трафіком. Знання того, як перезапустити PHP-FPM, має вирішальне значення для розробників і системних адміністраторів, особливо при внесенні змін до конфігурації PHP, вирішенні проблем або виконанні планового обслуговування. У цій статті ми розглянемо кілька способів перезапуску PHP-FPM на різних системах і в різних середовищах.
Навіщо перезапускати PHP-FPM?
Перш ніж зануритися в методи, давайте коротко обговоримо, чому перезапуск PHP-FPM може бути необхідним:
- Зміни конфігурації: Якщо ви змінюєте налаштування PHP у файлах php.ini або php-fpm.conf, для того, щоб зміни набули чинності, потрібен перезапуск.
- Оптимізація продуктивності: Перезапуск PHP-FPM може допомогти звільнити пам’ять і ресурси, особливо на сайтах з високим трафіком.
- Виправлення помилок: Якщо PHP-FPM стикається з проблемами або не реагує на запити, перезапуск може допомогти усунути тимчасові збої.
- Ротація логів: Після ротації логів для PHP-FPM може знадобитися перезапуск, щоб переконатися, що нові логи записані належним чином.
Необхідні умови
Переконайтеся, що у вас є root-доступ або необхідні привілеї для перезапуску служб на вашому сервері. Залежно від дистрибутива Linux, ви можете використовувати різні команди, такі як systemctl або service.
Спосіб 1: Використання systemctl
У сучасних дистрибутивах Linux, таких як Ubuntu 16.04 і CentOS 7, systemctl є стандартним методом управління службами, включаючи PHP-FPM. Ось як можна перезапустити PHP-FPM за допомогою systemctl:
Перезапуск PHP-FPM
Ця команда перезапустить службу PHP-FPM, застосувавши всі нові зміни конфігурації.
Зупинка і запуск PHP-FPM
Якщо ви хочете отримати більше контролю, ви можете зупиняти і запускати PHP-FPM вручну:
sudo systemctl start php-fpm
Це може бути корисно, якщо вам потрібно переконатися, що служба повністю зупинена, перш ніж запускати її знову.
Перевірити стан
Щоб переконатися, що PHP-FPM успішно перезапустився, скористайтеся:
У результаті буде показано стан служби PHP-FPM, зокрема, чи вона активна, а також останні повідомлення журналу.
Спосіб 2: Використання команди service
Команда service зазвичай використовується на старих дистрибутивах Linux або для забезпечення зворотної сумісності. Ось як перезапустити PHP-FPM за допомогою service:
Або зупинити і запустити сервіс окремо:
sudo service php-fpm start
Спосіб 3: Перезапуск окремих версій PHP-FPM
Якщо у вас встановлено кілька версій PHP, вам потрібно вказати версію PHP-FPM, яку ви хочете перезапустити. Наприклад, якщо у вас встановлено PHP 7.4, скористайтеся наступною командою:
Або за допомогою сервісу:
Цей спосіб особливо корисний у середовищах, де для різних додатків або веб-сайтів потрібні різні версії PHP.
Спосіб 4: Надсилання сигналів безпосередньо до PHP-FPM
Ви можете безпосередньо надсилати сигнали до PHP-FPM для перезавантаження конфігурацій без повного перезапуску сервісу. Це більш тонкий підхід, який може бути менш руйнівним для вашого веб-трафіку:
Перезавантажити конфігурацію
Щоб перезавантажити конфігурацію PHP-FPM без завершення існуючих процесів, використовуйте:
Замініть /run/php/php-fpm.pid на шлях до вашого PID-файлу, якщо він відрізняється. Цей метод корисний, коли ви хочете перезавантажити зміни конфігурації без перезапуску всіх процесів PHP-FPM.
Плавний перезапуск
Плавний перезапуск дозволяє PHP-FPM завершити обслуговування поточних запитів перед перезапуском:
Це особливо корисно у виробничих середовищах, де ви хочете уникнути переривання активних сесій користувачів.
Спосіб 5: Використання pkill або killall
Якщо у вас виникли проблеми з PHP-FPM і вам потрібно примусово зупинити всі процеси, ви можете скористатися pkill або killall. Це більш агресивний метод, і його слід використовувати з обережністю:
Або
Після завершення процесів потрібно запустити PHP-FPM вручну:
Спосіб 6: Використання перезапуску Nginx або Apache
У деяких випадках перезапуск веб-сервера може побічно перезапустити PHP-FPM, якщо він тісно пов’язаний з процесом веб-сервера. Ось як це можна зробити:
Nginx
Apache
Хоча цей метод не рекомендується для вирішення специфічних для PHP-FPM проблем, він може бути корисним, якщо ви виконуєте обслуговування всього вашого веб-стека.
Кращі практики перезапуску PHP-FPM
- Перевірте логи: Перед перезапуском перевірте журнали PHP-FPM на наявність помилок або попереджень. Це може допомогти виявити основні проблеми, які можна вирішити без перезапуску.
- Плавний перезапуск у виробництві: Завжди віддавайте перевагу м’якому перезапуску у виробничому середовищі, щоб не заважати користувачам.
- Відстежуйте використання ресурсів: Використовуйте такі інструменти, як top, htop або ps для моніторингу процесів PHP-FPM до і після перезапуску, щоб переконатися, що вони працюють належним чином.
Висновок
Перезапуск PHP-FPM – це звичайне завдання, з яким повинен бути знайомий кожен адміністратор сервера або розробник. Незалежно від того, чи використовуєте ви systemctl, service, надсилаєте сигнали або виконуєте плавний перезапуск, знання правильного методу для вашої ситуації може забезпечити безперебійну роботу і мінімальні перебої в роботі ваших сервісів. Дотримуючись найкращих практик, ви зможете підтримувати ефективну роботу PHP-FPM і впевнено вирішувати будь-які проблеми, що можуть виникнути.