Skip to content

i-doit Update Guide

Important information before you begin#

Here you will find a short guide for updating your i-doit to i-doit 31.
You may need to update your operating system.
These instructions apply to Debian; the commands used may differ on other operating systems. Before you begin, download all the updates you need to perform and copy them to the i-doit root folder.

Important notes in advance

This guide is provided without warranty and may not work in your specific use case.
This depends on the configuration and installation type of your instance. Required add-on updates are also not mentioned.

Backup

Create a backup or snapshot before each update step!

Release notes

Read the release notes before updating to a new version.

Hotfix note

Use hotfixes exclusively with the specified version. Hotfixes will be included in newer versions, so reinstallation is not required. If you are using an older i-doit version, it is indispensable to first perform an update to the newest version. If a hotfix is required to update an older version, you will find it in the hotfix subchapters here in the Knowledge Base. Since these are hotfixes, we recommend installing them only if the adjustments are required for smooth operation of your installation or if you are requested to do so by the support team. Make sure you have created a backup of i-doit before using a hotfix. Please inform us about the use of hotfixes if you subsequently contact our support team.

i-doit Version 31 30 29 28 27 26 25 24 23, 22, 21, 20, 1.19 1.19 1.18 1.17 1.16 1.15 1.14 1.13 1.12 1.11 1.10 1.9 1.8 1.7
Release 2024-05 2024-04 2024-02 2023-12 2023-08 2023-08 2023-06 2023-05 2023-03 - 2022-09 2022-09 2022-01 2021-07 2021-01 2020-07 2020-01 2019-06 2018-12 2018-06 2017-12 2017-05 2016-10 2016-03
Apache web server 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.2, 2.4
PHP 8.0
8.1 (recommended)
8.2
7.4 (deprecated)
8.0
8.1 (recommended)
8.2
7.4 (deprecated)
8.0 (recommended)
8.1
8.2
7.4 (deprecated)
8.0 (recommended)
8.1
7.4 (deprecated)
8.0 (recommended)
8.1
7.4
8.0 (recommended)
8.1
7.4
8.0 (recommended)
7.4
8.0 (recommended)
7.4 (deprecated)
8.0 (recommended)
7.4 (deprecated)
8.0 (recommended)
7.3 (deprecated)
7.4 (recommended)
7.3
7.4 (recommended)
7.2.5 (deprecated)
7.3
7.4 (recommended)
7.1.8 (deprecated)
7.2
7.3 (recommended)
7.4
7.1.8 (deprecated)
7.2
7.3 (recommended)
7.4
7.0.8 (deprecated)
7.1
7.2
7.3 (recommended)
5.6 (deprecated)
7.0
7.1
7.2 (recommended)
5.6
7.0
7.1
5.6
7.0
5.4
5.5
5.6
7.0
5.4
5.5
5.6
5.4
5.5
5.6
MySQL 5.7
8.0
5.7
8.0
5.7
8.0
5.7
8.0
5.7
8.0
5.7
8.0
5.7
8.0
5.7 5.7 5.7 5.7 5.7 5.6 (deprecated)
5.7
5.6
5.7
5.6
5.7
5.6
5.7
5.6
5.7
5.6
5.7
5.6
5.7
5.6
5.7
5.6
5.7
5.6
5.7
MariaDB 10.4 (deprecated)
10.5 (deprecated)
10.6 (recommended)
10.11
10.4 (deprecated)
10.5 (deprecated)
10.6 (recommended)
10.11
10.2
10.3
10.4
10.5
10.6 (recommended)
10.2
10.3
10.4
10.5
10.6 (recommended)
10.2
10.3
10.4
10.5
10.6 (recommended)
10.2
10.3
10.4
10.5
10.6 (recommended)
10.2
10.3
10.4
10.5
10.6 (recommended)
10.2
10.3
10.4
10.5 (recommended)
10.2
10.3
10.4
10.5 (recommended)
10.2
10.3
10.4
10.5 (recommended)
10.2
10.3
10.4
10.5 (recommended)
10.2
10.3
10.4
10.5 (recommended)
10.1 (deprecated)
10.2
10.3
10.4 (recommended)
10.5
10.1
10.2
10.3
10.4 (recommended)
10.1
10.2
10.3
10.4 (recommended)
10.0 (deprecated)
10.1
10.2
10.3 (recommended)
10.0
10.1
10.0
10.1
10.0
10.1
10.0
10.1
10.0
10.1
10.0
10.1
Legend
¹ With the help of third-party repositories
² Not recommended for production use

