Управління версіями PHP у ServBay: Посібник із налаштування для командного рядка та веб-середовища
ServBay — потужний інструмент для локальної веб-розробки на macOS із підтримкою різних мов програмування та баз даних. У цій статті докладно пояснюється, як гнучко керувати версіями PHP для окремих проектів у ServBay — як при запуску скриптів із командного рядка, так і при обслуговуванні певного сайту через веб-сервер. Засвоївши механізми керування версіями PHP у ServBay, ви значно підвищите ефективність своєї роботи та забезпечите ізольованість та стабільність проектного оточення.
1. Командний рядок: Управління PHP-версіями за допомогою .servbay.config
Створивши у корені проекту файл-конфігурацію .servbay.config
, розробник може задати незалежну версію PHP для кожного проекту в середовищі командного рядка. ServBay автоматично визначає потрібну версію PHP на основі поточного каталогу, до якого прив’язаний термінал, — це унеможливлює конфлікти глобальних налаштувань між різними проектами.
1. Призначення та принцип роботи .servbay.config
- Проектний контроль версій: ServBay дає можливість одночасно встановлювати й запускати кілька версій PHP — від 5.6 до найновіших стабільних і розробницьких релізів. Завдяки
.servbay.config
ви чітко вказуєте необхідну версію PHP саме для цього проекту. - Перемикання без втручання у систему: Коли ви переходите у терміналі (за допомогою
cd
) у каталог із файлом.servbay.config
, ServBay автоматично розпізнає цей файл і тимчасово змінює змінні оточення сеансу терміналу (насамперед PATH). Завдяки цьому команди на кшталтphp
абоcomposer
звертаються саме до обраної виконуваної версії PHP. Коли ви полишаєте директорію, оточення повертається до глобальних налаштувань ServBay — ніяких побічних ефектів для системного середовища.
2. Як налаштувати
Створіть у кореневій папці вашого проекту файл з назвою .servbay.config
і пропишіть у ньому, яку версію PHP слід використовувати:
bash
# Вказуємо версію PHP для цього проекту (наприклад, PHP 8.3)
PHP_VERSION=8.3
# Якщо проект потребує певної версії Node.js, можна додати її так само (наприклад, Node.js 20)
# NODE_VERSION=20
1
2
3
4
5
2
3
4
5
- Значення
PHP_VERSION
має відповідати встановленій у ServBay версії PHP — зазвичай це номер основної або основної+додаткової версії (як-от7.4
,8.1
,8.3
,8.5
тощо). Перед використанням переконайтесь, що ця версія у вас вже встановлена й активована. - За аналогією налаштовується й
NODE_VERSION
— для визначення версії Node.js у поточному проекті.
Як переконатися, що налаштування працює:
У терміналі у каталозі з .servbay.config
виконайте такі команди:
bash
$ pwd # Перевірте, що ви у корені проекту
$ php -v # Переконайтесь, що версія PHP збігається з вказаною (наприклад, PHP 8.3.x)
$ composer install # Всі залежності буде встановлено для активної наразі версії PHP
1
2
3
2
3
Якщо після зміни .servbay.config
версія не перемкнулася — спробуйте закрити та відкрити термінал заново або виконайте cd .
для форсованого перезавантаження конфігурації ServBay.
3. Важливі нюанси та додаткові можливості
- Сумісність версій: Якщо під час виконання команд проекту з’являються помилки на кшталт "Class not found" або "Call to undefined function", перевірте, чи сумісні вимоги залежностей у
composer.json
із вказаною вами версією PHP. Деякі старі проекти потребують розширень чи функцій, вже видалених у нових релізах (наприклад, розширенняmcrypt
було прибрано починаючи з PHP 7.2). - Глобальні налаштування: Якщо у поточному чи вищих за ієрархією каталогах немає файлу
.servbay.config
, ServBay підставить глобально визначену у GUI версію PHP. - Керування декількома середовищами: Через
.servbay.config
можна задавати не лише версію PHP, а також Node.js (черезNODE_VERSION
). Це корисно, якщо бекенд проекту працює на PHP, а для фронтенду потрібен специфічний Node.js (наприклад, з Webpack чи Vite).
4. Приклад в роботі
Демонстрація автоматичного перемикання версій PHP між різними проектами через .servbay.config
:
Пояснення до зображення: у ServBay після переходу до директорії з різним
.servbay.config
, команда php -v
показує, що версія PHP у терміналі автоматично відповідає зазначеній у конфігураційному файлі.
2. Веб-середовище: Керування PHP-версіями через графічний інтерфейс ServBay
Графічний інтерфейс ServBay дозволяє для кожного сайта обирати незалежну версію PHP. Оточення веб-сайту ізольоване від версії PHP, яка використовується у командному рядку, тому ви можете вибирати її під специфічні вимоги проекту.
1. Покрокове налаштування
- Запустіть ServBay: Відкрийте програму ServBay на вашому Mac.
- Керування сайтами: На головній панелі навігації ліворуч перейдіть до вкладки Сайти (Websites).
- Додавання або редагування сайту:
- Натисніть + у лівому нижньому куті для створення нового сайту.
- Якщо потрібно — оберіть вже наявний сайт для редагування.
- Вкажіть параметри сайту:
- Root Directory (корінна директорія): Вкажіть шлях до папки із файлами сайту. Рекомендується використовувати піддиректорії у
/Applications/ServBay/www/
, наприклад,/Applications/ServBay/www/your-website-name/public
(для проектів на кшталт Laravel чи Symfony). - Domain (домен): Призначте локальний домен для доступу до сайту, наприклад,
your-website-name.servbay.demo
. ServBay автоматично налаштує локальний DNS та HTTPS-сертифікати (через ServBay User CA або ServBay Public CA) — це значно спрощує і прискорює розробку. - PHP Version (версія PHP): Оберіть у випадаючому списку версію PHP для цього сайту. ServBay покаже всі доступні й активовані версії (наприклад: 7.4, 8.1, 8.3, 8.5).
- Root Directory (корінна директорія): Вкажіть шлях до папки із файлами сайту. Рекомендується використовувати піддиректорії у
- Збережіть налаштування: Після внесення змін натисніть "Зберегти" — ServBay самостійно застосує зміни, може знадобитися перезапуск чи оновлення відповідних служб (web-сервер, PHP-FPM).
2. Технічні подробиці та переваги
- Ізоляція сервісів: Кожен сайт у ServBay працює зі своєю версією PHP у незалежному пулі процесів PHP-FPM. Тобто помилки чи витоки пам’яті на одному сайті ніяк не вплинуть на інші.
- Оптимізація для різного “заліза”: Всі пакети (PHP та інші) оптимізовані для ARM64 (Apple Silicon) й X86_64 — тож продуктивність максимальна на будь-якому Mac.
- Відлагодження:
- Журнал помилок PHP: всю діагностику дивіться у файлі
/Applications/ServBay/var/log/php/php_error.log
. - Стан процесів PHP-FPM: за допомогою командного рядка ServBay (
servbayctl status php 8.3
) можна швидко перевірити здоров’я певної версії PHP.
- Журнал помилок PHP: всю діагностику дивіться у файлі
3. Інтеграція з веб-серверами та базами даних
ServBay надає гнучкість у налаштуванні веб-сервера та бази даних для кожного проекту:
- Підтримка різних веб-серверів: Починаючи із ServBay 1.7.0 можна вибрати, з яким веб-сервером працює сайт — Apache, Nginx чи Caddy. Всі вони інтегруються із PHP-FPM, якими керує ServBay.
- Працює з багатьма базами даних: Можна встановити й керувати кількома версіями MySQL, MariaDB, PostgreSQL, MongoDB, Redis тощо. У налаштуваннях сайту або прямо у коді проекту підключайтеся до відповідної інстанції — це особливо корисно для проектів, які вимагають специфічних версій баз, наприклад, деякі Laravel-проекти підходять лише для MariaDB 11.x.
3. Робота з різними середовищами й рекомендації
Розуміння принципу незалежності налаштувань PHP для командного рядка і сайтів допоможе грамотно обрати спосіб управління у різних ситуаціях:
Сценарій | Налаштування командного рядка (.servbay.config ) | Налаштування для сайтів (через GUI ServBay) | Примітки |
---|---|---|---|
Підтримка легасі-проекту | У корені проекту прописати PHP_VERSION=5.6 | У налаштуваннях сайту вибрати PHP 5.6 | Переконайтеся, що потрібна версія PHP та розширення встановлені. |
Розробка нового проекту (наприклад, Laravel 11) | Вказати PHP_VERSION=8.3 (або новіше), можливо, й NODE_VERSION=20 | Додати новий сайт, корінна папка — public , обрати PHP 8.3+, домен та HTTPS | Бажано, щоб версії PHP у CLI й веб-оточенні збігалися. |
Тестування майбутніх релізів PHP | Пропишіть у тестовому проекті PHP_VERSION=8.5 | Додайте тестовий сайт і виберіть PHP 8.5 | Для перевірки сумісності проекту з новою версією PHP. |
Виконання команд Composer | Перевірте, що .servbay.config в актуальній директорії містить правильний PHP | N/A (Composer зазвичай працює через CLI) | Composer бере версію PHP із поточного оточення терміналу. |
Важливі зауваження
- Відмінності CLI та веб-середовища: Навіть якщо ви використовуєте однакову версію PHP у терміналі та у веб-серверах (через PHP-FPM), налаштування та завантажені розширення можуть відрізнятись. Наприклад, розширення
opcache
для продуктивності зазвичай активне в PHP-FPM, але може бути вимкнене для CLI. Якщо ви помітили різні поведінки — перевірте відповідний файлphp.ini
(у ServBay на кожну версію PHP — своя копія) та підключені розширення. - Оновлення ServBay Runtime: Регулярно оновлюйте додаток ServBay та його Runtime — команда постійно випускає нові версії PHP і безпекові патчі. Оновлення додатку призводить до автоматичного оновлення Runtime, тож ви завжди отримуєте найсвіжіші можливості й виправлення.
Поширені запитання (FAQ)
Q: Що робити, якщо версії PHP у CLI та на сайті не збігаються?
A: Командний рядок (керується через .servbay.config
) і веб-середовище (налаштовується через графічний інтерфейс ServBay) — це окремі ізольовані оточення. .servbay.config
впливає лише на специфічну сесію терміналу — якій версії підпорядковані виконувані файли php
та composer
. В налаштуваннях сайту вибір PHP визначає, яка версія обробляє веб-запити через Apache/Nginx/Caddy + PHP-FPM. Ці налаштування не конфліктують. Відрізняти версії можна, але для зручності й відсутності неочікуваних багів бажано тримати однакові версії PHP у обох оточеннях.
Висновок
ServBay завдяки файлу .servbay.config
та зручному графічному інтерфейсу забезпечує потужне і гнучке керування версіями PHP для локальної розробки. Незалежно від того, чи ви підтримуєте старий проект на застарілій версії PHP, чи впроваджуєте інновації на найсвіжішому релізі, ServBay стане вашим надійним помічником. Грамотне використання цих можливостей наблизить ваше локальне середовище до продакшна, зробить розробку стабільнішою та підвищить вашу результативність.