Руководство по настройке PHP в ServBay: корректировка php.ini, PHP-FPM и модулей расширений
ServBay предоставляет мощную и гибкую локальную среду PHP для веб-разработчиков. Для удовлетворения требований различных проектов возможно потребуется изменить определённые настройки PHP, такие как лимит памяти, максимальный размер загружаемых файлов, уровень отчёта об ошибках или подключить нужные модули расширений.
В этом материале подробно описывается, как изменить конфигурацию PHP в ServBay. ServBay рекомендует и предоставляет удобный графический интерфейс (UI) для управления этими настройками. Хотя полезно знать, где физически располагаются и как структурированы файлы конфигурации (например, php.ini
, php-fpm.conf
), настоятельно рекомендуется вносить изменения через UI ServBay — это гарантирует стабильность и совместимость конфигурации.
Важно
Пожалуйста, не редактируйте вручную файлы конфигурации PHP, генерируемые ServBay (находятся по адресу /Applications/ServBay/etc/php/<version>/
и в его подпапках). Эти файлы полностью управляются ServBay, и все ручные изменения будут перезаписаны при обновлениях, перезапусках или других действиях в 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/
: директория для отдельных ini-файлов загрузки модулей PHP, таких какxdebug.ini
,opcache.ini
и др.
Хотя эти файлы существуют, ServBay предлагает гораздо более безопасный и удобный способ их настройки.
Настройка через интерфейс пользователя ServBay (рекомендуется)
ServBay оснащён интуитивно понятным GUI, который позволяет напрямую изменять параметры 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 через PHP-FPM. Раздел PHP-FPM UI позволяет настроить важные параметры, влияющие на производительность и стабильность:
- Управление процессами (
pm
): способ организации и создания процессов PHP-FPM (dynamic
,static
и др.). - Количество процессов (
pm.max_children
,pm.start_servers
и др.): определяет максимально возможное количество дочерних процессов и их поведение при запуске — регулирует параллелизм. - Ограничение по памяти (
memory_limit
): данная настройка перекрывает аналогичную изphp.ini
и применяется только для веб-запросов. - Логирование ошибок и отображение ошибок: настройка путей логов, уровней отчётов и параметров вывода ошибок в браузере.
Например, чтобы увеличить лимит памяти для PHP в веб-среде (допустим, с 64М или 128М по умолчанию до 1Гб), найдите параметр memory_limit
в разделе PHP-FPM, выберите значение 1G
и сохраните изменения. После этого лимит будет применяться только к скриптам, запускаемым через веб-сервер; для CLI будет использоваться лимит из php.ini
.
Пример различий: Если в php.ini
указано memory_limit = 512M
, а в настройках PHP-FPM — memory_limit = 128M
:
- При запуске PHP из CLI доступно 512 Мб памяти.
- Через веб доступно только 128 Мб.
Настройки php.ini
Совет
Параметры из php.ini
глобальны — они управляют поведением PHP как в CLI, так и в веб-среде. Однако, как указано выше, если аналогичный параметр переопределён через настройки PHP-FPM, именно он будет применяться для веб-запросов.
Раздел php.ini отвечает за основные настройки загрузки PHP. Здесь вы можете настроить:
post_max_size
: максимальный размер данных, отправляемых методом POST;upload_max_filesize
: максимальный возможный размер загружаемого файла;date.timezone
: часовой пояс по умолчанию;display_errors
/error_reporting
: вывод ошибок в браузер и уровень их репорта;max_execution_time
: максимальное время, отводимое на выполнение скрипта (секунды);disable_functions
/disable_classes
: запрет отдельных функций или классов для повышения безопасности;open_basedir
: ограничение доступных для PHP путей в файловой системе. Рекомендуется хранить все сайты в папке/Applications/ServBay/www
— так при настройке open_basedir можно указать просто этот путь, не перечисляя много отдельных директорий.
Эти и другие стандартные параметры легко изменяются прямо через UI ServBay.
Более подробно о всех возможностях php.ini
читайте в официальной документации PHP: PHP Runtime Configuration.
Настройка расширений PHP
В ServBay заранее установлены популярные модули расширений PHP — для баз данных, кэширования, отладки, работы с фреймворками и др. Через UI ServBay вы можете включать и отключать нужные расширения, а также изменять для них специфические параметры.
Некоторые из наиболее востребованных расширений: xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
и др. Также поддерживаются модули для работы с разнообразными базами данных (MySQL, PostgreSQL, MongoDB), очередями сообщений, кэш-системами и пр.
Включить или выключить расширение очень просто:
- В интерфейсе конфигурации PHP ServBay перейдите на вкладку «Расширения» (или аналогичную).
- Найдите нужный модуль, например,
xdebug
. - Включите или отключите его с помощью соответствующего переключателя.
- Для расширений с дополнительными настройками (например,
xDebug
) вы можете тут же задать параметры, такие какxdebug.mode
,xdebug.client_port
и др. - Нажмите кнопку сохранения для применения изменений.
Полный список поддерживаемых модулей, а также более подробную информацию смотрите в документации ServBay по списку расширений PHP (следите за актуальностью версии справки).
Структура файлов конфигурации PHP (редактировать вручную не рекомендуется)
Хотя мы настоятельно советуем работать только через UI ServBay, знание структуры файлов поможет глубже понять, как работает PHP.
Файлы, генерируемые ServBay для PHP, находятся в папке /Applications/ServBay/etc/php/<version>/
:
php.ini
: основной файл настроек;php-fpm.conf
: конфиг менеджера процессов PHP-FPM;conf.d/
: отдельные ini-файлы для модулей расширений.
Пример структуры файла php.ini
php.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/
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
.
[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
; Пользователь и группа (чаще всего — текущий пользователь macOS)
; 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 ; сколько запросов обработать перед перезапуском процесса (для предотвращения утечек памяти)
; Лог медленных запросов (slowlog); все запросы дольше указанного срока будут записаны сюда
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; Значения, перекрывающие параметры php.ini (пример)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
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
Пример загрузки расширения PHP (conf.d/)
В папке conf.d/
отдельные ini-файлы активируют и настраивают разные расширения, например, файл xdebug.ini
может содержать:
[Xdebug]
; Подключение расширения Xdebug
zend_extension = xdebug.so
; Режимы работы Xdebug (debug, develop, profile, trace, coverage)
xdebug.mode=debug,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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Ещё раз: не редактируйте эти файлы вручную! Делайте все изменения через интерфейс ServBay.
Применение изменений: перезапуск PHP
Обычно после изменения конфигурации через UI ServBay она применяется автоматически. В некоторых случаях может потребоваться вручную перезапустить нужную версию PHP для применения всех изменений.
Варианты перезапуска:
Перезапуск через интерфейс ServBay
- Откройте главное окно ServBay.
- В меню слева перейдите во вкладку Пакеты.
- Найдите версию PHP, которую вы настраивали.
- Нажмите на кнопку перезапуска рядом с этой версией (иконка с круговой стрелкой).
Перезапуск через командную строку с помощью servbayctl
Если вы предпочитаете работать из консоли, воспользуйтесь утилитой servbayctl
для управления сервисами ServBay, в том числе для перезапуска определённой версии PHP.
Откройте терминал и выполните (замените 8.3
на нужную вам версию):
servbayctl restart php 8.3
После этого ServBay перезапустит процесс PHP-FPM с новой конфигурацией.
Часто задаваемые вопросы (FAQ)
В: Я вручную изменил файл
php.ini
, но изменения не применились или были потеряны. Почему?- О: Файлы конфигураций пакетов ServBay генерируются и полностью управляются самой системой. Любые изменения, внесённые напрямую, могут быть перезаписаны после обновления конфигураций, перезапуска или других операций сервиса. Используйте только интерфейс ServBay для изменения PHP — это надёжно и гарантирует сохранность ваших настроек.
В: Как увеличить лимит памяти в PHP или максимальный размер загружаемых файлов?
- О: Откройте UI ServBay, войдите во вкладку Языки и выберите нужную версию PHP. В разделе PHP-FPM отредактируйте
memory_limit
(для веба), а в настройках php.ini найдитеupload_max_filesize
иpost_max_size
(это общесистемные параметры, могут быть перекрыты FPM). После сохранения перезапустите PHP-сервис.
- О: Откройте UI ServBay, войдите во вкладку Языки и выберите нужную версию PHP. В разделе PHP-FPM отредактируйте
В: Как включить или настроить Xdebug?
- О: В UI ServBay выберите нужную версию PHP, затем в разделе расширений найдите
xdebug
, включите модуль и задайте параметры (xdebug.mode
,xdebug.client_host
,xdebug.client_port
и пр.) в соответствии с вашей IDE и задачами отладки. Сохраните изменения и перезапустите PHP.
- О: В UI ServBay выберите нужную версию PHP, затем в разделе расширений найдите
В: В чём разница между
php.ini
и настройками PHP-FPM? Что мне стоит изменять?- О:
php.ini
— это глобальный конфиг PHP для CLI и веба. Конфиг PHP-FPM (php-fpm.conf
) определяет работу PHP именно в связке с веб-сервером, и все совпадающие параметры будут иметь приоритет над одним значением изphp.ini
(для веба). Для изменения параметров, влияющих на веб (память, таймауты, вывод ошибок), правьте настройки FPM; для CLI и базовых опций (часовой пояс, запрещённые функции) — php.ini. В UI ServBay эти настройки вынесены в разные секции.
- О:
Итоги
ServBay предоставляет удобный и безопасный способ управления всеми настройками PHP: php.ini
, PHP-FPM, модулями расширений — всё через один и тот же интерфейс. Вы можете корректировать параметры, быстро сохранять изменения и оперативно перезапускать сервис, а значит — создавать оптимальную среду разработки под конкретный проект. Зная, где лежат исходные файлы, не забывайте: все фактические изменения делайте только через ServBay UI, чтобы ваши настройки не были случайно потеряны. Используйте расширенные возможности ServBay — и настройте идеальную PHP-среду под любые задачи!