Activer et utiliser MongoDB dans ServBay (extension PHP & service base de données)
ServBay est un puissant environnement de développement Web local conçu spécialement pour les développeurs. Il intègre différents serveurs Web, langages de programmation et bases de données, et propose de nombreux outils et extensions de langage fréquemment utilisés. Pour les développeurs PHP qui souhaitent exploiter la base de données MongoDB, ServBay offre une solution simple pour activer l’extension MongoDB de PHP et lancer le service MongoDB local.
Ce guide explique en détail comment activer l’extension MongoDB pour PHP dans ServBay, démarrer le service de base de données MongoDB, puis comment se connecter et utiliser MongoDB au sein d’un projet PHP.
Introduction : ServBay et MongoDB
MongoDB est une base de données NoSQL open source haute performance, orientée documents. Grâce à son modèle de données flexible et sa grande scalabilité, elle est largement adoptée dans les applications Web modernes.
ServBay intègre MongoDB parmi ses paquets logiciels, permettant aux développeurs de déployer et gérer facilement une instance MongoDB locale. ServBay fournit aussi les extensions MongoDB compilées d’avance (mongodb.so
) pour chaque version de PHP supportée, afin de permettre l’interaction entre PHP et MongoDB.
Pour utiliser MongoDB dans un projet PHP, deux étapes sont nécessaires :
- Activer l’extension MongoDB pour PHP : Cela permet à PHP d’appeler les fonctions relevantes à MongoDB.
- Démarrer le service MongoDB : Une instance active de MongoDB pour stocker et gérer les données.
L’interface graphique de ServBay simplifie ces deux opérations.
Versions de l’extension PHP MongoDB
ServBay propose l’extension MongoDB pour toutes les versions de PHP supportées. Les numéros de version peuvent évoluer avec les mises à jour de ServBay, mais les versions fournies garantissent normalement la compatibilité et la stabilité nécessaires. Voici un aperçu des associations courantes (à vérifier selon votre version de ServBay) :
- 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
Notez que l’extension PHP (mongodb.so
) ne fournit que la communication de bas niveau entre PHP et MongoDB. Pour interagir concrètement avec la base de données dans votre code PHP, il est recommandé d’installer le pilote PHP officiel MongoDB via Composer.
Activer l’extension MongoDB pour PHP
Par défaut, certaines extensions PHP ne sont pas activées afin de garder l’environnement le plus léger possible. L’activation de l’extension MongoDB se fait très facilement via l’interface graphique de ServBay.
Activation via l’interface graphique ServBay
C’est la méthode la plus simple et rapide :
- Ouvrez l’application ServBay.
- Dans la barre de navigation à gauche, cliquez sur Langages (Languages) puis sélectionnez PHP.
- Choisissez la version de PHP pour laquelle vous souhaitez activer MongoDB (ex :
PHP 8.4
). - Dans le panneau de droite, trouvez la section Extensions.
- Faites défiler vers le bas jusqu’à l’extension
MongoDB
. - Cliquez sur l’interrupteur à gauche de
MongoDB
pour passer de gris (désactivé) à vert (activé). - Cliquez sur le bouton Enregistrer (Save) en bas du panneau.
ServBay modifie automatiquement le fichier de configuration de PHP et redémarre le service PHP concerné pour appliquer les changements.
Modification manuelle du fichier de configuration (optionnel)
Si vous préférez configurer manuellement, ou pour des besoins avancés, vous pouvez éditer le fichier de configuration de PHP correspondant. En général, l’interface graphique suffit.
Repérez le dossier
conf.d
de la version PHP souhaitée. Par exemple, pour activier MongoDB avec PHP 8.3, le chemin par défaut est :bash/Applications/ServBay/etc/php/8.3/conf.d/mongodb.ini
1Adaptez ce chemin à votre installation et version PHP.
Ouvrez le fichier
mongodb.ini
avec un éditeur de texte.Repérez les lignes suivantes :
ini[MongoDB] ; Uncomment the following line to enable MongoDB ;extension = mongodb.so
1
2
3Supprimez le point-virgule
;
devantextension = mongodb.so
pour activer l’extension :ini[MongoDB] ; Uncomment the following line to enable MongoDB extension = mongodb.so
1
2
3Enregistrez le fichier.
Important : Après modification manuelle, il faut redémarrer le service PHP concerné pour appliquer les changements. Depuis l’interface graphique de ServBay, cliquez sur Paquets (Packages) dans la barre de navigation, repérez la version de PHP modifiée puis cliquez sur le bouton de redémarrage (icône fléchée circulaire).
Démarrer le service MongoDB
L’activation de l’extension PHP n’autorise que la communication avec MongoDB ; il faut également une instance MongoDB active pour stocker et traiter les données. ServBay propose également MongoDB comme paquet logiciel, que vous pouvez lancer dans l’interface graphique.
- Ouvrez ServBay.
- Cliquez sur Paquets (Packages) dans la barre latérale.
- Dans la liste, trouvez la catégorie Bases de données (Databases).
- Trouvez le paquet
MongoDB
. - Cliquez sur l’interrupteur à gauche pour passer de gris (arrêté) à vert (en fonctionnement).
Le service MongoDB démarre sur le port par défaut 27017
.
Vérifier le chargement de l’extension MongoDB et la connexion à la base
Une fois les étapes précédentes terminées, voici comment vérifier que l’extension MongoDB pour PHP est bien chargée, et que le service MongoDB fonctionne correctement.
Vérifier que l’extension PHP est bien chargée
Créez un simple fichier PHP pour observer la sortie de phpinfo()
:
- Dans le dossier racine de votre site ServBay (typiquement
/Applications/ServBay/www
), créez un fichier PHP, par exemplephpinfo.php
. - Mettez-y le contenu suivant :php
<?php phpinfo(); ?>
1
2
3 - Accédez-y via votre navigateur, ex :
https://servbay.demo/phpinfo.php
(en supposant queservbay.demo
pointe sur votre dossier ServBaywww
). - Recherchez "MongoDB" sur la page phpinfo. Si l’extension est bien chargée, vous verrez une section "mongodb" avec les détails de version et configuration.
(Remarque : la capture d'écran peut varier selon votre version de ServBay ou l’interface)
Vérifier la connexion à la base de données
Créez un petit script PHP pour tester la connexion à l’instance MongoDB locale :
- Assurez-vous que le pilote PHP officiel MongoDB est bien installé via Composer dans votre projet. Sinon, exécutez dans votre dossier projet la commande suivante :bash
composer require mongodb/mongodb
1 - Créez un fichier PHP comme
test_mongodb.php
. - Ajoutez le code suivant :php
<?php require __DIR__ . '/vendor/autoload.php'; // Adaptez le chemin à votre structure de projet echo "Tentative de connexion à MongoDB...\n"; try { // Connexion à l’instance MongoDB locale sur le port par défaut 27017 $client = new MongoDB\Client("mongodb://localhost:27017"); // Liste des bases pour valider la connexion $listDatabases = $client->listDatabases(); echo "Connexion à MongoDB réussie !\n"; echo "Bases de données disponibles :\n"; foreach ($listDatabases as $databaseInfo) { echo "- " . $databaseInfo->getName() . "\n"; } } catch (\MongoDB\Driver\Exception\Exception $e) { echo "Échec de connexion à 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 - Exécutez ce script dans le terminal (en utilisant la version PHP correspondante de ServBay) ou accédez-y via le Web. En cas de réussite, un message et la liste des bases s’afficheront ; en cas d’erreur, le message devrait aider au diagnostic (par exemple : service MongoDB non démarré).
Utiliser MongoDB dans vos scripts PHP
Dès que l’extension PHP MongoDB est activée et que MongoDB fonctionne, vous pouvez réaliser vos opérations en utilisant le pilote officiel installé via Composer.
Installer le pilote PHP MongoDB via Composer
Comme évoqué plus haut, installer le pilote via Composer est la méthode conseillée :
composer require mongodb/mongodb
Cela installe le paquet mongodb/mongodb
(et ses dépendances) et génère le fichier vendor/autoload.php
.
Exemple de code
Voici un exemple simple montrant comment se connecter à MongoDB, insérer un document, puis effectuer une requête :
<?php
require __DIR__ . '/vendor/autoload.php'; // Important d'inclure l'autoloader Composer
echo "Connexion à MongoDB...\n";
try {
// Connexion à l’instance MongoDB locale
$client = new MongoDB\Client("mongodb://localhost:27017");
// Sélection de la base et de la collection
// Si la base ou la collection n’existe pas, MongoDB les crée lors du premier enregistrement
$collection = $client->servbay_demo_db->users; // Utilise 'servbay_demo_db' comme exemple
echo "Connecté. Opérations en cours...\n";
// Insertion d’un document
$insertResult = $collection->insertOne([
'name' => 'Alice ServBay', // Exemple d’enregistrement
'email' => '[email protected]',
'age' => 30,
'createdAt' => new MongoDB\BSON\UTCDateTime(time() * 1000) // Date au format BSON
]);
printf("Document inséré avec ID : %s\n", $insertResult->getInsertedId());
// Requête sur le document
$document = $collection->findOne(['name' => 'Alice ServBay']);
echo "Document trouvé :\n";
if ($document) {
print_r($document);
} else {
echo "Document introuvable.\n";
}
// Mise à jour du document (facultatif)
$updateResult = $collection->updateOne(
['name' => 'Alice ServBay'],
['$set' => ['age' => 31, 'status' => 'updated']]
);
printf("Nombre de documents correspondants à la mise à jour : %d, modifiés : %d.\n", $updateResult->getMatchedCount(), $updateResult->getModifiedCount());
// Requête sur le document mis à jour (facultatif)
$updatedDocument = $collection->findOne(['name' => 'Alice ServBay']);
echo "Document mis à jour :\n";
if ($updatedDocument) {
print_r($updatedDocument);
}
// Suppression du document (facultatif)
// $deleteResult = $collection->deleteOne(['name' => 'Alice ServBay']);
// printf("Nombre de documents supprimés : %d.\n", $deleteResult->getDeletedCount());
} catch (\MongoDB\Driver\Exception\Exception $e) {
echo "Une erreur est survenue : " . $e->getMessage() . "\n";
} catch (\Exception $e) {
echo "Erreur imprévue : " . $e->getMessage() . "\n";
}
echo "Script terminé.\n";
?>
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
Enregistrez ce code dans un fichier PHP puis exécutez-le via le CLI PHP de ServBay, ou accédez-y via le serveur Web configuré.
Remarques et bonnes pratiques
- État du service MongoDB : Vérifiez que le paquet MongoDB apparaît comme “en fonctionnement” dans l’interface ServBay avant de tenter une connexion.
- Port par défaut : MongoDB écoute sur le port
27017
. Si votre application nécessite un autre port, modifiez la chaîne de connexion en conséquence. Les paramètres sont accessibles/modifiables dans l’interface de ServBay. - Extension vs. pilote : L’extension PHP
mongodb.so
fournit la communication de bas niveau, alors que le paquet Composermongodb/mongodb
offre une API orientée objet moderne pour manipuler vos données. La plupart des projets PHP utilisent le package Composer. - CA utilisateur ServBay / CA publique : ServBay propose des certificats SSL signés par une autorité intégrée, ce qui facilite la simulation d’un environnement HTTPS local. Pour MongoDB en local, SSL n’est généralement pas requis, mais certains contextes avancés peuvent le demander. ServBay supporte aussi le protocole ACME pour l’obtention de vrais certificats, la sauvegarde de données, la réinitialisation de mot de passe, etc. : autant d’atouts pour un environnement local complet.
- Outils d’administration bases de données : ServBay n’inclut peut-être pas d’interface graphique dédiée à MongoDB, mais vous pouvez installer MongoDB Compass ou utiliser les outils en ligne de commande
mongo
/mongosh
pour administrer votre instance MongoDB locale.
Foire Aux Questions (FAQ)
Q : J’ai activé l’extension MongoDB pour PHP, mais mon script n’arrive pas à se connecter à MongoDB. Que faire ?
R : Assurez-vous d’avoir bien lancé le service base de données MongoDB via l’interface ServBay. L’extension PHP n’est qu’une interface ; il faut également que le serveur MongoDB soit en fonctionnement. Vérifiez aussi votre chaîne de connexion (habituellement mongodb://localhost:27017
).
Q : Quelle est la différence entre l’extension mongodb.so
et le module Composer mongodb/mongodb
?
R : L’extension mongodb.so
permet à PHP d’interagir avec MongoDB via le pilote C (libmongoc). Le paquet Composer mongodb/mongodb
est une bibliothèque PHP qui repose sur cette extension, et fournit une API objet très ergonomique pour réaliser les opérations courantes (CRUD, agrégations, etc). Pour un usage moderne, il est conseillé d’activer l’extension ET d’installer le paquet Composer.
Q : Comment modifier le port ou la configuration de MongoDB ?
R : Rendez-vous dans l’interface ServBay pour accéder aux options de configuration du service MongoDB, notamment le port. Pour des réglages avancés, éditez directement le fichier de configuration MongoDB (chemin indiqué dans l’interface de ServBay), puis redémarrez le service MongoDB.
Résumé
ServBay offre aux développeurs PHP un environnement MongoDB particulièrement pratique. Grâce à son interface graphique intuitive, activer l’extension MongoDB et démarrer le service de base de données ne prend que quelques secondes. En associant l’extension PHP et le pilote officiel via Composer, vous pouvez rapidement mettre en place un environnement local PHP + MongoDB, pour vous concentrer sur le développement applicatif. L'intégration offerte par ServBay facilite grandement la configuration et accélère la phase de développement et de test en local.