Update from 1.7.4 to 1.8#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-1.8-update.zip

If prompted, overwrite everything by entering A.

Now open the web interface updater, select the update to v1.8 and perform the update.

Update from 1.7.4 to 1.8

Possible error

PHP Fatal error: Call to an undefined method idoit\Component\ContainerFacade::has() in /var/www/html/src/idoit/Model/Summary/SystemSummary.php on line 185 The solution is to reload the page and continue.

Check the update logs

Please take the time to review the logs and check whether an error has occurred. Log in and verify your installation.

Update from 1.8 to 1.9#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-1.9-update.zip

If prompted, overwrite everything by entering A. Now open the web interface updater, select the update to v1.9 and perform the update.

Update from 1.8 to 1.9

Check the update logs

Please take the time to review the logs and check whether an error has occurred. Log in and verify your installation.

Update from 1.9 to 1.10#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-1.10-update.zip

If prompted, overwrite everything by entering A. Now open the web interface updater, select the update to v1.10 and perform the update.

Update from 1.9 to 1.10

Check the update logs

Please take the time to review the logs and check whether an error has occurred. Log in and verify your installation.

Update from 1.10 to 1.11#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-1.11-update.zip

If prompted, overwrite everything by entering A. Now open the web interface updater, select the update to v1.11, and perform the update.

Possible error

Call to an unknown method '_realpath'.

Solutions:

  • Reload the page and continue.
  • or use the following hotfix if reloading does not work

Consent declaration

By downloading a hotfix, you declare that you have completely read and understood the above note. Click here for the hotfix

Continue with the update

Check the update logs

Please take the time to review the logs and check whether an error has occurred. Log in and verify your installation.

Update from 1.11 to 1.12#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-1.12-update.zip

If prompted, overwrite everything by entering A. Now open the web interface updater and the update to v1.12 is displayed and selected; perform the update.

Update from 1.11 to 1.12

Check the update logs

Please take the time to review the logs and check whether an error has occurred. Log in and verify your installation.

Upgrade Debian 8 to 9#

Warning

Before you begin, please make sure you have a complete backup that you have tested on a clean server, in case something goes wrong -- there is no going back! Read the update instructions from Debian 8 to 9 here

I have a working complete backup

Free up some space with

1
2
sudo apt-get autoremove
sudo apt-get clean

Edit the sources.list with your preferred editor

1
sudo nano /etc/apt/sources.list

Change all entries to 'stretch' or delete all entries and add the following:

1
2
deb http://deb.debian.org/debian stretch main
deb http://deb.debian.org/debian stretch contrib

Now update the packages again

1
sudo apt-get update

If you receive a message like this, you can ignore it or read more here.

1
2
There are no public keys available for the following key IDs:
112695A0E562B32A

Now stop mysql and cron

1
sudo systemctl stop mysql cron

Perform the update to Debian 9

1
2
sudo apt-get upgrade
sudo apt-get full-upgrade

If asked 'Restart services during package upgrades without asking?', select 'Yes' and press Enter

Start the services we stopped:

1
sudo systemctl start mysql cron

Errors? Read here

Check the system and i-doit

Check your system and i-doit!

Free up some space again

1
2
sudo apt-get autoremove
sudo apt-get clean

Check your sources.list; for additional information see here
You are now on Debian 9 with PHP 5.6 and MariaDB 10.

Upgrade Debian 9 to 10#

Warning

Before you begin, please make sure you have a complete backup that you have tested on a clean server, in case something goes wrong -- there is no going back! Read the update instructions from Debian 9 to 10 here

I have a working complete backup

Free up some space with

1
2
sudo apt-get autoremove
sudo apt-get clean

Edit the sources.list with your preferred editor

1
sudo nano /etc/apt/sources.list

Change all entries to 'buster' or delete all entries and add the following

1
2
deb http://deb.debian.org/debian buster main
deb http://deb.debian.org/debian buster contrib

Now stop mysql and cron

1
sudo systemctl stop mysql cron

Perform the update to Debian 10

1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo apt-get full-upgrade

Start the services we stopped

1
sudo systemctl start mysql cron

Errors? Check the Debian website

Check the system and i-doit

Check your system and i-doit!

