Installation on Ubuntu/Debian

Mapbender is shipped with a preconfigured SQLite database which includes preconfigured applications (the database is located under <mapbender>/var/db/demo.sqlite). You can find instructions for a test installation based on the Symfony web server at Launching Mapbender using the local Symfony web server.

Hint

PostgreSQL is strongly recommended for productive use. Look up the neccessary configurational steps in the chapter Optional > Mapbender Deployment on PostgreSQL.

Requirements

  • PHP >= 8.0

  • Apache installation with the following modules activated:
    • mod_rewrite

    • libapache2-mod-php

  • PostgreSQL Installation
    • It is recommended to use a PostgreSQL database for Mapbender.

    • It is recommended to create a database user to access the Mapbender database.

Nginx can also be used as web server (this will not be discussed in detail here).

Preparation

Installation of mandatory PHP extensions:

sudo apt install php-gd php-curl php-cli php-xml php-sqlite3 sqlite3 php-apcu php-intl openssl php-zip php-mbstring php-bz2

Unpack and register to web server

Download the current Mapbender version and unzip it into /var/www/mapbender or a different location:

wget https://mapbender.org/builds/mapbender-starter-current.tar.gz -O /var/www/mapbender-starter-current.tar.gz
tar -zxf /var/www/mapbender-starter-current.tar.gz -C /var/www
mv $(ls -d /var/www/*/ | grep mapbender) /var/www/mapbender/

Configuration Apache 2.4

Create the file /etc/apache2/sites-available/mapbender.conf with the following content:

Alias /mapbender /var/www/mapbender/public/
<Directory /var/www/mapbender/public/>
 Options MultiViews FollowSymLinks
 Require all granted

 RewriteEngine On
 RewriteBase /mapbender/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>

Activate the site and reload Apache:

a2ensite mapbender.conf
service apache2 reload

Directory rights

sudo chown -R :www-data /var/www/mapbender

sudo chmod -R ug+w /var/www/mapbender/application/var/log
sudo chmod -R ug+w /var/www/mapbender/application/var/cache
sudo chmod -R ug+w /var/www/mapbender/application/public/uploads

sudo chmod -R ug+w /var/www/mapbender/application/var/db/demo.sqlite

First steps

The Mapbender installation can now be accessed under http://[hostname]/mapbender/. User data by default:

username: “root”, password: “root”

Troubleshooting is available via the following command (must be executed in the application directory):

bin/console mapbender:config:check

Hint

Please note that config:check will use the php-cli version. The settings may be different from your webserver PHP settings. Please use php -r ‘phpinfo();’ to show your PHP webserver settings.

Congratulations! Mapbender is now set up correctly and ready for further configuration. Find Information about the first steps with Mapbender in the Mapbender Quickstart.

Optional

LDAP

To use the optional LDAP-connection, following PHP-LDAP-extension is required:

sudo apt install php-ldap

Note

To use LDAP, the LDAP-Bundle must be integrated into Mapbender. Further setup instructions can be found in the bundle’s README.md on GitHub.

Mapbender installation with PostgreSQL

Configuration of PostgreSQL database for productive use:

Requirements: - configured PostgreSQL database - database for Mapbender configuration - PostgreSQl database user to access the database with create database right

Installation PHP-PostgreSQL driver

sudo apt install php-pgsql

Configuration of database connection (application/config/parameters.yaml):

database_driver:   pdo_pgsql
database_host:     localhost
database_port:     5432
database_name:     mapbender
database_path:     ~
database_user:     postgres
database_password: secret

For further information: YAML Configuration (Configuration and Application files).

Initialisation of the database connection:

cd /var/www/mapbender
bin/console doctrine:database:create
bin/console doctrine:schema:create
bin/console mapbender:database:init -v
bin/composer run reimport-example-apps

Create root user for access:

bin/console fom:user:resetroot

Find further information in Details of the configuration of Mapbender.

Mapbender installation with MySQL

Similar to configuration with PostgreSQL.

Install the MySQL driver:

sudo apt install php-mysql

Adapt these parameters (in parameters.yaml) accordingly:

database_driver:   pdo_mysql
database_port:     3306

To initialize your database connection, see Mapbender installation with PostgreSQL.