GLPI 11 unter Linux zu installieren ist unkompliziert – bis zu der Zeile, in der Sie config/ und files/ aus dem Webroot verschieben und der Installer die Datenbank „nicht mehr findet“. Dies ist die Schritt-für-Schritt-Anleitung, die wir bei der Bereitstellung von GLPI für Kunden verwenden: die echten Befehle, die zwei php.ini, auf die es wirklich ankommt, die Datei, die den häufigsten Fehler der manuellen Installation verhindert, und die Checkliste nach der Installation, die Ihre Umgebung absichert.
Bevor Sie beginnen: Dimensionieren Sie den Server
GLPI 11 läuft auf dem klassischen LAMP-Stack: Apache (oder Nginx) + PHP 8.1 oder höher + MariaDB 10.5+ (oder MySQL 8). Unter Debian 12 ist PHP 8.2 Standard, unter Ubuntu 24.04 LTS PHP 8.3 – beide sind geeignet. Was sich zwischen einem Pilotprojekt und einer Umgebung mit Hunderten von Technikern wirklich ändert, sind RAM und Ausführungsmodell von PHP (mod_php vs. PHP-FPM). Diese Matrix verwenden wir zur Dimensionierung:
| Profil | Aktive Benutzer | RAM | vCPU | PHP-Modell |
|---|---|---|---|---|
| Pilot / POC | bis 20 | 2 GB | 2 | mod_php genügt |
| Klein | bis 100 | 4 GB | 2 | PHP-FPM + OPcache |
| Mittel | 100 bis 400 | 8 GB | 4 | Eigener PHP-FPM, SSD-Speicher |
| Groß | 400+ | 16 GB+ | 4+ | Datenbank auf separatem Host |
1. System, Webserver, PHP und Erweiterungen
Aktualisieren Sie Ihr System und installieren Sie alles auf einmal. Die Erweiterungen sind nicht optional: GLPI prüft jede einzelne auf der Seite mit den Systemanforderungen.
apt update && apt upgrade -y
apt install -y apache2 mariadb-server \
php php-{mysql,curl,gd,intl,xml,mbstring,zip,bz2,ldap,apcu,bcmath} \
libapache2-mod-php certbot python3-certbot-apacheDebian 13 (Trixie) und GLPI 11.0.11: Wir haben im Oktober 2026 mit PHP 8.4 und MariaDB 11.8 getestet, und die Installation läuft mit zwei Anpassungen, die im obigen Befehl bereits enthalten sind, bis zum Ende durch. Paket php-imap existiert unter Debian 13 nicht (PHP 8.4 hat diese Erweiterung aus dem Kern entfernt, und GLPI 11 braucht sie nicht). Außerdem ist Erweiterung bcmath in GLPI 11 Pflicht: Ohne php-bcmath bricht db:install mit „bcmath extension is missing“ ab. Derselbe Befehl gilt für Debian 12 und Ubuntu 24.04.
Der häufige Fehler an dieser Stelle ist, php-intl zu vergessen: Die Paketinstallation läuft durch, aber GLPI blockiert bei der Prüfung der Anforderungen, und Datumsformatierung sowie Internationalisierung funktionieren nicht. php-ldap und php-imap sind nur nötig, wenn Sie Active Directory und den E-Mail-Empfänger (Collector) anbinden wollen, aber wenn Sie sie gleich mitinstallieren, müssen Sie später nichts nachinstallieren.
2. Die zwei php.ini, auf die es ankommt
An diesem Punkt unterscheidet sich eine Installation, die „funktioniert“, von einer, die auch nachts funktioniert. PHP hält getrennte Konfigurationen je SAPI vor: Apache liest /etc/php/8.2/apache2/php.ini, aber der Cron von GLPI läuft über die Kommandozeile und liest /etc/php/8.2/cli/php.ini. Passen Sie beide mit denselben Werten an:
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 300
max_input_vars = 5000
session.cookie_httponly = On
date.timezone = America/Sao_Paulo
; lembre-se: este mesmo arquivo existe em .../cli/php.iniIm laufenden Betrieb ist die Hauptursache für „die automatischen Aktionen laufen nicht mehr“ fast nie der System-Cron: Es ist ein memory_limit von 128M in der php.ini der CLI, der die Inventarsynchronisierung oder den Massenversand von Benachrichtigungen blockiert, während der Wert für Apache längst auf 256M stand und niemand Verdacht schöpfte. Bearbeiten Sie beide Dateien.
3. MariaDB, Datenbank und Zeitzone
Führen Sie mysql_secure_installation aus und legen Sie die Datenbank mit utf8mb4 an (Sonderzeichen und Emojis hängen davon ab):
mysql -u root -pCREATE DATABASE glpi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'SuaSenhaForte';
GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';
FLUSH PRIVILEGES;Ein Detail, welches sich erst später zeigt: Die Zeitzonenauswahl von GLPI bleibt leer, bis Sie die Zeitzonentabellen von MariaDB importieren und dem GLPI-Benutzer Leserechte erteilen. Erledigen Sie dies jetzt:
# Importa as tabelas de fuso; sem isto o seletor de timezone fica vazio
mariadb-tzinfo-to-sql /usr/share/zoneinfo | mysql -u root mysql
mysql -u root -e "GRANT SELECT ON mysql.time_zone_name TO 'glpi'@'localhost'; FLUSH PRIVILEGES;"4. Holen Sie config, files und logs aus dem Webroot – und sagen Sie GLPI, wo sie liegen
Laden Sie GLPI 11 herunter und entpacken Sie es:
cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/11.0.11/glpi-11.0.11.tgz
tar -xzf glpi-11.0.11.tgz -C /var/www/
chown -R www-data:www-data /var/www/glpiAus Sicherheitsgründen dürfen sensible Daten nicht unter dem Webroot liegen. Verschieben Sie sie:
mkdir -p /etc/glpi /var/lib/glpi/files /var/log/glpi
mv /var/www/glpi/config/* /etc/glpi/
mv /var/www/glpi/files/* /var/lib/glpi/files/
chown -R www-data:www-data /etc/glpi /var/lib/glpi /var/log/glpiHier liegt der häufigste Fehler der manuellen Installation: die Verzeichnisse zu verschieben, ohne GLPI mitzuteilen, wohin. Die Folge: Der Installer legt config/ und files/ im Webroot neu an, Sie schränken die Berechtigungen am falschen Ort ein und bleiben weiterhin exponiert. Der richtige Weg ist, inc/downstream.php anzulegen – diese Datei wird sowohl von Apache als auch von der CLI gelesen und löst damit Web und Cron auf einmal:
<?php // /var/www/glpi/inc/downstream.php
define('GLPI_CONFIG_DIR', '/etc/glpi');
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');5. Virtual Host, HTTPS und DocumentRoot in public/
Ihr DocumentRoot zeigt auf /var/www/glpi/public, niemals auf die Wurzel der Installation – dies ist seit GLPI 10 Pflicht und verhindert, dass config und files über das Web ausgeliefert werden.
<VirtualHost *:80>
ServerName glpi.cliente.com.br
DocumentRoot /var/www/glpi/public # nunca /var/www/glpi
<Directory /var/www/glpi/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>a2ensite glpi.conf && a2enmod rewrite
a2dissite 000-default.conf
systemctl reload apache2
certbot --apache -d glpi.cliente.com.br6. Per Kommandozeile installieren und Cron konfigurieren
Ist downstream.php angelegt, schreibt db:install die config_db.php bereits nach /etc/glpi – Sie müssen keine Variable exportieren:
php /var/www/glpi/bin/console db:install \
--db-host=localhost --db-name=glpi \
--db-user=glpi --db-password='SuaSenhaForte' \
--default-language=pt_BR --no-interactionGLPI verarbeitet Benachrichtigungen, Inventar und automatische Aktionen über einen externen Cron. Planen Sie ihn minütlich ein – GLPI entscheidet selbst, was bei jedem Aufruf läuft, je nach Häufigkeit der einzelnen Aufgaben:
echo "* * * * * www-data /usr/bin/php /var/www/glpi/front/cron.php &>/dev/null" > /etc/cron.d/glpiStellen Sie danach unter Einrichten > Automatische Aktionen den Ausführungsmodus auf CLI um. Bleibt der interne Modus aktiv (Auslösung beim Zugriff eines Benutzers), fallen die Aufgaben nachts und am Wochenende aus – genau dann, wenn Inventar und Backups laufen sollen.
7. Nach der Installation: die Checkliste, die Ihre Umgebung absichert
- Entfernen Sie den Installer:
rm /var/www/glpi/install/install.php. Achtung: Jedes Upgrade legt diese Datei neu an – entfernen Sie sie nach jedem Update erneut. - Ändern Sie die Passwörter der vier Standardbenutzer:
glpi,tech,normalundpost-only. - Konfigurieren Sie SMTP unter Einrichten > Benachrichtigungen und senden Sie eine Test-E-Mail.
- Prüfen Sie, ob der Installer nicht mehr erreichbar ist und der Cron gelaufen ist:
# Instalador ainda acessível? (esperado: 404)
curl -s -o /dev/null -w "%{http_code}\n" https://glpi.cliente.com.br/install/install.php-- O cron externo está rodando? (lastrun deve ser recente)
SELECT name, state, lastrun FROM glpi_crontasks ORDER BY lastrun DESC LIMIT 5;Was wir prüfen, wenn wir ein GLPI von Dritten übernehmen
Wenn wir den Betrieb einer Umgebung übernehmen, die ein anderes Team installiert hat, ist die Diagnose immer dasselbe Trio: Gibt es inc/downstream.php, oder existieren zwei Verzeichnisse config nebeneinander (ein aktives und ein Phantom, in dem jemand wirkungslos Änderungen vornimmt)? Entspricht memory_limit der CLI dem Wert von Apache? Und steht der Modus der automatischen Aktionen auf CLI oder hängt er am Benutzerzugriff? Diese drei Punkte erklären die meisten Meldungen à la „GLPI ist langsam“ und „Benachrichtigungen kommen nicht an“, die uns erreichen – und keiner davon zeigt sich bei einer Installation, die nur durch Klicken in der Oberfläche während der Geschäftszeiten getestet wurde.
Sie brauchen ein GLPI 11, eingerichtet und betreut mit dieser Sorgfalt, ohne Altlasten aus der Installation zu übernehmen? Lernen Sie den Betrieb von GLPI-Umgebungen durch NexTool kennen.
Geprüft vom Team von NexTool Solutions.