Free up some space again

1
2
sudo apt-get autoremove
sudo apt-get clean

Check your sources.list; for additional information see here
You are now on Debian 10 with PHP 5.6 and MariaDB 10.3.

Update from PHP 5.6 to PHP 7.3#

Backup

Create a backup or snapshot!

Update and install all required packages

1
2
sudo apt update
sudo apt install apache2 libapache2-mod-php mariadb-client mariadb-server php php-bcmath php-cli php-common php-curl php-gd php-imagick php-json php-ldap php-mbstring php-memcached php-mysql php-pgsql php-soap php-xml php-zip memcached unzip sudo moreutils

Create the PHP configuration file

1
sudo nano /etc/php/7.3/mods-available/i-doit.ini

Insert the following:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
allow_url_fopen = Yes
file_uploads = On
magic_quotes_gpc = Off
max_execution_time = 300
max_file_uploads = 42
max_input_time = 60
max_input_vars = 10000
memory_limit = 256M
post_max_size = 128M
register_argc_argv = On
register_globals = Off
short_open_tag = On
upload_max_filesize = 128M
display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = On
default_charset = "UTF-8"
default_socket_timeout = 60
date.timezone = Europe/Berlin
session.gc_maxlifetime = 604800
session.cookie_lifetime = 0
mysqli.default_socket = /var/run/mysqld/mysqld.sock

Enable the changes

1
2
3
4
5
sudo a2dismod php5
sudo a2enmod php7.3
sudo phpenmod i-doit
sudo phpenmod memcached
sudo systemctl restart apache2.service

i-doit should now display the new PHP version 7.3.31-1~deb10u1 under Administration > [Tenant Name] Administration > System Config Check.

Create the MariaDB Configuration File if Not Present#

Create or update a MariaDB configuration file

1
sudo nano /etc/mysql/mariadb.conf.d/99-i-doit.cnf

Insert or update your MariaDB configuration

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[mysqld]

# This is the number 1 setting to look at for any performance optimization
# It is where the data and indexes are cached: having it as large as possible will
# ensure MySQL uses memory and not disks for most read operations.
#
# Typical values are 1G (1-2GB RAM), 5-6G (8GB RAM), 20-25G (32GB RAM), 100-120G (128GB RAM).
innodb_buffer_pool_size = 1G

# Use multiple instances if you have innodb_buffer_pool_size > 10G, 1 every 4GB
innodb_buffer_pool_instances = 1

# Redo log file size, the higher the better.
# MySQL/MariaDB writes two of these log files in a default installation.
innodb_log_file_size = 512M

innodb_sort_buffer_size = 64M
sort_buffer_size = 262144 # default
join_buffer_size = 262144 # default

max_allowed_packet = 128M
max_heap_table_size = 32M
query_cache_min_res_unit = 4096
query_cache_type = 1
query_cache_limit = 5M
query_cache_size = 80M

tmp_table_size = 32M
max_connections = 200
innodb_file_per_table = 1

# Disable this (= 0) if you have only one to two CPU cores, change it to 4 for a quad core.
innodb_thread_concurrency = 0

# Disable this (= 0) if you have slow hard disks
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT

innodb_lru_scan_depth = 2048
table_definition_cache = 1024
table_open_cache = 2048
#Only if your have MySQL 5.6 or higher, do not use with MariaDB!
#table_open_cache_instances = 4

innodb_stats_on_metadata = 0

sql-mode = ""

Then restart MariaDB

1
sudo systemctl start mysql.service

Update from 1.12 to 1.13#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with

1
sudo -u www-data unzip idoit-1.13-update.zip

If prompted, overwrite everything by entering A.

Now open the web interface updater. The update to v1.13 is displayed and selected; perform the update.

Update from 1.12 to 1.13

You may receive this error:

Possible error

Schwerwiegender Fehler: Uncaught Error: Class 'idoit\Module\License\LicenseServiceFactory' nicht gefunden in /var/www/html/updates/versions/v1.13/migration/license_migration.php:50 Stacktrace: #0 /var/www/html/updates/classes/isys_update_migration.class.php(98): include() #1 /var/www/html/updates/update.inc.php(911): isys_update_migration->migrate('/var/www/html/u...') #2 /var/www/html/src/hypergate.inc.php(152): include_once('/var/www/html/u...') #3 /var/www/html/index.php(231): include_once('/var/www/html/s...') #4 {main} thrown in /var/www/html/updates/versions/v1.13/migration/license_migration.php on line 50

