MongoDB unter Plesk installieren und einsatzbereit machen

MongoDB unter Plesk installieren und einsatzbereit machen

Um MongoDB unter Plesk zu installieren und einsatzbereit zu machen bedienen wir uns der in Plesk integrierten Docker-Umgebung und installieren schlichtweg das mongo image

Bei den Einstellungen sollte ein Speicherlimit gesetzt und der automatische Start aktiviert werden.

Auch sollte das manuelle port mapping aktiviert werden.

Zusätzlich stellen wir noch ein sauberes Volume-Mapping ein. Ich habe habe hier zwei verschiedene Varianten abgebildet, da es wohl bei manchen Installationen zu Abweichungen kommt.

/data/db/var/dbdir
/data/configdb/var/configdir
/data/configdbhost/data/configdb
/data/dbhost/data/db

Die Daten des MongoDB-Server sind somit später im links abgebildeten Verzeichnis des Host-Systems dauerhaft (!) gespeichert – ohne VolumeMapping sind die Daten nach einem Neustart verloren.

Zusätzlich sollte auch noch ein root-Benutzer für den Container angelegt werden in den Umgebungsvariablen:

MONGO_INITDB_ROOT_USERNAMEroot
MONGO_INITDB_ROOT_PASSWORDpasswort

Danach sollte der Container aktiv sein und auf Port 27017 lauschen.

ss -tlpn | grep 27017

Zusätzlich bieten wir das Tool mongosh auf dem Host-System, hierzu müssen wir unter Debian 12 einige Vorbereitungen treffen:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
apt update
apt install -y mongodb-mongosh

Danach können wir auf unseren MongoDB-Server vom Host aus wie folgt zugreifen:

mongosh "mongodb://root:passwort@localhost:27017/admin"

Einen neuen Nutzer mit vollen Admin-Rechten können wir beispielweise mit folgendem Befehl erstellen:

db.createUser({
  user: "adminuser",
  pwd: "strongpassword123",
  roles: [ { role: "root", db: "admin" } ]
})

PHP unter Plesk mit MongoDB

Um MongoDB mit PHP under Plesk nutzen zu können sind ebenfalls einige Anpassungen erforderlich unter Tools & Settings ->PHP Settings -> „Auswahl der richtigen PHP-Version“ -> Manage PECL Packages

Nach einem Klick auf „install package“ schreiben wir mongodb als Paketnamen in das Feld und die Installation startet. Danach ist mongodb für PHP nutzbar

Node.js

In Node.js navigieren wir zum Reiter „Run Node.js commands“ und führen

npm install mongodb

aus. Die aktuelle Version lässt sich mit

npm list mongodb

überprüfen.

Ein einfaches Testscript für NodeJS wäre

const { MongoClient } = require('mongodb');

async function test() {
  const client = new MongoClient('mongodb://localhost:27017');

  try {
    await client.connect();
    console.log('MongoDB connected successfully!');
    const dbs = await client.db().admin().listDatabases();
    console.log('Databases:', dbs.databases.map(db => db.name).join(', '));
  } catch (err) {
    console.error('Failed to connect:', err);
  } finally {
    await client.close();
  }
}

test();

Welches später in SSH wie folgt ausgeführt werden kann

node test.js

Darauf sollte eine Verbindungsmeldung gefolgt von Auth-Fehlern erscheinen:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert