Посібник з налаштування PHP в ServBay: як змінювати php.ini, PHP-FPM й розширення
ServBay пропонує веб-розробникам потужне та гнучке локальне середовище для PHP. Щоб задовольнити потреби різних проєктів, може виникнути необхідність змінити різні параметри PHP, як-от ліміти пам’яті, розмір файлів для завантаження, рівень повідомлень про помилки або увімкнути певні додаткові модулі.
У цій статті детально розглядається процес зміни налаштувань PHP у ServBay. Сервіс рекомендує і надає зручний графічний інтерфейс (UI) для керування параметрами. Хоча корисно розуміти, де знаходяться та як влаштовані конфігураційні файли (наприклад, php.ini
і php-fpm.conf
), наполегливо радимо вносити зміни через UI ServBay, щоб забезпечити збереження й сумісність налаштувань.
Важлива інформація
Будь ласка, не редагуйте вручну конфігураційні файли PHP, які генерує ServBay (вони знаходяться у /Applications/ServBay/etc/php/<version>/
та підпапках). Цими файлами керує сам ServBay, і будь-які ручні зміни буде перезаписано під час оновлення, перезапуску чи інших дій сервісу. Усі зміни конфігурації слід здійснювати лише через інтерфейс користувача ServBay.
Огляд
У ServBay налаштування для різних версій PHP розміщені у власних окремих каталогах. Наприклад, основний конфігураційний файл для PHP 8.3 знаходиться в /Applications/ServBay/etc/php/8.3
.
Основні файли конфігурації:
php.ini
: головний конфігураційний файл PHP, впливає на налаштування як у CLI, так і у веб-середовищі.php-fpm.conf
: конфігурація PHP-FPM (FastCGI Process Manager), визначає роботу та продуктивність PHP у складі веб-сервера (наприклад, Caddy чи Nginx).conf.d/
: цей каталог містить конфігураційні файли окремих розширень PHP (файли.ini
), наприклад,xdebug.ini
,opcache.ini
та інші.
Попри наявність цих файлів, ServBay пропонує більш безпечний і зручний спосіб редагування їхніх параметрів.
Налаштування PHP через інтерфейс користувача ServBay (рекомендовано)
ServBay забезпечує інтуїтивно зрозумілий графічний інтерфейс для безпосередньої зміни конфігураційних параметрів PHP. Після внесення змін через UI та збереження ServBay застосує налаштування автоматично і, за потреби (зазвичай автоматично), виконає перезапуск служби PHP — без потреби вручну змінювати файли чи виконувати командний рядок.
Щоб відкрити інтерфейс налаштувань PHP:
- Відкрийте головне вікно ServBay.
- У лівому меню натисніть Мови.
- Серед списку мов програмування знайдіть і виберіть потрібну версію PHP (наприклад, натисніть
PHP 8.3
). - У правій частині з’явиться детальна інформація й опції налаштувань обраної версії PHP.
Типова сторінка інтерфейсу налаштувань PHP виглядає так:
Зазвичай інтерфейс складається з трьох основних розділів, які відповідають налаштуванню PHP-FPM, PHP (php.ini
) та розширень. Розглянемо їх детальніше.
Налаштування PHP-FPM
Порада
Зміни у php-fpm.conf
впливають лише на поведінку PHP під час обробки веб-запитів. Налаштування через ServBay у цьому розділі пріоритетні (перекривають) відповідні параметри з php.ini
, але діють тільки на веб-запити. Ці зміни не впливають на роботу PHP у командному рядку (CLI).
Веб-сервер ServBay (Caddy або Nginx) використовує PHP-FPM для обробки PHP-коду. В інтерфейсі налаштувань PHP-FPM ви можете змінювати різні параметри, що впливають на продуктивність і стабільність у веб-середовищі, зокрема:
- Управління процесами (
pm
): визначає, як FPM створює й керує робочими процесами (dynamic
,static
тощо). - Кількість процесів (
pm.max_children
,pm.start_servers
тощо): встановлює максимум дочірніх процесів, кількість процесів при старті й інші параметри для роботи з багатьма одночасними користувачами. - Ліміт пам’яті (
memory_limit
): налаштування тут перекриває однойменний параметр уphp.ini
і діє лише для веб-запитів. - Журнали помилок та їхнє відображення: вибір шляху до журналу помилок, рівень повідомлень, відображення помилок у браузері.
Наприклад, щоб збільшити ліміт пам’яті PHP у веб-середовищі з дефолтних 64МБ чи 128МБ до 1ГБ — просто оберіть у ServBay у секції налаштувань PHP-FPM потрібну опцію для memory_limit
(наприклад, 1G
) і натисніть "Зберегти". Це не вплине на PHP у командному рядку — CLI продовжить використовувати налаштування php.ini
.
Приклад: Якщо в php.ini
для memory_limit
задано 512M
, а у PHP-FPM встановлено 128M
:
- Скрипти, запущені через CLI, мають доступний ліміт пам’яті
512M
; - Для PHP-скриптів, що виконуються через веб-сервер, ліміт становитиме
128M
.
Налаштування php.ini
Порада
Параметри у php.ini
є глобальними й впливають на PHP як у CLI, так і у веб-середовищі. Проте, для веб-запитів однойменні параметри у PHP-FPM мають пріоритет.
Розділ налаштувань PHP відповідає основним параметрам із php.ini
. Тут доступні численні опції, зокрема:
post_max_size
: максимальний розмір даних, які відправляються через POST.upload_max_filesize
: максимальний розмір файлу при завантаженні.date.timezone
: стандартний часовий пояс для PHP-скриптів.display_errors
/error_reporting
: відображення помилок і рівень журналювання.max_execution_time
: максимальний час виконання скрипта (секунди).disable_functions
/disable_classes
: вимкнення певних функцій або класів PHP для підвищення безпеки.open_basedir
: обмеження щодо доступу PHP до файлів у файловій системі. Рекомендується всі проєкти зберігати у стандартній папці/Applications/ServBay/www
, що дає змогу легко налаштуватиopen_basedir
для цього каталогу.
Внести зміни до базових налаштувань php.ini
можна прямо в інтерфейсі ServBay.
Детальний опис усіх полів php.ini
дивіться в офіційній документації PHP: PHP Runtime Configuration.
Налаштування розширень PHP
ServBay вже містить у комплекті велику кількість популярних розширень PHP для роботи з базами даних, кешування, налагодження, підтримки фреймворків тощо. В інтерфейсі ServBay можна легко вмикати й вимикати потрібні модулі, а також налаштовувати їхні параметри.
Серед популярних модулів: xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
тощо. Також підтримується багато додаткових розширень для взаємодії з різними СУБД (MySQL, PostgreSQL, MongoDB), чергами повідомлень, кешами та іншим.
Для увімкнення чи вимкнення розширення:
- У UI інтерфейсі ServBay перейдіть на вкладку “Розширення” (або подібну).
- Знайдіть потрібний модуль у переліку (наприклад,
xdebug
). - Активуйте або вимкніть розширення через перемикач.
- Для модулів з додатковими налаштуваннями (наприклад,
xDebug
) на екрані можна змінити параметри (xdebug.mode
,xdebug.client_port
тощо). - Натисніть "Зберегти" для застосування змін.
Зі списком усіх підтримуваних у ServBay розширень PHP та подробицями можете ознайомитись у документації (дивіться найактуальнішу версію).
Структура конфігураційних файлів PHP (редагування вручну не рекомендоване)
Попри те, що основні налаштування потрібно робити через UI ServBay, базове розуміння розміщення та вмісту конфігураційних файлів допоможе краще орієнтуватися в механіці роботи PHP.
Всі файли конфігурації, які генерує ServBay, знаходяться у каталогах /Applications/ServBay/etc/php/<version>/
.
php.ini
— основний конфігураційний файл.php-fpm.conf
— файл налаштувань менеджера процесів PHP-FPM.conf.d/
— конфігураційні файли для окремих розширень PHP.
Приклад структури файлу php.ini
Файл php.ini
складається у форматі INI. Ось приклади типових параметрів у цьому файлі:
ini
; Зміна ліміту пам’яті
memory_limit = 256M
; Зміна ліміту розміру файлів для завантаження
upload_max_filesize = 50M
post_max_size = 50M
; Налаштування часового поясу
date.timezone = "Asia/Shanghai" ; або "UTC", "America/New_York" тощо, вкажіть потрібний
; Увімкнення відображення помилок (актуально лише для розробки!)
display_errors = On
error_reporting = E_ALL
; Зміна максимального часу виконання скрипта
max_execution_time = 300
; Обмеження доступу до певних шляхів файлової системи (приклад)
; open_basedir = /Applications/ServBay/www/:/tmp/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Приклад структури php-fpm.conf
Файл php-fpm.conf
містить глобальні налаштування й налаштування пулів (pool). У ServBay за замовчуванням налаштовано пул з назвою www
.
ini
[global]
; Шлях до глобального журналу помилок
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; Адреса і порт або шлях сокета для прослуховування
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; Користувач і група (у ServBay зазвичай використовується поточний користувач)
; user = servbay-demo
; group = staff
; Режим керування процесами (static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; Максимальна кількість дочірніх процесів
pm.start_servers = 2 ; Кількість процесів при старті
pm.min_spare_servers = 1 ; Мінімум неактивних процесів
pm.max_spare_servers = 6 ; Максимум неактивних процесів
pm.max_requests = 1024 ; Максимальна кількість запитів на процес, після цього перезапуск
; Увімкнення логування повільних запитів (усі, що тривають довше request_slowlog_timeout)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; php-параметри, які перекривають однойменні у php.ini (приклад)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Приклад налаштування розширень (conf.d/)
Файли .ini
у каталозі conf.d/
використовуються для завантаження/налаштування PHP-модулів. Наприклад, файл xdebug.ini
може виглядати так:
ini
[Xdebug]
; Завантаження xdebug-розширення
zend_extension = xdebug.so
; Режими Xdebug (debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; Як запускається відлагодження (yes, trigger, develop)
; yes: завжди запускати відлагодження
; trigger: запуск відлагодження лише за тригером (GET/POST параметр або cookie)
; develop: лише інструменти для розробників (наприклад, трасування стека)
xdebug.start_with_request=yes
; Хост та порт для підключення до IDE
xdebug.client_host=localhost
xdebug.client_port=39083
; Шлях до лог-файлу Xdebug
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Звертаємо увагу: попри те, що ці файли доступні у файловій системі, не слід їх редагувати вручну — завжди використовуйте UI ServBay для зміни налаштувань.
Застосування змін: перезапуск PHP
Після зміни налаштувань через UI ServBay сервіс, як правило, автоматично застосовує зміни. В окремих випадках може знадобитись примусовий перезапуск відповідної служби PHP, щоб нові налаштування набрали чинності.
Як перезапустити PHP:
Перезапуск через інтерфейс ServBay
- Відкрийте головне вікно ServBay.
- У лівому меню натисніть Пакети програм.
- Знайдіть потрібну версію PHP з редагованими налаштуваннями.
- Поруч натисніть кнопку перезапуску (зазвичай це іконка у вигляді стрілки по колу).
Перезапуск через командний рядок з servbayctl
Для тих, хто віддає перевагу терміналу, ServBay пропонує CLI-утиліту servbayctl
для керування службами, зокрема — для перезапуску потрібної версії PHP.
Відкрийте "Термінал" і скористайтеся командою (замість 8.3
вкажіть версію, яку треба перезапустити):
bash
servbayctl restart php 8.3
1
Після виконання команди ServBay перезапустить зазначений PHP-FPM, і зміни набудуть чинності.
Питання-відповіді (FAQ)
Питання: Я змінив файл
php.ini
вручну, чому зміни не застосовуються або скидаються?- Відповідь: ServBay автоматично керує та генерує конфігураційні файли для своїх пакетів. Всі ручні зміни будуть перезаписані при оновленні, перезапуску чи інших операціях. Використовуйте лише графічний інтерфейс ServBay для зміни настройок PHP — це рекомендований і гарантовано стійкий підхід.
Питання: Як збільшити ліміт пам’яті чи розмір файлу для завантаження в PHP?
- Відповідь: Відкрийте ServBay, перейдіть у Мови → виберіть потрібну версію PHP. У налаштуваннях PHP-FPM змініть
memory_limit
(впливає на веб-запити), а у розділі php.ini —upload_max_filesize
іpost_max_size
(впливає на глобально, у веб-середовищі може бути перекрито параметрами FPM). Після збереження перезапустіть PHP.
- Відповідь: Відкрийте ServBay, перейдіть у Мови → виберіть потрібну версію PHP. У налаштуваннях PHP-FPM змініть
Питання: Як увімкнути або налаштувати Xdebug?
- Відповідь: Відкрийте ServBay, оберіть у списку версію PHP, далі розділ розширень. Знайдіть
xdebug
, увімкніть його і за потреби налаштуйте параметри (xdebug.mode
,xdebug.client_host
,xdebug.client_port
тощо). Збережіть і перезапустіть PHP.
- Відповідь: Відкрийте ServBay, оберіть у списку версію PHP, далі розділ розширень. Знайдіть
Питання: Чим відрізняються налаштування у
php.ini
й PHP-FPM — який файл треба змінювати?- Відповідь:
php.ini
— це глобальний файл з налаштуваннями для PHP як у командному рядку (CLI), так і для веб. Конфігурація PHP-FPM (php-fpm.conf
) специфічна саме для веб-сервера, і однойменні параметри тут мають пріоритет над відповідними параметрами зphp.ini
. Змінюйте PHP-FPM для тих установок, які впливають на веб-код (наприклад, ліміт пам’яті, максимальну тривалість, відображення помилок), і редагуйте php.ini — для глобальних і CLI-настройок (часовий пояс, вимкнення функцій тощо). У ServBay ці налаштування чітко розділені UI.
- Відповідь:
Висновок
ServBay через свій графічний інтерфейс дає простий та безпечний спосіб керувати всіма основними параметрами PHP — і в php.ini
, і у PHP-FPM, і для розширень. Змінюйте налаштування лише через UI, зберігайте і, якщо треба, перезапускайте PHP-сервіс — так ви гарантовано отримаєте стабільне середовище. Знання структури нижчого рівня корисне для розуміння роботи, але уникайте ручних змін — вони можуть перезаписуватися без попередження. Використовуйте гнучкі можливості ServBay для покращення вашого PHP-середовища так, як вимагається для конкретних проєктів.