How to upgrade from GLPI 9.5.X to GLPI 10.0.X

In this article, which is not really going to be a tutorial, but rather a guide to help you move from GLPI 9.5.X to GLPI 10.0.X.

At the time of writing this guide in 2024, it has now been almost 2 years since GLPI 10 is out.

There are still many organizations that have still not made the leap to GLPI 10.0.X and are still in version 9.5.X.

For security reasons, it is imperative to upgrade to GLPI 10:

  • Branch 9.5 is no longer maintained
  • Outdated version of PHP

As there are as many GLPI installations as there are organizations, it is difficult to make a typical tutorial, which is why I will rather present this article in the form of a guide.

Before embarking on updating GLPI, you must analyze the server that runs your version of GLPI 9.5; it is a safe bet that it has been in place for several years now.

GLPI 10.0.X works with the latest version of PHP available which is 8.3 at the time of writing, so it will be a shame to update GLPI while remaining on PHP 7.4 and therefore on an OS which is no longer maintained.

I advise you to take advantage of this migration to move to a recent server.

Personally, I recommend that you install GLPI 10.0.X on a Linux environment which will be more efficient than Windows Server with IIS.

If you were using IIS for SSO authentication, today there are alternatives using SAML or OpenID authentication with ADFS or Keycloak.

If you can, I recommend an installation with the different GLPI services in containers: GLPI 10: installation

Before starting the migration, it is also important to take stock of your installation of GLPI 9.5.X and its use:

  • List the plugins used and check if they are compatible with GLPI 10.0.X
  • Switch to GLPI-integrated inventory by abandoning FusionInventory and switching to GLPI Agent.

Once you have studied these points, you must consider the transition to GLPI 10.0.X, with two choices:

  1. Starting with a clean installation of GLPI 10.0.X
  2. Update your existing GLPI

Starting with a clean installation of GLPI 10.0.X

The first possibility to upgrade to GLPI 10.0.X is to start with a clean installation.

The goal will be to completely reinstall GLPI, reconfigure it then install the plugins.

Once this is done, it is possible to start migrating the inventory to this GLPI installation by uninstalling the FI Agent and installing GLPI Agent.

On a given date, simply switch the Email collector(s) if you are using them and switch the DNS record to the new installation.

All that remains is to finish processing the old GLPI 9.5 tickets and the migration is complete. You just need to remember to create a DNS record to access the old version of GLPI while you finish processing tickets on it.

This way of doing things allows you to start again with a clean installation without interiority in the database, the disadvantage is the “loss of history” in GLPI 10.0.X but which can still be consulted by going to the old version.

This way of doing things is possible if you use GLPI only for tickets and inventory because everything that is knowledge base and projects will not be migrated.

Upgrade GLPI 9.5 to GLPI 10.0.X

In IT any migration involves risks, I therefore advise you before testing this migration to make a complete copy of your GLPI in 9.5.X and obviously, on the day of the real migration, to make a complete backup of your GLPI (files + database).

Here’s how to do it:

1. Download the target version of GLPI 10.0.X

2. In the GLPI 9.5.X directory, delete all folders except: config/files/plugins/marketplace/

3. Copy/Send GLPI 10.0.X folders and files

4. Perform the command line update

Start by checking the configuration:

# Web Server
sudo php /folder/glpi/bin/console glpi:system:check_requirements
# Docker
sudo docker compose exec web-php php /var/www/html/bin/console glpi:system:check_requirements

If no blocking problem is detected, we will move on to the various database updates:

#Web Server
sudo php /folder/glpi/bin/console db:update
sudo php /folder/glpi/bin/console migration:utf8mb4
sudo php /folder/glpi/bin/console migration:unsigned_keys
sudo docker compose exec web-php php /var/www/html/bin/console db:update
sudo docker compose exec web-php php /var/www/html/bin/console migration:utf8mb4
sudo docker compose exec web-php php /var/www/html/bin/console migration:unsigned_keys

The commands are executed one by one and must be confirmed by entering the word Yes

The GLPI database is up to date.

5. Delete file /folder/glpi/install/install.php.

6. Test that GLPI 10.0.X is working properly by logging in.

7. Update plugins

8. Switch to native GLPI inventory with GLPI Agent.

I hope that this “guide” will allow you to update your GLPI installations.

Leave a Comment