bin/console Befehle¶
Mapbender bietet Befehle, die über die Kommandozeile aufgerufen werden können. Einige der Befehle werden von den Symfony-Komponenten bereitgestellt, andere gehören zu Mapbender.
Im Folgenden werden einige dieser Befehle vorgestellt.
Achten Sie beim Ausführen der Befehle darauf, dass Sie sich im richtigen Verzeichnis befinden (oberhalb vom app-Verzeichnis)
mapbender/application (bei Installation über GitHub)
mapbender (bei der Paketinstallation)
Hilfe zu den Befehlen¶
Die Hilfe für jeden Befehl kann mit dem --help
Parameter aufgerufen werden, z. B.:
bin/console mapbender:user:create --help
Anwendungs-Export, Import und Klonen¶
bin/console mapbender:application:export¶
Eine Anwendung kann als JSON- oder YAML-Datei exportiert werden. Dabei muss der Anwendungs-URL-Titel (slug) angebeben und eine Exportdatei definiert werden.
Für .json-Dateien (Export über den Browser möglich):
bin/console mapbender:application:export mapbender_user_db --format=json > export.json
Für .yaml-Dateien (Export nur über die Kommandozeile möglich):
bin/console mapbender:application:export mapbender_user_db --format=yaml > export.yaml
bin/console mapbender:application:import¶
Eine Anwendung kann aus einer JSON- oder YAML-Datei importiert werden. Mapbender wählt automatisch einen neuen Namen, wenn der Name bereits vorliegt.
bin/console mapbender:application:import export.json
Imported 1 applications
* mapbender_user_db_imp2
bin/console mapbender:application:clone¶
Sie können auch eine bestehende Anwendung im Anwendungs-Backend klonen. Dadurch wird eine neue Anwendung mit einem Suffix im Anwendungsnamen erzeugt. Bei yaml-Anwendungen wird ein _db-Suffix, bei Anwendungen aus der Datenbank ein _imp-Suffix angehängt.
bin/console mapbender:application:clone mapbender_user_yml
Benutzerverwaltung¶
bin/console mapbender:user:create¶
Befehl zum Anlegen eines Benutzers über die Kommandozeile. Dabei sind die Angabe von Benutzername, Email und Passwort erforderlich. Der Benutzername und die Email müssen eindeutig sein.
bin/console mapbender:user:create --help
bin/console mapbender:user:create --password <password> --email <email> <name>
bin/console mapbender:user:create --password mypassword123 --email max.mustermann@mapbender.org 'Max Mustermann'
Aktualisierung eines Benutzers
Die folgenden Angaben zu einem Benutzer können aktualisiert werden:
E-Mail
Passwort
Der Benutzername kann nicht verändert werden.
bin/console mapbender:user:create --update --password <password> --email <email> <name>
bin/console mapbender:user:create --update --password mypassword8910 --email max.mustermann@mapbender.org 'Max Mustermann'
bin/console fom:user:resetroot¶
Mit diesem Befehl lässt sich der root-Account erstellen oder aktualisieren. Für die Erstellung müssen ein Benutzername, eine E-Mail und ein Passwort vergeben werden.
Bei der Aktualisierung erfolgt die eindeutige Zuordnung über die bereits vorhandene ID, deshalb können alle drei o.g. Parameter verändert werden.
bin/console fom:user:resetroot
bin/console fom:user:resetroot --username="root" --password="root" --email="root@example.com"
bin/console mapbender:user:list¶
Dieser Befehl zeigt im Terminal alle vorhandenen Benutzer mit ihrer ID und ihrem Benutzernamen an sowie Datum und Uhrzeit ihrer Erstellung.
bin/console mapbender:user:list
User #3 name: max_mustermann since 2019-10-14 12:10:44
Datenbanken¶
bin/console mapbender:database:upgrade¶
Aktualisiert die Kartenelementkonfigurationen, falls neue vorhanden sind.
bin/console mapbender:database:upgrade
Updating map element configs
Found 28 map elements
28/28 [============================] 100%
Updated 28 Map elements
Exiting now
bin/console doctrine:database:create¶
Der Befehl wird einmalig bei der Installation verwendet und legt die Administrationsdatenbank für Mapbender an. Die Angabe zur Datenbankverbindung befindet sich in der parameters.yaml-Datei.
bin/console doctrine:database:create
bin/console doctrine:schema:create¶
Mit dem Befehl wird bei der Installation das Datenbankschema angelegt, d.h. es werden die von Mapbender benötigten Tabellen erstellt.
bin/console doctrine:schema:create
bin/console doctrine:schema:update¶
Dieser Befehl wird beim Update auf eine Mapbender Version benötigt. Er generiert die SQL-Befehle, um die Datenbank auf das Schema der neuen Version zu aktualisieren.
Note
Die Mapbender-Datenbank sollte eine eigenständige Datenbank sein. Ihre Geodaten sollten in anderen separaten Datenbanken gespeichert werden. Bei einem Update der Mapbender-Datenbank können Tabellen, die nicht durch ein Doctrine Schema beschrieben sind, gelöscht werden. Geodaten in eigenständigen Datenbanken sind davon nicht betroffen.
bin/console doctrine:schema:update --complete --dump-sql
bin/console doctrine:schema:update --complete --force
- --dump-sql
Zeigt die Änderungen im Datenbankschema an.
- --force
Führt die Änderungen im Schema aus.
bin/console doctrine:schema:validate¶
Der Befehl wird einmalig bei der Installation verwendet. Dieser Befehl überprüft, ob der Aufbau der Datenbank korrekt und aktuell ist.
bin/console doctrine:schema:validate
[Mapping] OK - The mapping files are correct.
Druck¶
bin/console mapbender:print:queue:next¶
Der Druck in der Warteschlange ist standardmäßig deaktiviert, da er eine externe Integration erfordert. Druckaufträge können danach über die Kommandozeile gesteuert werden. Dafür muss in der parameters.yaml-Datei folgender Parameter hinzugefügt und auf TRUE gesetzt werden:
mapbender.print.queueable: true
Weitere Informationen zum Warteschleifendruck gibt es im Kapitel Warteschleifendruck sowie auf GitHub.
Anschließend wird im Backend des Mapbenders der Druckassistent aktualisiert und es erscheinen zwei neue Zeilen, Modus und Warteschleife.
Modus wird auf “Warteschleife” gesetzt und Warteschleife auf “global”, wenn davon auszugehen ist, dass die Druckaufträge für alle Anwender zugänglich sind.
Im Pop-up Fenster des Print Clients erscheint jetzt ein neuer Reiter: “Druckaufträge”. Dieser kann durch folgende Befehle über die Kommandozeile gesteuert werden.
bin/console mapbender:print:queue:next
Es wird der nächste Druckauftrag ausgeführt, der in der Warteschleife steht. Für einen potenziell unendlich laufenden Prozess können folgende Optionen auf 0 gesetzt werden.
bin/console mapbender:print:queue:next --max-jobs=0 --max-time=0
Optional kann die Anzahl der Prozesse und die maximale Ausführungszeit limitiert werden.
- --max-jobs
Limitiert die Prozessanzahl auf einen gewählten Wert.
- --max-time
Limitiert die maximale Ausführungszeit für den Befehl.
bin/console mapbender:print:queue:rerun¶
Dieser Befehl führt einen Druckwarteschlangenauftrag erneut aus. Die Angabe der ID ist dabei erforderlich.
bin/console mapbender:print:queue:rerun 1
Starting processing of queued job #1
PDF for queued job #1 rendered to /data/mapbender/application/app/../web/prints/mapbender_20191104103745.pdf
bin/console mapbender:print:queue:dumpjob¶
Dieser Befehl gibt Druckaufträge in ein angegebenes Format (JSON oder yml) aus. Die ID des jeweiligen Druckauftrages ist für den Befehl erforderlich. Diese ID kann über die geöffnete Druckwarteschlange in der Mapbender-Anwendung ermittelt werden.
bin/console mapbender:print:queue:dumpjob [options] [--] <id>
bin/console mapbender:print:queue:dumpjob 2 > print_configuration.json
bin/console mapbender:print:queue:dumpjob 2
{
"template": "a4portrait",
"quality": "288",
"scale_select": "25000",
"rotation": "-20",
"extra": {
"title": "Egal!"
},
"layers": {
"0": {
"type": "wms",
"sourceId": "8",
"url": "https:\/\/osm-demo.wheregroup.com\/service?_SIGNATURE=31%3AIHZNT0zPZhFG95dN3QOzsizaDwA&TRANSPARENT=TRUE&FORMAT=image%2Fpng&VERSION=1.3.0&EXCEPTIONS=INIMAGE&SERVICE=WMS&REQUEST=GetMap&STYLES=&LAYERS=osm&_OLSALT=0.3940783483836241&CRS=EPSG%3A25832&BBOX=363375.30907721,5626747.0157598,368124.31589362,5620823.2546257&WIDTH=512&HEIGHT=512",
"minResolution": null,
"maxResolution": null,
"order": 0,
"opacity": 1,
"changeAxis": false
},
"1": {
"type": "wms",
"sourceId": "7",
"url": "https:\/\/wms.wheregroup.com\/cgi-bin\/mapbender_user.xml?_SIGNATURE=26%3Atq6ae-UqhnZLMjiQlLrj-wCHiOI&TRANSPARENT=TRUE&FORMAT=image%2Fpng&VERSION=1.3.0&EXCEPTIONS=INIMAGE&SERVICE=WMS&REQUEST=GetMap&STYLES=&LAYERS=Mapbender_User&_OLSALT=0.6831931928241708&CRS=EPSG%3A25832&BBOX=363375.30907721,5626747.0157598,368124.31589362,5620823.2546257&WIDTH=2400&HEIGHT=1141",
"minResolution": null,
"maxResolution": null,
"order": 0,
"opacity": 0.85,
"changeAxis": false
},
"2": {
"type": "wms",
"sourceId": "7",
"url": "https:\/\/wms.wheregroup.com\/cgi-bin\/mapbender_user.xml?_SIGNATURE=26%3Atq6ae-UqhnZLMjiQlLrj-wCHiOI&TRANSPARENT=TRUE&FORMAT=image%2Fpng&VERSION=1.3.0&EXCEPTIONS=INIMAGE&SERVICE=WMS&REQUEST=GetMap&STYLES=&LAYERS=Mapbender_Names&_OLSALT=0.6831931928241708&CRS=EPSG%3A25832&BBOX=363375.30907721,5626747.0157598,368124.31589362,5620823.2546257&WIDTH=2400&HEIGHT=1141",
"minResolution": null,
"maxResolution": null,
"order": 1,
"opacity": 0.85,
"changeAxis": false
}
},
"width": 1920,
"height": 913,
"center": {
"x": 365749.81248542,
"y": 5623785.1351928
},
"extent": {
"width": 4749.006816409994,
"height": 5923.761134099215
},
"overview": {
"layers": {
"0": "https:\/\/osm-demo.wheregroup.com\/service?_signature=31%3AIHZNT0zPZhFG95dN3QOzsizaDwA&TRANSPARENT=TRUE&FORMAT=image%2Fpng&VERSION=1.3.0&EXCEPTIONS=INIMAGE&SERVICE=WMS&REQUEST=GetMap&STYLES=&LAYERS=osm&CRS=EPSG%3A25832&BBOX=350757.32820012,5616536.5348653,377637.46662208,5629318.6006879&WIDTH=250&HEIGHT=125"
},
"center": {
"x": 364197.3974111,
"y": 5622927.5677766
},
"height": 78125,
"changeAxis": false
},
"mapDpi": 90.714,
"extent_feature": {
"0": {
"x": 362505.8322437394,
"y": 5625755.14826519
},
"1": {
"x": 366968.4389051802,
"y": 5627379.404257199
},
"2": {
"x": 368994.48453732743,
"y": 5621812.889632087
},
"3": {
"x": 364531.877875887,
"y": 5620188.63364008
},
"4": {
"x": 362505.8322437394,
"y": 5625755.14826519
}
},
"userId": null,
"userName": null,
"legendpage_image": {
"type": "resource",
"path": "images\/legendpage_image.png"
}
}
bin/console mapbender:print:runJob¶
Mit diesem Befehl kann ein Druckauftrag aus einer Druck-Konfigurationsdatei heraus ausgeführt werden. Diese Konfiguration kann über den Befehl bin/console mapbender:print:queue:dumpjob erstellt werden.
bin/console mapbender:print:runJob print_configuration.json /tmp/print.pdf
bin/console mapbender:print:queue:repair¶
Wenn ein Druckauftrag in der Warteschlange einen Fehler aufweist oder abgestürzt ist, beispielsweise weil ein WMS-Dienst nicht erreichbar ist, kann der Druck nicht ausgeführt werden.
Mit dem Befehl mapbender:print:queue:repair wird der Status der Druckaufträge zurückgesetzt. Anschließend werden die Aufträge automatisch erneut ausgeführt.
bin/console mapbender:print:queue:repair
bin/console mapbender:print:queue:clean¶
Dieser Befehl löscht erfolgreich abgearbeitete Druckaufträge. Dazu zählen einerseits erstellte PDFs als auch dazugehörige Datenbankeinträge zu den Druckaufträgen. Beim Aufruf des Befehls kann die Angabe des Alters hinzugefügt werden, mit der Angabe 20 werden beispielsweise alle Aufträge gelöscht werden, die älter als 20 Tage sind.
mapbender:print:queue:clean 20
Print queue clean process started.
Deleted 0 print queue item(s)
bin/console mapbender:print:queue:gcfiles¶
gc steht für “garbage collection”. gcfiles löscht entsprechend alle Druckaufträge, bei denen der Datenbankeintrag keine Referenz mehr zum Dateisystem hat. Dies geschieht zum Beispiel, wenn ein Auftrag in der Datenbank gelöscht oder der Dateipfad zum PDF nicht mehr aktuell ist.
bin/console mapbender:print:queue:gcfiles
No unreferenced local files found
Mailer¶
bin/console debug:config framework mailer¶
Zeigt die/den konfigurierten Mailer an.
bin/console debug:config framework mailer
Server¶
symfony server:start –no-tls¶
Als Voraussetzung für den Symfony-Entwicklungsserver muss zunächst Symfony CLI installiert werden. Im Anschluss führt der Befehl den darin enthaltenen lokalen Webserver aus. Im Terminal wird zusätzlich der Status-Log des Servers mitprotokolliert, während dieser aktiv ist.
Mit Control -C kann der Server wieder gestoppt werden.
Note
Der Symfony Entwicklungsserver kann Einschränkungen unterliegen, die die Performanz der Anwendung in bestimmten Fällen reduziert. Er dient primär Testzwecken.
symfony server:start --no-tls
[OK] Web server listening
The Web server is using PHP CLI 8.2.10
http://127.0.0.1:8000
Hint
Sie können dem Server die Anwendungsumgebung als APP_ENV=prod
oder APP_ENV=dev
mitgeben.
APP_ENV=prod symfony server:start --no-tls
Cache löschen¶
bin/console cache:clear¶
Der Befehl löscht das Cache-Verzeichnis für eine bestimmte Umgebung. Wird keine bestimmte Option angegeben, wird der Cache der dev-Umgebung geleert.
Eventuell muss der Befehl mit root-Rechten (sudo) ausgeführt werden.
Dev-Umgebung:
bin/console cache:clear --env=dev
Prod-Umgebung:
bin/console cache:clear --env=prod --no-debug
WMS Dienste¶
bin/console mapbender:wms:add¶
Fügt einen neuen WMS in das Mapbender Dienste-Repository hinzu.
bin/console mapbender:wms:add https://osm-demo.wheregroup.com/service?VERSION=1.3.0&Service=WMS&request=getCapabilities
* <empty name> OpenStreetMap (WhereGroup)
* * osm OpenStreetMap
* * osm-grey OpenStreetMap (grey scale)
Saved new source #76
bin/console mapbender:wms:assign¶
Fügt einen im Dienste-Repository stehenden WMS-Dienst einer Mapbender-Anwendung hinzu.
bin/console mapbender:wms:assign <application> <source> [<layerset>]
Konfiguration:¶
application: ID oder Slug der Anwendung,
source: ID des WMS-Dienstes,
layerset (optional): ID oder Name des Layersets. Der Standardwert ist main oder das erste Layerset in der Anwendung.
bin/console mapbender:wms:parse:url¶
Befehl zum Parsen des GetCapabilities-Dokuments via URL. Der Befehl kann zum Validieren einer WMS-Adresse verwendet werden.
bin/console mapbender:wms:parse:url --validate https://osm-demo.wheregroup.com/service?VERSION=1.3.0&Service=WMS&request=getCapabilities
bin/console mapbender:wms:reload:file¶
Befehl um einen WMS in Mapbender zu aktualisieren. Dabei wird die WMS-ID und eine Datei mit dem getCapabilities-XML angegeben.
bin/console mapbender:wms:reload:url 76 /var/www/html/service.xml
Folgende zusätzliche Optionen sind möglich:
- --deactivate-new-layers
Sofern gesetzt, werden neu hinzugekommene Layer in Instanzen, in denen diese vorkommen, deaktiviert. Deaktivierte Layer werden weder in der Karte noch im Ebenenbaum dargestellt.
- --deselect-new-layers
Sofern gesetzt, werden neu hinzugekommene Layer in Instanzen, in denen diese vorkommen, deselektiert. Nicht ausgewählte Layer werden standardmäßig nicht in der Karte dargestellt, erscheinen aber im Ebenenbaum und können dort vom Benutzer ausgewählt werden.
bin/console mapbender:wms:reload:url¶
Befehl um einen WMS in Mapbender zu aktualisieren. Dabei wird die WMS-ID und eine Datei mit der getCapabilities-Adresse (URL) angegeben.
bin/console mapbender:wms:reload:url 76 https://osm-demo.wheregroup.com/service?VERSION=1.3.0&Service=WMS&request=getCapabilities
Folgende zusätzliche Optionen sind möglich:
- --user=USER
Benutzername (basic auth) [default: “”]
- --password=PASSWORD
Passwort (basic auth) [default: “”]
- --deactivate-new-layers
Sofern gesetzt, werden neu hinzugekommene Layer in Instanzen, in denen diese vorkommen, deaktiviert. Deaktivierte Layer werden weder in der Karte noch im Ebenenbaum dargestellt.
- --deselect-new-layers
Sofern gesetzt, werden neu hinzugekommene Layer in Instanzen, in denen diese vorkommen, deselektiert. Nicht ausgewählte Layer werden standardmäßig nicht in der Karte dargestellt, erscheinen aber im Ebenenbaum und können dort vom Benutzer ausgewählt werden.
bin/console mapbender:wms:show¶
Befehl zum Anzeigen von Informationen zu einem WMS. Hierbei wird die ID der WMS Datenquelle im Befehl angegeben.
bin/console mapbender:wms:show 76
Source describes 3 layers:
* <empty name> OpenStreetMap (WhereGroup)
* * osm OpenStreetMap
* * osm-grey OpenStreetMap (grey scale)
Sonstige¶
bin/console mapbender:source:rewrite:host¶
Aktualisiert den Hostnamen in den Quell-URLs, ohne die Funktionen/Capabilities neu laden zu müssen.
bin/console mapbender:source:rewrite:host [options] [--] <from> <to>
Vergessen Sie nicht, dass Sie sich auch hier weitere Optionen über Hilfe zu den Befehlen anzeigen lassen können.
Umsetzungsbeispiel für die Aktualisierung eines Hostnamens:
bin/console mapbender:source:rewrite:host "http://osm-demo.wheregroup.com" "https://osm-demo.wheregroup.com"
3 modified urls in WMS source #5 / OpenStreetMap (OSM) Demo WhereGroup
Summary:
1 sources changed
3 urls changed
4 sources unchanged
14 urls unchanged
bin/console mapbender:config:check¶
Der Befehl prüft die Konfiguration und gibt zur Information die Systemkonfiguration aus. Dadurch kann ermittelt werden, ob Abhängigkeiten nicht erfüllt werden.
bin/console mapbender:config:check
Hint
Bitte beachten Sie, dass der Befehl mapbender:config:check die PHP-CLI Version nutzt. Die Einstellungen der CLI-Version können sich von denen der Webserver PHP-Version unterscheiden. Nutzen Sie beispielsweise php -r ‘phpinfo();’ zur Ausgabe der PHP-Webserver Einstellungen.
Es werden folgende Anforderungen überprüft und angezeigt:
Datenbankverbindungen
PHP-Version
Systemanforderungen
Asset-Ordner
FastCGI
Apache Modus (rewrite)
PHP ini
geladene PHP-Erweiterungen
Zugriffserlaubnis auf Verzeichnisse
bin/console mapbender:version¶
Der Befehl gibt die aktuelle Mapbender-Version aus.
bin/console mapbender:version
Mapbender 3.0.8.4
bin/console debug:config¶
Mit diesem Befehl werden alle registrierten Bundles (Pakete) aufgelistet und, falls vorhanden, der Alias dazu genannt.
bin/console debug:config