Wer eine Laravel-Anwendung auf Hostinger Shared Hosting betreibt, kennt das Problem: Im hPanel ist PHP 8.3 ausgewählt, doch im Terminal zeigt php -v plötzlich Version 8.2 an. Das Ergebnis ist ein fehlgeschlagener composer install. Doch der Fehler liegt nicht in Composer oder der Anwendung – sondern in der falschen PHP-Version für die Kommandozeile.
Warum die PHP-Version auf Hostinger Shared Hosting oft nicht übereinstimmt
Hostinger installiert mehrere PHP-Versionen parallel in separaten Verzeichnissen unter /opt/alt/. Die Auswahl im hPanel (Hosting → Verwalten → PHP-Konfiguration) steuert nur die Version für den Webserver, also die PHP-FPM, die beim Aufruf einer Webseite genutzt wird. Die Kommandozeile (SSH) greift jedoch auf eine andere PHP-Version zu, wenn diese nicht explizit in der $PATH-Umgebungsvariable festgelegt ist.
$ php -v
PHP 8.2.30 (cli)Laravel 13 und seine Abhängigkeiten benötigen mindestens PHP 8.3. Wird die CLI-Version nicht angepasst, scheitert composer install selbst dann, wenn die Webseite selbst korrekt läuft.
Häufige Lösungsversuche – und warum sie nicht funktionieren
Viele Nutzer versuchen zunächst, das Problem mit Composer selbst zu lösen. Doch folgende Ansätze führen nicht zum Ziel:
- `composer update`
Composer prüft die PHP-Version im composer.json des Projekts. Da dort "php": "^8.3" steht, wird die Installation verweigert, bevor Composer überhaupt Abhängigkeiten aktualisieren kann.
- `composer install --ignore-platform-reqs`
Dieser Befehl umgeht die PHP-Prüfung und installiert die Pakete trotzdem. Allerdings riskiert man damit Anwendungsfehler, da einige Pakete tatsächlich Funktionen aus PHP 8.3 benötigen. Es handelt sich also um eine Notlösung, keine dauerhafte Lösung.
- PHP-Version in hPanel ändern
Die Änderung im hPanel wirkt sich nur auf den Webserver aus. Die CLI bleibt davon unberührt – ein häufiger Grund für Verwirrung.
Der richtige Weg: Die CLI-PHP-Version manuell anpassen
Hostinger speichert jede PHP-Version in einem separaten Ordner. Eine Übersicht aller installierten Versionen erhält man mit:
ls /opt/alt/
# Ausgabe: php74 php80 php81 php82 php83 php85Um die CLI-PHP-Version zu ändern, muss der Pfad zur gewünschten Version (/opt/alt/php83/usr/bin) vor den standardmäßigen PHP-Pfad in der $PATH-Umgebungsvariable gesetzt werden. Dies erreicht man mit folgendem Befehl:
export PATH="/opt/alt/php83/usr/bin:$PATH"Nach dieser Anpassung zeigt php -v die korrekte Version an:
$ php -v
PHP 8.3.0 (cli)Nun kann composer install ohne Fehlermeldungen ausgeführt werden:
$ composer install
Installing dependencies from lock file...Die Änderung dauerhaft speichern
Der export-Befehl wirkt nur für die aktuelle Terminal-Sitzung. Um ihn zu verankern, muss er in die Shell-Konfigurationsdatei aufgenommen werden. Für die Bash (Standard auf den meisten Hosting-Systemen) lautet der Befehl:
echo 'export PATH="/opt/alt/php83/usr/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcNutzer der Z Shell (zsh) müssen stattdessen die Datei ~/.zshrc anpassen:
echo 'export PATH="/opt/alt/php83/usr/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcNach einem erneuten Login wird die korrekte PHP-Version automatisch für die Kommandozeile verwendet.
Wie man überprüft, ob die Änderung erfolgreich war
Zwei einfache Befehle bestätigen die korrekte Konfiguration:
$ which php
/opt/alt/php83/usr/bin/php
$ php -v
PHP 8.3.0 (cli)Composer nutzt ebenfalls den Befehl php aus der $PATH-Umgebungsvariable. Daher funktionieren alle Composer-Befehle nun ohne zusätzliche Parameter.
Fazit: Warum diese Lösung funktioniert
Shared Hosting-Anbieter wie Hostinger müssen mehrere PHP-Versionen parallel anbieten, um unterschiedliche Kundenanforderungen zu erfüllen. Die Lösung liegt nicht in der Deaktivierung von Prüfungen oder der Nutzung von Notlösungen, sondern in der gezielten Anpassung der Umgebung, in der die Befehle ausgeführt werden. Durch das Voranstellen des korrekten PHP-Pfades in der $PATH-Variablen wird sichergestellt, dass alle Tools – von Composer bis zu eigenen Skripten – mit der richtigen PHP-Version arbeiten.
Wer eine Laravel-Anwendung auf Hostinger oder einem ähnlichen Shared-Hosting-System betreibt, sollte diese Methode als Standardlösung für PHP-Versionen-Konflikte zwischen Webserver und Kommandozeile verinnerlichen. Sie vermeidet gefährliche Workarounds und stellt die Kompatibilität auf lange Sicht sicher.
In Zukunft könnten Hosting-Anbieter die PHP-Version für die CLI standardmäßig an die Webserver-Version koppeln – bis dahin bleibt dieser manuelle Ansatz der zuverlässigste Weg, um stabile und fehlerfreie Deployments zu gewährleisten.
KI-Zusammenfassung
Hostinger paylaşımlı barındırmada PHP versiyon uyuşmazlığı yaşadınız mı? Laravel projelerinde karşılaşılan bu sorunu çözmek için gereken adımları ve kalıcı düzeltmeyi öğrenin. Hızlı ve güvenilir yöntemler.