Probleme in Linux: ext-fileinfo fehlt für ein „composer update“.
Beim Versuch in Linux ein PHP-Projekt mit Composer zum Laufen zu bekommen, bekam ich folgende Fehlermeldung:
Your requirements could not be resolved to an installable set of packages. Problem 1 - phpoffice/phpspreadsheet[1.20.0, ..., 1.24.1] require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension. - Root composer.json requires phpoffice/phpspreadsheet ^1.20 -> satisfiable by phpoffice/phpspreadsheet[1.20.0, ..., 1.24.1].
Es fehlte das Zusatzmodul „ext-fileinfo“. Gut, das sollte sich doch leicht über die „php.ini“ Datei aktivieren lassen, oder?
In der „php.ini“ Datei findet sich folgender Eintrag, welcher zu aktivieren ist:
extension=fileinfo
Windows-Nutzer finden einen ähnlichen Eintrag:
extension=php_fileinfo.dll
Normal sollte es genügen, das „;“ am Anfang zu entfernen. Anschließend den Apache Server neu starten.
sudo systemctl apache2 restart
Zu beachten ist, dass es in Linux u.U. zwei „php.ini“ Dateien gibt:
/etc/php8/cli/php.ini /etc/php8/apache2/php.ini
Es gibt eine Variante für das Command Line Interface (CLI) und für den Apache-Webserver. In beiden sollte die Änderung durchgeführt werden.
Dummerweise lief es anschließend immer noch nicht. Mit dem Befehl „php -m
“ lässt sich übrigens überprüfen, welche Module geladen bzw. aktiv sind. Hier fehlte die „fileinfo“ jedoch.
Die Lösung war, dies nachzuinstallieren.
sudo apt-get install php8-fileinfo
Oder in meinem Fall bei openSuse:
sudo zypper install php8-fileinfo
Anschließend wurde das Modul gefunden, geladen und das Update mit Composer funktionierte nun problemlos.