Zuletzt bearbeitet vor 5 Monaten
von Margit Link-Rodrigue

Servereinrichtung für CollabPads

Version vom 10. Juli 2024, 11:44 Uhr von Margit Link-Rodrigue (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
CollabPads ist ab BlueSpice 4.5 enthalten.

Die gleichzeitige Bearbeitung von Seiten durch mehrere Benutzer erfordert einige Servervorbereitungen. Hierfür ist es nötig, MongoDB und den CollabPadsBackendeService zu installieren.

MongoDB installieren[Bearbeiten | Quelltext bearbeiten]

Installieren Sie MongoDB gemäß der Anleitung für Ihre Linux-Distribution. Anschließend kann sie wie folgt gestartet und für den Autostart konfiguriert werden:

sudo systemctl start mongod
sudo systemctl enable mongod

Erweiterung php-mongodb installieren[Bearbeiten | Quelltext bearbeiten]

Der CollabPadsBackendService benötigt eine spezielle PHP-Erweiterung, um mit dem MongoDB-Server kommunizieren zu können. Diese Erweiterung ist über PECL verfügbar. Wenn Sie PECL noch nicht installiert haben, können Sie dies beispielsweise so tun:

sudo apt install php-devel
sudo pecl install mongodb

Überprüfen Sie den Pfad Ihrer PHP-Version, um die richtige INI-Datei zu finden. Die Erweiterung kann dann beispielsweise aktiviert werden über:

echo "extension=mongodb.so" >> /etc/php/8.2/cli/php.ini

CollabPadsBackendService installieren[Bearbeiten | Quelltext bearbeiten]

Der CollabPadsBackendService ist eine vorgefertigte PHP-Anwendung, die von buildservice.bluespice.com heruntergeladen werden kann. Sie können sie wie folgt herunterladen:

cd /opt
wget https://buildservice.bluespice.com/webservices/4.5.x/CollabPadsBackend.tar.gz
tar xzf CollabPadsBackend.tar.gz

Um den Dienst zu konfigurieren, muss zunächst eine config.php-Datei erstellt werden. Eine Beispieldatei ist enthalten:

cd CollabPadsBackend
cp config.example.php config.php
vim config.php

Passen Sie config.php an Ihre Umgebung an. Beispiel:

<?php

return [
	'server-id' => 'mediawiki-collabpads-backend',
	'ping-interval' => 25000,
	'ping-timeout' => 5000,
	'port' => 8099,                //The port you wish to use
	'request-ip' => '127.0.0.1',  //The ip you want to open your service  
	'baseurl' => 'https://yourwikiurl.com', 
	'db-type' => 'mongo',
	'db-host' => '127.0.0.1',   // your MongoDB-Host
	'db-port' => 27017,         // your MongoDB-Port
	'db-name' => 'collabpads',  // your MongoDB-DB-Name
	'db-user' => '',           // MongoDB-Username 
	'db-password' => '',       // MongoDB-Password
	'log-level' => 'INFO',
	'http-client-options' => []
];

Als nächstes sollten Sie einen geeigneten Servicedeskriptor zum Ausführen der Anwendung erstellen:

sudo vim /etc/systemd/system/collabpad.service

Beispiel des collabpad.service:

[Unit]
Description = BlueSpice-CollabpadsBackend
[Service]
Type = simple
User = www-data
ExecStart =/usr/bin/php /opt/CollabpadsBackend/bin/server.php
StandardOutput = file:/var/log/apache2/collabpad.log
[Install]
WantedBy = default.target

Starten und konfigurieren Sie den Dienst für den automatischen Start wie folgt:

sudo systemctl enable collabpad.service
sudo systemctl start collabpad.service

Apache konfigurieren[Bearbeiten | Quelltext bearbeiten]

Der neue Dienst muss für den Client erreichbar sein. Standardmäßig versucht die Wiki-Anwendung, sich über das WebSocket-Protokoll im Unterpfad /_collabpads relativ zur Basis-URL der Wiki-Anwendung ($wgServer) mit ihm zu verbinden.

Um dies zu erreichen, müssen Sie eine entsprechende Regel zum „Umschreiben der URL“ (URL rewrite rule) hinzufügen. Für den Apache-Webserver sieht das folgendermaßen aus:

rewriteCond %{REQUEST_URI}  ^/_collabpads          [NC]
RewriteCond %{QUERY_STRING} transport=websocket    [NC]
RewriteRule /(.*)           ws://127.0.0.1:8099/$1 [P,L]

Der Webserver muss neu gestartet werden, um die Änderungen zu laden:

systemctl restart apache2

Sie sollten nun den Bearbeitungsmodus Gemeinsam bearbeiten verwenden können.

Auswahlmenü für die Bearbeiten-Schaltfläche mit Menüpunkt 'Gemeinsam bearbeiten'
Gemeinsam bearbeiten



Feedback zur Dokumentation ist im Community-Forum möglich.