Як увімкнути модуль Swoole для PHP у ServBay
ServBay — це потужне локальне середовище для веб-розробки, що має вбудовані різноманітні інструменти та розширення, необхідні для розробників, включаючи високопродуктивне розширення Swoole PHP. Swoole — це асинхронний, паралельний і високопродуктивний мережевий рушій для PHP, який суттєво підвищує продуктивність і масштабованість PHP-додатків. У цій статті ви дізнаєтеся, як легко активувати розширення Swoole у ServBay та скористатися його потужними можливостями для створення ще ефективніших PHP-додатків та сервісів.
Про фреймворк Swoole
Swoole — це проект з відкритим кодом, що надає PHP можливості, подібні до Node.js: асинхронний I/O, корутини, мультипроцесорність та інші сучасні функції. Завдяки Swoole PHP-розробники можуть позбутися обмежень синхронної блокуючої моделі традиційних веб-серверів (наприклад, Apache/Nginx + PHP-FPM) і створювати постійно працюючі сервіси з високою продуктивністю, зокрема:
- Високопродуктивні API-шлюзи
- Додатки для реального часу (WebSocket)
- Ігрові сервери
- IoT-додатки (Інтернет речей)
- Фонові сервіси і обробка завдань
Основні особливості Swoole
- Висока продуктивність: Реалізація асинхронного неблокуючого I/O на основі системних викликів epoll/kqueue, з додатковою підтримкою багатопоточності/мультипроцесорності/корутин для забезпечення високої пропускної здатності й низької затримки.
- Асинхронність і корутини: Підтримка корутин дозволяє писати асинхронний код у звичній синхронній манері, чим значно підвищується ефективність розробки.
- Багатий набір компонентів: Вбудовані HTTP-, WebSocket-, TCP-, UDP-сервери та клієнти, а також пул з’єднань, таймери, керування процесами тощо.
- Легка інтеграція: Можливість роботи разом з відомими PHP-фреймворками (Laravel, Symfony, ThinkPHP та ін.), або створення чистих Swoole-додатків “з нуля”.
Підтримка модуля Swoole у ServBay
Усі версії PHP у ServBay постачаються вже з попередньо встановленим розширенням Swoole — не потрібно нічого завантажувати чи компілювати. ServBay самостійно керує сумісними версіями Swoole для різних версій PHP.
На даний момент ServBay дозволяє активувати Swoole для таких версій PHP:
- PHP 5.6
- Серія PHP 7.x
- Серія PHP 8.x (включаючи PHP 8.5)
ServBay автоматично підбирає правильну версію розширення Swoole відповідно до обраної вами версії PHP.
Необхідні умови
Перед активацією модуля Swoole переконайтеся:
- Ви успішно встановили та запустили ServBay.
- Ви встановили та вибрали у ServBay версію PHP, з якою плануєте використовувати Swoole.
Кроки для активації модуля Swoole
ServBay пропонує два способи ввімкнення Swoole: через графічний інтерфейс і вручну — шляхом редагування конфігураційних файлів. Рекомендуємо використовувати графічний інтерфейс через його зручність і наочність.
Ввімкнення через GUI ServBay (Рекомендується)
Це найбільш простий і швидкий спосіб активувати Swoole:
- Відкрийте графічний інтерфейс користувача ServBay.
- У лівому меню оберіть Мови (Languages).
- Натисніть PHP.
- У списку версій PHP праворуч знайдіть потрібну версію (наприклад,
PHP 8.3
) і переконайтеся, що вона обрана (зелена позначка). - Праворуч від цієї версії натисніть на кнопку Розширення (Extensions).
- У спливаючому списку знайдіть розширення swoole.
- Перемкніть тумблер ліворуч від swoole у положення “увімкнено” (колір стане зеленим).
- Натисніть Зберегти (Save) або Застосувати (Apply) внизу вікна.
- ServBay запропонує перезапустити відповідний сервіс PHP для завантаження нового розширення. Натисніть Перезапустити (Restart).
Після перезапуску сервісу модуль Swoole буде успішно активовано.
Ручне редагування конфігураційного файлу (Для досвідчених користувачів)
Якщо потрібно більш тонке налаштування, або ви віддаєте перевагу ручному керуванню, можна увімкнути Swoole через редагування файлу ini
для PHP.
Перейдіть у каталог
conf.d
для потрібної версії PHP. Каталогconf.d
містить додаткові налаштування/розширення; файли.ini
у цьому каталозі завантажуються ServBay автоматично. Для PHP 8.3 типовий шлях:/Applications/ServBay/etc/php/8.3/conf.d/
1Зверніть увагу: якщо ви обрали інший шлях для встановлення ServBay, скорегуйте його відповідно.
Знайдіть і відкрийте файл
swoole.ini
у цьому каталозі.За замовчуванням рядок для активації Swoole може бути закоментований (починається з
;
). Знайдіть наступний фрагмент:ini[Swoole] ; Uncomment the following line to enable Swoole ;extension = swoole.so
1
2
3Видаліть символ
;
, щоб розкоментувати рядокextension = swoole.so
:ini[Swoole] ; Uncomment the following line to enable Swoole extension = swoole.so
1
2
3Збережіть зміни у файлі
swoole.ini
.У головному вікні GUI ServBay або через панель керування сервісами знайдіть потрібний PHP-сервіс і натисніть кнопку перезапуску.
Після перезапуску модуль Swoole буде успішно завантажено згідно з налаштуваннями.
Перевірка успішної активації Swoole
Найзручніший спосіб — перевірити через функцію phpinfo()
, чи модуль Swoole вже завантажено.
- У кореневій директорії одного зі сайтів, які обслуговує ServBay (наприклад,
/Applications/ServBay/www/servbay.demo/public/
), створіть файл з назвоюphpinfo.php
. - Відкрийте цей файл і додайте такий код:php
<?php phpinfo(); ?>
1
2
3 - Переконайтеся, що ваш сайт
servbay.demo
налаштований у ServBay і вказує на директорію з цим файлом. - Відкрийте браузер і перейдіть за URL типу
https://servbay.demo/phpinfo.php
. - На сторінці phpinfo прокрутіть вниз або скористайтеся пошуком у браузері (Ctrl+F або Cmd+F), ввівши ключове слово "swoole".
Якщо ви бачите у виводі інформацію про Swoole (номер версії, конфігурації тощо), модуль активовано й працює коректно.
Наочність: пошук інформації про Swoole на сторінці phpinfo
Приклад використання Swoole
Після активації модуля Swoole ви можете одразу почати створювати додатки на його основі. Нижче наведено приклад створення простого HTTP-сервера на Swoole.
Приклад: створення простого HTTP-сервера на Swoole
Створення директорії проекту У вашій робочій директорії (наприклад,
/Applications/ServBay/www/
) створіть нову директорію для проекту, скажімо,my-swoole-app
. У ній створіть піддиректоріюpublic
для ваших вхідних файлів.bashcd /Applications/ServBay/www/ mkdir my-swoole-app cd my-swoole-app mkdir public
1
2
3
4Створіть вхідний файл сервера
public/index.php
php<?php require __DIR__ . '/../vendor/autoload.php'; // Якщо ви встановили додаткові залежності Composer use Swoole\Http\Server; use Swoole\Http\Request; use Swoole\Http\Response; // Створення HTTP-сервера, який слухає усі локальні IP (0.0.0.0) на порту 9501 $server = new Server("0.0.0.0", 9501); // Параметри сервера (необов’язково) // $server->set([ // 'worker_num' => 4, // Кількість робочих процесів // 'daemonize' => false, // Запускати як демон // ]); // Обробка події запиту $server->on("request", function (Request $request, Response $response) { // Встановити заголовок відповіді $response->header("Content-Type", "text/plain"); // Тіло відповіді $response->end("Hello ServBay with Swoole!"); }); // Слухати подію запуску сервера (необов'язково) $server->on("start", function (Server $server) { echo "Swoole http server is started at http://0.0.0.0:9501\n"; }); // Запуск сервера $server->start(); echo "Swoole server stopped.\n"; // Цей рядок виконається після зупинки сервера
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
30
31
32
33
34
35Примітка: Рядок
require __DIR__ . '/../vendor/autoload.php';
потрібен тільки у випадку, якщо ви встановлювали додаткові залежності через Composer (наприклад,swoole/ide-helper
чи інші бібліотеки Swoole). Для чистих Swoole-проектів цей рядок можна видалити.Запуск сервера з командного рядка Відкрийте термінал у ServBay (Terminal) або стандартний термінал системи, перейдіть у директорію проекту (
/Applications/ServBay/www/my-swoole-app/
). Упевніться, що поточний PHP відповідає версії, яку запускає ServBay (можете перевірити шлях черезwhich php
або скористатися терміналом ServBay).Запустіть Swoole-сервер такою командою:
shphp public/index.php
1Якщо все зроблено вірно, у терміналі з’явиться повідомлення на зразок "Swoole http server is started at http://0.0.0.0:9501".
Наочність: запуск Swoole-сервера у терміналі
Тестування доступу Після запуску сервера відкрийте у браузері адресу
http://localhost:9501
. На сторінці повинно з’явитися "Hello ServBay with Swoole!".Щоб зупинити сервер у терміналі, натисніть
Ctrl + C
.
На що варто звернути увагу
- Спосіб запуску: Наведений приклад розрахований на використання Swoole як окремого сервісу для постійної роботи у пам’яті. Традиційні web-додатки (Laravel, Symfony, WordPress тощо) типовою працюють під PHP-FPM і обслуговуються проксі-серверами Caddy або Nginx. Якщо ви хочете запускати такі фреймворки на базі Swoole (наприклад, Hyperf, Swoole-Laravel тощо), зазвичай потрібно використовувати окремі скрипти для старту, а сам процес буде виглядати так само, як і у “чистих” Swoole-проектах — тобто окремий процес.
- Зайнятість порту: Swoole-сервер прослуховує вказаний порт (у прикладі — 9501). Переконайтеся, що цей порт не використовується іншими програмами.
- Журнали помилок: Вивід помилок і логів Swoole зазвичай з’являється у терміналі, з якого сервер був запущено, або пишеться у зазначений у конфігураціях файл.
Часті питання (FAQ)
Q: Я вже активував Swoole у GUI ServBay, але не бачу інформації про Swoole на сторінці phpinfo()
. Що робити?
A: Перевірте наступне:
- Чи переглядаєте ви сторінку
phpinfo()
саме тієї версії PHP, для якої ввімкнули Swoole. У ServBay може бути запущено кілька версій PHP — переконайтеся, що ви перевіряєте потрібну. - Чи зберегли та виконали перезапуск відповідного PHP-сервісу у ServBay.
- Якщо ви вручну редагували
swoole.ini
, перевірте правильність шляху та імені файлу, а також переконайтеся, що рядокextension = swoole.so
НЕ закоментований.
Q: Чому при запуску прикладу Swoole з’являється повідомлення Class 'Swoole\Http\Server' not found
?
A: Це означає, що розширення Swoole не було завантажено у поточне PHP-середовище. Повторно перевірте, чи активовано Swoole, і чи використовує ваша консоль версію PHP, яку запускає ServBay з активованим цим модулем. Для швидкої перевірки пропишіть у терміналі: php -m | grep swoole
— це покаже, чи завантажено Swoole у середовищі командного рядка.
Підсумок
Завдяки ServBay активація розширення Swoole для PHP — надзвичайно проста задача. Ви можете швидко підключити Swoole для будь-якої обраної версії PHP через графічний інтерфейс або вручну, а отже — перейти до розробки високопродуктивних асинхронних веб-додатків для сучасного рівня навантажень. Використовуючи потужність Swoole, ви значно покращите швидкодію і можливості масштабування ваших PHP-сервісів, а гнучке керування конфігураціями у ServBay дозволить повністю зосередитися на розробці коду, а не на налаштуваннях середовища.