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.
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.logfile, - in your
/home/$USER/logs/apache/error_log_apachefile, for example if the web server rejects a.htaccessfile, - 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:
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¶
- Admidio documentation: handbook for administrators and users
- Admidio forum: community support
- Admidio on GitHub: source code, releases and issue tracker