Активація та використання MongoDB у ServBay (PHP-розширення та база даних)
ServBay — це потужне локальне веб-середовище для розробників, яке інтегрує численні вебсервери, мови програмування, бази даних, а також містить багато поширених розширень і утиліт із коробки. Для розробників на PHP, які працюють із MongoDB, ServBay надає простий та швидкий спосіб активувати розширення MongoDB для PHP і запустити службу бази даних MongoDB.
У цьому матеріалі ви дізнаєтеся, як активувати розширення MongoDB для PHP у ServBay, запустити локальний сервер MongoDB і підключити до нього свій PHP-проєкт.
Огляд: ServBay та MongoDB
MongoDB — висопродуктивна, відкрита документ-орієнтована NoSQL база даних, що широко використовується у сучасних вебзастосунках завдяки гнучкості моделі даних, простоті масштабування та високій продуктивності.
MongoDB постачається у складі стандартного набору ServBay, що дозволяє створювати й адмініструвати локальні екземпляри бази даних у декілька кліків. До того ж, для всіх підтримуваних версій PHP ServBay уже підготовлено й скомпільовано необхідне розширення MongoDB (mongodb.so
), яке забезпечує інтеграцію PHP із базою MongoDB.
Щоб використовувати MongoDB у своїх PHP-проєктах, виконайте два простих кроки:
- Активуйте розширення MongoDB для PHP — це відкриє доступ до функцій взаємодії з MongoDB у PHP.
- Запустіть службу MongoDB — це забезпечить роботу сервера бази даних для зберігання та керування вашими даними.
Усі ці дії можна легко виконати через графічний інтерфейс ServBay.
Версії PHP-розширення MongoDB
ServBay підтримує кілька версій PHP і для кожної автоматично встановлює відповідну версію розширення MongoDB. Номер версії може змінюватися залежно від оновлення платформи, але зазвичай використовується найбільш стабільний та сумісний реліз для кожної гілки PHP. Орієнтовні відповідності:
- PHP 5.6, 7.0: MongoDB 1.7.5
- PHP 7.1, 7.2, 7.3, 7.4: MongoDB 1.11.1
- PHP 8.0, 8.1, 8.2, 8.3: MongoDB 1.15.0
- PHP 8.4: MongoDB 1.19.1
Зверніть увагу: розширення PHP (mongodb.so
) забезпечує лише базове з'єднання PHP із сервером MongoDB. Для повноцінної роботи з базою у PHP-коді необхідний офіційний MongoDB PHP Driver, який встановлюється через Composer.
Активація розширення MongoDB для PHP
З метою оптимізації та компактності середовища, деякі розширення в ServBay можуть бути вимкнені за замовчуванням. Для активації MongoDB рекомендується використовувати графічний інтерфейс програми.
Активація через графічний інтерфейс ServBay
Найпростіше це зробити так:
- Відкрийте застосунок ServBay.
- У лівому меню оберіть Мови (Languages) та перейдіть до PHP.
- Виберіть потрібну версію PHP, для якої хочете використовувати MongoDB (наприклад,
PHP 8.4
). - У правій частині знайдіть секцію Розширення (Extensions).
- Прокрутіть вниз до
MongoDB
. - Переключіть тумблер ліворуч від
MongoDB
із сірого (вимкнено) на зелений (увімкнено). - Натисніть Зберегти (Save) внизу сторінки.
Після цього ServBay самостійно змінить відповідні налаштування PHP і перезапустить служби, на які вплинули зміни.
Ручне редагування конфігурації (додатково)
Якщо вам потрібно виконати ручне налаштування чи застосувати більш гнучкі параметри, ви можете прямо відредагувати файл конфігурації для потрібної версії PHP. Втім, для більшості випадків графічного інтерфейсу достатньо.
Перейдіть у директорію
conf.d
для потрібної версії PHP. Наприклад, для PHP 8.3 шлях буде:bash/Applications/ServBay/etc/php/8.3/conf.d/mongodb.ini
1За потреби скорегуйте шлях відповідно до вашої версії PHP та папки встановлення продукту.
Відкрийте файл
mongodb.ini
у текстовому редакторі.Знайдіть такі рядки:
ini[MongoDB] ; Uncomment the following line to enable MongoDB ;extension = mongodb.so
1
2
3Видаліть крапку з комою
;
передextension = mongodb.so
, щоб раніше закоментована лінія стала активною:ini[MongoDB] ; Uncomment the following line to enable MongoDB extension = mongodb.so
1
2
3Збережіть файл.
Важливо: Після ручного редагування не забудьте перезапустити відповідну службу PHP для застосування змін. У GUI ServBay перейдіть до розділу Пакети (Packages), знайдіть вашу версію PHP і натисніть праворуч кнопку перезапуску (зазвичай це іконка зі стрілкою по колу).
Запуск служби MongoDB
Активація розширення дозволяє PHP-коду "розмовляти" з MongoDB, але також необхідний піднятий сервер бази даних. ServBay постачає MongoDB як один із програмних пакетів — його запуск і адміністрування здійснюється через інтерфейс.
- Відкрийте програму ServBay.
- У лівому меню виберіть Пакети (Packages).
- У списку пакетів оберіть категорію Бази даних (Databases).
- Знайдіть
MongoDB
. - Переключіть тумблер ліворуч, щоб стан змінився з "сірий" (зупинено) на "зелений" (запущено).
Служба MongoDB стартує на стандартному порту 27017
.
Перевірка розширення MongoDB та підключення до бази
Після виконання вищевказаних кроків перевірте працездатність розширення PHP та служби MongoDB наступним чином.
Перевірка підключення розширення у PHP
Створіть простий PHP-файл для перегляду інформації про середовище:
- У кореневій папці вашого сайту в ServBay (наприклад,
/Applications/ServBay/www
) створіть файлphpinfo.php
. - Додайте у файл наступне:php
<?php phpinfo(); ?>
1
2
3 - Відкрийте файл у браузері, наприклад, через
https://servbay.demo/phpinfo.php
(якщоservbay.demo
прив’язано до вашої папкиwww
). - На отриманій сторінці знайдіть рядок "MongoDB". Якщо розширення підключене, ви побачите розділ "mongodb" із вказаною версією й конфігурацією.
(Зверніть увагу: ваш скріншот може відрізнятися залежно від версії та налаштувань ServBay)
Перевірка підключення до бази даних
Створіть простий PHP-скрипт для спроби підключення до локальної MongoDB.
- Переконайтеся, що у вашому проєкті через Composer вже встановлений офіційний PHP-драйвер для MongoDB. Якщо ні — перейдіть у папку проєкту й у терміналі виконайте:bash
composer require mongodb/mongodb
1 - Створіть PHP-файл, наприклад,
test_mongodb.php
. - Додайте наступний код:php
<?php require __DIR__ . '/vendor/autoload.php'; // Відкоригуйте шлях під структуру вашого проєкту echo "Намагаємось підключитися до MongoDB...\n"; try { // Підключення до локального екземпляру MongoDB на порту 27017 $client = new MongoDB\Client("mongodb://localhost:27017"); // Спроба отримати список баз даних для перевірки підключення $listDatabases = $client->listDatabases(); echo "Підключення до MongoDB виконано успішно!\n"; echo "Доступні бази даних:\n"; foreach ($listDatabases as $databaseInfo) { echo "- " . $databaseInfo->getName() . "\n"; } } catch (\MongoDB\Driver\Exception\Exception $e) { echo "Не вдалося підключитися до MongoDB: " . $e->getMessage() . "\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 - Запустіть цей скрипт у терміналі (через CLI від ServBay) або відкрийте у браузері. Якщо підключення працює — ви побачите перелік баз даних. Якщо ні — повідомлення про помилку допоможе знайти причину (наприклад, служба MongoDB не була запущена).
Використання MongoDB у PHP-коді
Як тільки розширення MongoDB активовано й сервер бази даних працює, ви можете підключати офіційний драйвер через Composer та взаємодіяти з MongoDB у ваших PHP-проєктах.
Встановлення офіційного драйверу MongoDB для PHP
Рекомендується встановлювати драйвер через Composer:
bash
composer require mongodb/mongodb
1
Ця команда підключить пакет mongodb/mongodb
і всі залежності, а також автоматично створить файл автозавантажувача vendor/autoload.php
.
Приклад коду
Нижче наведено базовий приклад: підключення, запис, читання та оновлення даних у MongoDB через PHP.
php
<?php
require __DIR__ . '/vendor/autoload.php'; // Перевірте підключення автозавантаження Composer
echo "З’єднання з MongoDB...\n";
try {
// Підключення до локального MongoDB
$client = new MongoDB\Client("mongodb://localhost:27017");
// Вибір бази й колекції
// Якщо база або колекція поки не існують, MongoDB створить їх під час першого запису
$collection = $client->servbay_demo_db->users; // Використовується база servbay_demo_db як приклад
echo "З’єднання встановлено. Виконуємо операції...\n";
// Додавання документа
$insertResult = $collection->insertOne([
'name' => 'Alice ServBay', // Демонстраційні дані із назвою бренду
'email' => '[email protected]',
'age' => 30,
'createdAt' => new MongoDB\BSON\UTCDateTime(time() * 1000) // BSON-формат дати
]);
printf("ID доданого документа: %s\n", $insertResult->getInsertedId());
// Пошук документа
$document = $collection->findOne(['name' => 'Alice ServBay']);
echo "Знайдено документ:\n";
if ($document) {
print_r($document);
} else {
echo "Документ не знайдено.\n";
}
// Оновлення документа (за бажанням)
$updateResult = $collection->updateOne(
['name' => 'Alice ServBay'],
['$set' => ['age' => 31, 'status' => 'updated']]
);
printf("Для оновлення знайдено %d документ(ів), оновлено %d документ(ів).\n", $updateResult->getMatchedCount(), $updateResult->getModifiedCount());
// Перевірка оновленого документа (опціонально)
$updatedDocument = $collection->findOne(['name' => 'Alice ServBay']);
echo "Оновлений документ:\n";
if ($updatedDocument) {
print_r($updatedDocument);
}
// Видалення документа (необов’язково)
// $deleteResult = $collection->deleteOne(['name' => 'Alice ServBay']);
// printf("Видалено %d документ(ів).\n", $deleteResult->getDeletedCount());
} catch (\MongoDB\Driver\Exception\Exception $e) {
echo "Сталася помилка: " . $e->getMessage() . "\n";
} catch (\Exception $e) {
echo "Неочікувана помилка: " . $e->getMessage() . "\n";
}
echo "Скрипт завершено.\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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Збережіть код у PHP-файлі й виконайте його в терміналі через CLI ServBay або відкрийте у браузері через налаштований вебсервер.
Зауваження та найкращі практики
- Статус служби MongoDB: Переконайтеся, що служба MongoDB у GUI ServBay працює (має статус "запущено"). Інакше підключення неможливе.
- Типовий порт: За замовчуванням MongoDB використовує порт
27017
. Якщо ваш застосунок працює з іншим портом — відкоригуйте рядок підключення. Номер порта можна побачити або змінити всередині GUI ServBay. - Розширення vs. драйвер: Розширення
mongodb.so
забезпечує низькорівневе підключення, а пакетmongodb/mongodb
із Composer — зручний об’єктно-орієнтований API для роботи з даними. Більшість сучасних застосунків на PHP використовують саме Composer-пакет. - CA ServBay / Публічний CA: ServBay може генерувати SSL-сертифікати через свою власну вбудовану CA, що корисно для локального HTTPS. Для звичайної роботи з локальним MongoDB SSL не обов'язковий, але у складніших сценаріях це може знадобитися. ServBay також підтримує реальні сертифікати за протоколом ACME та має функції резервного копіювання та відновлення паролів баз даних.
- Інструменти адміністрування бази: ServBay не містить вбудованого графічного клієнта для MongoDB, але ви можете використовувати офіційний MongoDB Compass або термінальні інструменти
mongo
/mongosh
для адміністрування локального екземпляру MongoDB.
Поширені запитання (FAQ)
Q: Я активував розширення PHP MongoDB, але скрипти не можуть підключитися до MongoDB. Що робити?
A: Переконайтеся, що у GUI ServBay окремо запущено службу бази даних MongoDB. Розширення — це лише інтерфейс для PHP, а служба — сам працюючий сервер бази. Також перевірте рядок підключення (зазвичай це mongodb://localhost:27017
).
Q: У чому різниця між розширенням mongodb.so
і Composer-пакетом mongodb/mongodb
?
A: mongodb.so
— це низькорівневе розширення для PHP, яке додає підтримку роботи через C-драйвер MongoDB (libmongoc). Пакет mongodb/mongodb
— PHP-бібліотека з об'єктно-орієнтованим API для CRUD-операцій, агрегування тощо. Для сучасної розробки потрібні обидва компоненти: розширення та Composer-пакет.
Q: Як змінити порт або налаштування MongoDB?
A: Перейдіть у GUI ServBay, відкрийте налаштування пакета MongoDB — там можна побачити і змінити порт. За потреби можна редагувати файл конфігурації MongoDB, його розташування зазначено у параметрах пакета. Не забудьте перезапустити MongoDB після змін.
Висновок
ServBay суттєво полегшує життя PHP-розробникам, які працюють із MongoDB. Завдяки зрозумілому GUI ви можете швидко й без зайвих зусиль активувати розширення MongoDB для PHP і запустити потрібну базу даних. Додавши до цього офіційний драйвер із Composer, ви отримаєте повноцінне сучасне локальне середовище для тестування й розробки PHP+MongoDB. Інтеграція та автоматизація від ServBay істотно зменшують час на налаштування й допомагають зосередитися саме на вирішенні бізнес-завдань.