Then you need to start the update again.
If you now receive an HTTP 500 error, perform the update again.

Check the system and i-doit

Check your system and i-doit!

Update from 1.13 to 1.14#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with

1
sudo -u www-data unzip idoit-1.14-update.zip

If prompted, overwrite everything by entering A.

Now open the web interface updater. The update to v1.14 is displayed and selected; perform the update.

Update from 1.13 to 1.14

Check the update logs

Please take the time to review the logs and check whether an error has occurred.

If you see this error:

Possible error

Database error: Query error: 'ALTER TABLE isys_cats_person_list ADD isys_cats_person_list__disabled_login TINYINT(1) UNSIGNED DEFAULT 0': Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs.

The solution is documented here

Check the system and i-doit

Check your system and i-doit!

Update from 1.14 to 1.15#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with

1
sudo -u www-data unzip idoit-1.15-update.zip

If prompted, overwrite everything by entering A.

Now open the web interface updater. The update to v1.15 is displayed and selected; perform the update.

Update from 1.14 to 1.15

Check the system and i-doit

Check your system and i-doit!

Update from 1.15 to 1.16#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with

1
sudo -u www-data unzip idoit-1.16-update.zip

If prompted, overwrite everything by entering A.

Now open the web interface updater. The update to v1.16 is displayed and selected; perform the update.

Update from 1.15 to 1.16

Check the system and i-doit

Check your system and i-doit!

Update from 1.16 to 1.17#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with

1
sudo -u www-data unzip idoit-1.17-update.zip

If prompted, overwrite everything by entering A.

Now open the web interface updater. The update to v1.17 is displayed and selected; perform the update.

Update from 1.16 to 1.17

Check the system and i-doit

Check your system and i-doit!

Update from 1.17 to 1.18#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-1.18-update.zip

If prompted, overwrite everything by entering A.

Now open the web interface updater. The update to v1.18 is displayed and selected; perform the update.

Update from 1.17 to 1.18

Check the system and i-doit

Check your system and i-doit!

Upgrade Debian 10 to 11#

Warning

Before you begin, please make sure you have a complete backup that you have tested on a clean server, in case something goes wrong -- there is no going back!
Read the update instructions for Debian 10 to 11 here

I have a working complete backup

Free up some space with

1
2
sudo apt-get autoremove
sudo apt-get clean

Edit the sources.list with your preferred editor

1
sudo nano /etc/apt/sources.list

Change all entries to 'buster' or delete all entries and add the following

1
2
deb http://deb.debian.org/debian bullseye main
deb http://deb.debian.org/debian bullseye contrib

Now stop mysql and cron

1
sudo systemctl stop mysql cron

Perform the update to Debian 11

1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo apt-get full-upgrade

Start the services we stopped

1
sudo systemctl start mysql cron

Errors? Check the Debian website

Check the system and i-doit

Check your system and i-doit!

Free up some space again

1
2
sudo apt-get autoremove
sudo apt-get clean

Check your sources.list; for additional information see here

You are now on Debian 11 with PHP 7.4.30 and MariaDB 10.5.

Configure PHP 7.4#

Create the PHP configuration file

1
sudo nano /etc/php/7.4/mods-available/i-doit.ini

Insert the following:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
allow_url_fopen = Yes
file_uploads = On
magic_quotes_gpc = Off
max_execution_time = 300
max_file_uploads = 42
max_input_time = 60
max_input_vars = 10000
memory_limit = 256M
post_max_size = 128M
register_argc_argv = On
register_globals = Off
short_open_tag = On
upload_max_filesize = 128M
display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = On
default_charset = "UTF-8"
default_socket_timeout = 60
date.timezone = Europe/Berlin
session.gc_maxlifetime = 604800
session.cookie_lifetime = 0
mysqli.default_socket = /var/run/mysqld/mysqld.sock

Enable the changes

1
2
3
4
5
sudo a2dismod php7.3
sudo a2enmod php7.4
sudo phpenmod i-doit
sudo phpenmod memcached
sudo systemctl restart apache2.service

Possible error

(38)Function not implemented: AH00141: Could not initialize random number generator

If apache2 does not restart and you receive the above error, restart the server.

