Skip to content

Admidio

Admidio is a free and open-source membership management system for clubs, associations and other groups. A flexible role model maps the structure and permissions of your organization. Modules for events, announcements, photo albums, documents, a forum and email dispatch are included. Admidio is written in PHP and stores its data in a MariaDB database.

Website
Admidio
License
GPLv2
Author
Karl Quint
Last changed
2026-10-04

Tested with Admidio 5.0.16 on Uberspace 8.0.97. We can't guarantee it to work with newer versions.

Report a guide issue

Note

For this guide you should be familiar with the basic concepts of:

Prerequisites

Admidio 5 requires PHP 8.2 or newer, and MariaDB 10 or newer or PostgreSQL 11.0 or newer.

Check the active PHP version:

[isabell@moondust ~]$ php --version
PHP 8.4.x (...)

You'll need your MariaDB credentials during the web installer. Get them with my_print_defaults:

[isabell@moondust ~]$ my_print_defaults client
--default-character-set=utf8mb4
--user=isabell
--password=MySuperSecretPassword

Your website domain needs to be set up:

[isabell@moondust ~]$ uberspace web domain list

  Domain
 ────────────────────
  isabell.uber.space

Installation

Set up your database

Create a separate database for Admidio:

[isabell@moondust ~]$ mariadb -e "CREATE DATABASE ${USER}_admidio"

Check that the database exists:

[isabell@moondust ~]$ mariadb -e "SHOW DATABASES"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| isabell            |
| isabell_admidio    |
+--------------------+

Download Admidio

Admidio publishes a ready-to-use package that already contains all required PHP libraries in its vendor directory. The source archive from GitHub does not contain this directory and is not sufficient, so we'll use the package from the download page.

Change into your DocumentRoot. This guide assumes that it is empty:

[isabell@moondust ~]$ cd /var/www/virtual/$USER/html/

Download the package. The release number is part of the address, so check the download page for the current version and set VERSION accordingly. The command derives the release series (here 5.0.x) from it:

[isabell@moondust html]$ VERSION="5.0.16" # This number can differ!
[isabell@moondust html]$ wget --output-document=admidio.zip "https://sourceforge.net/projects/admidio/files/Admidio/${VERSION%.*}.x/admidio-${VERSION}.zip/download"
[...] ‘admidio.zip’ saved [...]

Unpack the package directly into the DocumentRoot and delete the archive. The -q option keeps unzip quiet, so these commands print no output on success:

[isabell@moondust html]$ unzip -q admidio.zip
[isabell@moondust html]$ rm admidio.zip

Configuration

Open your domain, for example https://isabell.uber.space/, in a browser. Admidio notices that it is not configured yet and starts its installer.

Follow the instructions of the installer. When prompted, enter the database access information:

Database system: MariaDB
Host: localhost
Port: (leave empty)
Database: isabell_admidio
Username: isabell
Password: MySuperSecretPassword
Table prefix: adm

Replace MySuperSecretPassword with the password shown by my_print_defaults client. The table prefix only needs to be changed if several Admidio installations share one database.

When the installation is finished, log in with the administrator account. Admidio's getting started page helps you to set up your organization.

Debugging

If something goes wrong, you might find some clues:

  • in your /home/$USER/logs/php_error.log file,
  • in your /home/$USER/logs/apache/error_log_apache file, for example if the web server rejects a .htaccess file,
  • in your journal, via journalctl --user --unit php-fpm, or
  • in Admidio's own log files in /var/www/virtual/$USER/html/adm_my_files/logs/.

Show the last PHP errors:

[isabell@moondust ~]$ tail --lines=20 /home/$USER/logs/php_error.log

For a stubborn problem you can let Admidio show PHP errors in the browser. Add this line to /var/www/virtual/$USER/html/adm_my_files/config.php:

$gDebug = 1;

Remove the line again when you are done, because error messages can reveal internal details.

Updates

Note

Check the update feed or the changelog regularly.

An update replaces the program files first and updates the database afterwards in the web interface. Read the official update instructions and the notes of the new release before you start, especially if you use own themes or plugins.

Create backups of the database, either using the commands below or in Admidio's web interface:

[isabell@moondust ~]$ mkdir --parents /home/$USER/backups
[isabell@moondust ~]$ BACKUP_TIMESTAMP=$(date +%Y%m%d-%H%M%S)
[isabell@moondust ~]$ mariadb-dump --result-file=/home/$USER/backups/admidio-$BACKUP_TIMESTAMP.sql ${USER}_admidio

Download the new package as shown under Installation:

[isabell@moondust ~]$ cd /var/www/virtual/$USER/html/
[isabell@moondust html]$ VERSION="5.0.17" # This number can differ!
[isabell@moondust html]$ wget --output-document=admidio.zip "https://sourceforge.net/projects/admidio/files/Admidio/${VERSION%.*}.x/admidio-${VERSION}.zip/download"

Delete the old program directories. Keep adm_my_files with your data and configuration, adm_plugins with your plugin settings and themes in case you added own themes:

[isabell@moondust html]$ find . -mindepth 1 -maxdepth 1 -type d ! -name adm_my_files ! -name adm_plugins ! -name themes -exec rm --recursive {} +

Replace the default theme simple as well. If you changed this theme yourself, skip this command and merge your changes into the new theme as described in the official update instructions:

[isabell@moondust html]$ rm --recursive themes/simple

Unpack the new package over the remaining files. The -o option overwrites existing files without asking and -x leaves the contents of adm_my_files untouched. The plugins delivered with Admidio are updated, while your own plugin settings (config.php inside a plugin directory) stay as they are:

[isabell@moondust html]$ unzip -q -o admidio.zip -x 'adm_my_files/*'
[isabell@moondust html]$ rm admidio.zip

Reload PHP, so that no outdated code stays in its cache:

[isabell@moondust html]$ uberspace web php reload

Open your domain in a browser. Admidio detects the new version and redirects you to the update page (https://isabell.uber.space/install/update.php). Log in with a webmaster account and click Update database. This can take some time, so keep the page open until Admidio confirms that the update succeeded.

Keep the backups until you have checked that the updated site works.

Further Reading