Керування версіями PHP в ServBay: довідник щодо командного рядка та налаштування середовища сайтів
ServBay — це потужний локальний інструмент для веб-розробки, який підтримує macOS та Windows, а також різноманітні мови програмування та бази даних. У цьому гайді детально розглянуто, як ефективно управляти версіями PHP для різних проєктів у ServBay — як для виконання скриптів у терміналі, так і для обслуговування конкретних сайтів. Володіння механізмами керування версіями PHP у ServBay дозволяє значно підвищити продуктивність розробки та забезпечити ізоляцію й стабільність середовища для кожного проєкту.
1. Командний рядок: Керування версією PHP на рівні проєкту через .servbay.config
Створивши конфігураційний файл .servbay.config
у кореневій теці проєкту, розробник може призначити окрему версію PHP для цього проєкту в командному рядку. ServBay автоматично підвантажує відповідне середовище PHP залежно від теки, в якій відкрито термінал, — таким чином досягається ізоляція версій між проєктами та запобігаються глобальні конфлікти налаштувань.
1.1. Призначення та принцип роботи .servbay.config
- Контроль версії на рівні проєкту: ServBay дозволяє одночасно встановлювати та запускати декілька версій PHP — від PHP 5.6 аж до найновіших стабільних та девелоперських бранчів. За допомогою
.servbay.config
ви можете точно визначити потрібну версію PHP для кожного окремого проєкту. - Бездоганний перехід: Коли ви переходите (
cd
) у терміналі до теки з файлом.servbay.config
, ServBay автоматично виявляє його й тимчасово змінює змінні середовища поточної сесії (головним чиномPATH
), щобphp
,composer
та інші команди використовували зазначене виконуване PHP. Після виходу із цієї теки середовище повертається до глобальних налаштувань ServBay — при цьому жодних змін у системних налаштуваннях не відбувається.
1.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
має відповідати ідентифікатору встановленої версії PHP у ServBay — зазвичай це основна або основна + додаткова версія (наприклад7.4
,8.1
,8.3
,8.5
тощо). Переконайтесь, що згадана версія вже встановлена та активована у ServBay.- Аналогічно можна вказати
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.
1.3. Важливі нюанси та лайфхаки
- Сумісність версій: Якщо під час виконання команд з’являються помилки типу "Class not found" чи "Call to undefined function", насамперед звірте діапазон потрібної версії PHP у залежностях проєкту (
composer.json
) та переконайтесь, що вказана вами версія підходить. Деякі старі проєкти можуть потребувати бібліотек/модулів, видалених у нових версіях PHP (наприклад, розширенняmcrypt
більше немає з PHP 7.2). - Значення за замовчуванням: Якщо у поточній чи батьківських теках відсутній
.servbay.config
, тоді ServBay застосовує глобальну версію PHP, задану у графічних налаштуваннях. - Інтеграція декількох сервісів: За допомогою
.servbay.config
можна окремо вказувати версію Node.js (NODE_VERSION
), що особливо корисно для проєктів, де PHP використовується для бекенду, а Node.js — для фронтенд-білду (наприклад, Webpack чи Vite).
1.4. Приклад запуску
Нижче показано, як .servbay.config
забезпечує автоматичне перемикання версії PHP під час переходу між проєктними тек:
Пояснення до зображення: У ServBay при вході в різні теки з різними файлами
.servbay.config
, виконання php -v
у терміналі показує, як середовище автоматично перемикається на зазначену в файлі версію PHP.
2. Середовище сайтів: Керування версією PHP через графічний інтерфейс ServBay
ServBay надає зручний інтерфейс для призначення окремої версії PHP кожному сайту. При цьому версія PHP для сайту ізольована від версії у командному рядку, тож ви можете легко адаптувати середовище під різні потреби.
2.1. Кроки налаштування
- Відкрийте графічний інтерфейс ServBay: Запустіть додаток ServBay.
- Перейдіть до керування сайтами: Натисніть вкладку Websites (Сайти) у лівій панелі навігації.
- Додайте або відредагуйте сайт:
- Щоб додати новий сайт, натисніть кнопку + у нижньому лівому куті.
- Або оберіть існуючу конфігурацію сайту для редагування.
- Вкажіть параметри сайту:
- Root Directory (коренева тека): Оберіть тека з файлами вашого сайту. Рекомендовано використовувати стандартний шлях ServBay —
/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 —
- Збережіть налаштування: Після завершення натисніть кнопку збереження. Нова конфігурація застосовується автоматично, якщо потрібно — ServBay перезапустить веб-сервер і PHP-FPM.
2.2. Технічні деталі та переваги
- Ізоляція сервісів: ServBay запускає кожну версію PHP для окремого сайту у своєму процесі PHP-FPM. Це забезпечує повну ізоляцію між сайтами, тому помилки чи витік пам’яті на одному сайті не впливають на інші.
- Оптимізація продуктивності: Пакети ServBay (включаючи всі версії PHP) оптимізовані під ARM64 (Apple Silicon) і X86_64, гарантуючи високу швидкість незалежно від апаратної платформи.
- Діагностика помилок:
- Перевірте лог-файл помилок PHP:
/Applications/ServBay/var/log/php/php_error.log
. - Контролюйте стан процесу PHP-FPM через інструмент
servbayctl
— наприклад,servbayctl status php 8.3
.
- Перевірте лог-файл помилок PHP:
2.3. Інтеграція веб-серверів та баз даних
ServBay має гнучку архітектуру, що дозволяє підібрати оптимальний стек під проєкт:
- Підтримка веб-серверів: Починаючи з ServBay 1.7.0, можна перемикати використовуваний веб-сервер для сайту — обирайте Apache, Nginx або Caddy. Всі вони інтегруються з керуванням PHP-FPM від ServBay.
- Мультиверсійні бази даних: ServBay підтримує встановлення кількох версій MySQL, MariaDB, PostgreSQL, MongoDB, Redis тощо. У конфігураціях сайту чи проєкту можна легко підключатись до потрібної інстанції, спрощуючи розробку проєктів з унікальними вимогами (наприклад, для Laravel може знадобитися MariaDB 11.x).
3. Співпраця між середовищами та рекомендації
Розуміння незалежності та конфігурації версій PHP для командного рядка й сайтів допоможе грамотно обирати підхід для кожної задачі:
Сценарій | Налаштування командного рядка (.servbay.config ) | Налаштування сайту (ServBay GUI) | Коментарі |
---|---|---|---|
Підтримка легасі-систем | Вказати PHP_VERSION=5.6 у кореневій теці | Вибрати PHP 5.6 у настройках сайту | Переконайтесь, що потрібна версія PHP та розширення уже доступні у ServBay. |
Розробка нового проєкту (Laravel 11) | Вказати PHP_VERSION=8.3 (або новіше), можна також NODE_VERSION=20 | Додати сайт, коренева тека — public , вибрати PHP 8.3+, призначити домен, ввімкнути HTTPS | Синхронізуйте версії PHP для CLI, Composer, Artisan, Node й веб-середовища. |
Тестування майбутньої версії PHP | Вказати PHP_VERSION=8.5 у корені тестового проєкту | Додати тестовий сайт із PHP 8.5 | Добре для попереднього тестування сумісності з новим PHP. |
Запуск Composer-команд | Впевнитись, що .servbay.config у поточній або верхній теці вказує коректну версію PHP | N/A (Composer використовується у CLI) | Composer автоматично працює з поточною активною версією PHP у цьому сеансі. |
Важливі примітки
- Відмінності CLI та Web середовищ: Навіть для однакових версій PHP налаштування за замовчуванням та набір активних розширень можуть відрізнятися — наприклад,
opcache
зазвичай активний у PHP-FPM для підвищення швидкості, але вимкнений у CLI. Якщо спостерігаєте різне поводження, перевіряйте відповідніphp.ini
та перелік розширень у кожному середовищі (ServBay має окремийphp.ini
для кожної версії PHP). - Оновлення ServBay Runtime: Слідкуйте, щоб додаток ServBay та Runtime були актуальними. Команда ServBay постійно додає нові релізи PHP та патчі безпеки. Оновлення додатку автоматично оновлює Runtime й дозволяє користуватись найсвіжішими можливостями та виправленнями.
Часті питання (FAQ)
Q: Що робити, якщо версія PHP у командному рядку та на сайті різна?
A: Командний рядок (керується через .servbay.config
) й сайт (через GUI ServBay) — це незалежні середовища. Файл .servbay.config
впливає лише на те, яку версію PHP буде бачити термінал у поточній сесії; у той час як налаштування сайту визначають, яку версію PHP використовує веб-сервер (Apache/Nginx/Caddy) та PHP-FPM для обслуговування запитів від браузера. Прямих конфліктів між ними не виникає. Можна призначати різні версії для CLI та для сайту (наприклад, для Composer/Artisan в командному рядку та для запитів із вебу), але заради сумісності середовищ рекомендується використовувати однакову версію PHP для обох.
Підсумок
ServBay надає два потужних механізми керування версією PHP — через файл .servbay.config
для проєкту та через простий графічний інтерфейс для сайтів. Із цими інструментами ви можете ефективно підтримувати легасі-проєкти на старих версіях, тестувати нові функції й розробляти сучасні додатки на актуальних релізах PHP. Використання цих функцій допоможе наблизити локальне середовище до продакшн і підвищити якість, швидкість та стабільність розробки.