i-doit should now display the new PHP version 7.4.30 under Administration > [Tenant Name] Administration > System Config Check.

Update from 1.18 to 1.19#

First, we prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with

1
sudo -u www-data unzip idoit-1.19-update.zip

If prompted, overwrite everything by entering A.

If you attempt the update without PHP 7.4, you will see this message:

Possible error

You have PHP 7.3.31. To update i-doit to the next version, you need at least PHP 7.4!

Now open the web interface updater. The update to v1.19 is displayed and selected; perform the update.

Update from 1.18 to 1.19

Check the system and i-doit

Update from 1.19 to 20#

First, open the web interface updater.
By clicking Check for a new version, you can verify whether a newer package is available. This requires an internet connection.
If a new version is available, the update package can be downloaded and extracted with a single click on Download.

If you are not connected to the internet, you can prepare the update via the command line by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-20-update.zip

If prompted, overwrite everything by entering A.

In the web interface, verify that the update to version 20 is displayed and selected, then perform the update.

Update from 1.19 to 20

Check the update logs

Please take the time to review the logs and check whether an error has occurred.

Check the system and i-doit

Update from 20 to 29#

First, you need to prepare the update via the command line by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with the following command:

1
sudo -u www-data unzip idoit-29-update.zip

If prompted, overwrite everything by entering A.

In the web interface of the updater, verify that the update to version 29 is displayed and selected, then perform the update.

Update from 20 to 29

Check the update logs

Please take the time to review the logs and check whether an error has occurred.

Check the system and i-doit

Upgrade Debian 11 to 12#

Warning

Before you begin, please make sure you have a complete backup that you have tested on a clean server, in case something goes wrong -- there is no going back! Read the update instructions for Debian 11 to 12 here

I have a working complete backup

Free up some space with

1
2
sudo apt-get autoremove
sudo apt-get clean

Edit the sources.list with your preferred editor.

1
sudo nano /etc/apt/sources.list

Change all entries to 'bookworm' or delete all entries and add the following

1
2
deb http://deb.debian.org/debian bookworm main
deb http://deb.debian.org/debian bookworm contrib

Now stop mysql and cron

1
sudo systemctl stop mysql cron

Perform the update to Debian 12

1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo apt-get full-upgrade

Start the services we stopped

1
sudo systemctl start mysql cron

Errors? Read here

Check the system and i-doit

Check your system and i-doit!

Free up some space again

1
2
sudo apt-get autoremove
sudo apt-get clean

Check your sources.list; for additional information see here

You are now on Debian 12 with PHP 8.2.18 and MariaDB 10.11.

Configure PHP 8.2#

Create the PHP configuration file

1
sudo nano /etc/php/8.2/mods-available/i-doit.ini

Add the following:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
allow_url_fopen = Yes
file_uploads = On
magic_quotes_gpc = Off
max_execution_time = 300
max_file_uploads = 42
max_input_time = 60
max_input_vars = 10000
memory_limit = 256M
post_max_size = 128M
register_argc_argv = On
register_globals = Off
short_open_tag = On
upload_max_filesize = 128M
display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = On
default_charset = "UTF-8"
default_socket_timeout = 60
date.timezone = Europe/Berlin
session.gc_maxlifetime = 604800
session.cookie_lifetime = 0
mysqli.default_socket = /var/run/mysqld/mysqld.sock

Enable the changes

1
2
3
4
5
sudo a2dismod php7.4
sudo a2enmod php8.2
sudo phpenmod i-doit
sudo phpenmod memcached
sudo systemctl restart apache2.service

If apache2 does not restart, restart the server.

i-doit should now display the new PHP version 8.2.18 under Administration > [Tenant Name] Administration > System Config Check.

MariaDB 10.11 Upgrade#

Now we need to check the tables and update to the latest version with

1
sudo mariadb-upgrade -p

Enter your password and check whether everything went well

Then restart MariaDB

1
sudo systemctl start mysql.service

Update from 29 to 34#

First, prepare the update via the CLI by opening the i-doit folder at /var/www/html/ and extracting the i-doit update package with

1
sudo -u www-data unzip idoit-34-update.zip

If prompted, overwrite everything by entering A.

In the web interface updater, verify that the update to version 34 is displayed and selected, then perform the update.

Update from 29 to 34

Check the update logs

Please take the time to review the logs and check whether an error has occurred.

Check the system and i-doit

Sources#