Shopware PHP-Version prüfen
Shopware-Update, CLI-Befehl oder Plugin funktionieren nicht, obwohl die Website erreichbar ist. Diese Anleitung zeigt, wie Web-PHP, CLI-PHP, PHP-Erweiterungen, Konfigurationsdateien und Hosting-Einstellungen systematisch geprüft werden.
Shopware, Composer oder die CLI verwendet eine falsche oder nicht unterstützte PHP-Version.
Webserver und Kommandozeile verwenden unterschiedliche PHP-Versionen oder unterschiedliche php.ini-Dateien.
Nicht nur die Versionsnummer prüfen. Erweiterungen, Speicherlimit, OPcache und CLI-Konfiguration gehören dazu.
Inhaltsverzeichnis
- Anforderungen festlegen
- Web-PHP prüfen
- CLI-PHP prüfen
- Web und CLI vergleichen
- Verfügbare PHP-Pfade finden
- php.ini prüfen
- PHP-Erweiterungen prüfen
- Speicher- und Laufzeitlimits
- Composer mit richtigem PHP starten
- Cronjobs und Worker prüfen
- PHP-Version sicher wechseln
- Typische Fehler auswerten
- Abschlusskontrolle
1. Passende PHP-Version für Shopware festlegen
Maßgeblich ist die konkrete Shopware-Version. Vor einem Update müssen zusätzlich Plugins, Themes, Composer-Pakete und Serverumgebung mit der vorgesehenen PHP-Version kompatibel sein.
| Shopware-Version | PHP-Anforderung |
|---|---|
| Shopware 6.5 | PHP 8.1 oder höher innerhalb der jeweils unterstützten Versionen |
| Shopware 6.6 | PHP 8.2 |
| Shopware 6.7 | PHP 8.2, 8.3 oder 8.4 |
Systemanforderungen können sich mit neuen Shopware-Versionen ändern. Vor Installation oder Update immer die Anforderungen der konkret eingesetzten Zielversion kontrollieren.
2. PHP-Version des Webservers prüfen
Die im Browser ausgeführte PHP-Version wird normalerweise im Hosting-Menü eingestellt. Zusätzlich kann sie kurzzeitig mit einer geschützten PHP-Datei geprüft werden.
<?php
echo PHP_VERSION;
Eine ausführliche phpinfo-Datei kann sensible Serverinformationen offenlegen. Für die reine Versionsprüfung reicht die kurze Ausgabe.
3. PHP-Version der Kommandozeile prüfen
php -v
Mit festem PHP-Pfad
/usr/bin/php -v
Shopware mit diesem PHP starten
/usr/bin/php bin/console --version
Updates, Composer, Cronjobs, Scheduled Tasks und Message Queue laufen häufig über PHP-CLI. Eine korrekte Web-PHP-Version reicht dafür nicht.
4. Web-PHP und CLI-PHP vergleichen
| Bereich | Typische Verwendung | Prüfung |
|---|---|---|
| Web-PHP | Storefront, Administration und HTTP-Anfragen | Hosting-Menü oder temporäre PHP-Datei |
| CLI-PHP | Shopware-Konsole, Composer, Cronjobs und Worker | php -v |
| Cronjob-PHP | Automatische Hintergrundprozesse | Absoluten PHP-Pfad im Cronjob prüfen |
Im Hosting-Menü wird nur Web-PHP geändert. Cronjobs und SSH verwenden weiterhin eine ältere Standardversion.
5. Verfügbare PHP-Pfade finden
Aktiv verwendeten Pfad anzeigen
which php
command -v php
Typische PHP-Binaries suchen
ls -lah /usr/bin/php*
ls -lah /usr/local/bin/php*
Mehrere Versionen vergleichen
/usr/bin/php8.2 -v
/usr/bin/php8.3 -v
/usr/bin/php8.4 -v
Die Beispiele müssen zum Server passen. Managed Hoster verwenden oft eigene Pfade wie /usr/local/php8.3/bin/php.
6. Verwendete php.ini kontrollieren
CLI-Konfigurationsdateien anzeigen
/usr/bin/php --ini
Wichtige Werte anzeigen
/usr/bin/php -r "
echo 'PHP: ', PHP_VERSION, PHP_EOL;
echo 'php.ini: ', php_ini_loaded_file(), PHP_EOL;
echo 'memory_limit: ', ini_get('memory_limit'), PHP_EOL;
echo 'max_execution_time: ', ini_get('max_execution_time'), PHP_EOL;
"
PHP-FPM, Apache-Modul und CLI können unterschiedliche Konfigurationsdateien laden. Änderungen an einer php.ini wirken daher nicht automatisch in allen Bereichen.
7. Erforderliche PHP-Erweiterungen prüfen
Geladene Erweiterungen anzeigen
/usr/bin/php -m
Nach wichtigen Modulen filtern
/usr/bin/php -m | grep -Ei "curl|dom|fileinfo|gd|intl|mbstring|openssl|pdo|xml|zip|opcache"
- cURL
- DOM und XML
- Fileinfo
- GD oder geeignete Bildverarbeitung
- Intl
- Mbstring
- OpenSSL
- PDO mit passendem Datenbanktreiber
- ZIP
- OPcache für den Produktivbetrieb
Ein Modul kann im Web-PHP geladen sein, im CLI-PHP aber fehlen. Das führt beispielsweise zu Fehlern bei Composer, Bildern, Importen oder Shopware-Konsolenbefehlen.
8. Speicher- und Laufzeitlimits prüfen
Aktuelle CLI-Werte anzeigen
/usr/bin/php -i | grep -Ei "memory_limit|max_execution_time|max_input_vars|upload_max_filesize|post_max_size"
| Wert | Bedeutung |
|---|---|
| memory_limit | Maximaler Arbeitsspeicher pro PHP-Prozess |
| max_execution_time | Zeitlimit für Web-Anfragen; CLI kann abweichen |
| upload_max_filesize | Maximale Größe einer einzelnen hochgeladenen Datei |
| post_max_size | Maximale Größe einer vollständigen POST-Anfrage |
| max_input_vars | Anzahl verarbeitbarer Eingabewerte |
Passende Werte hängen von Datenmenge, Erweiterungen, Importen und Hosting ab. Limits nicht ohne Fehleranalyse beliebig erhöhen.
9. Composer mit der richtigen PHP-Version ausführen
Composer-Version prüfen
composer --version
Composer explizit mit PHP starten
/usr/bin/php /usr/local/bin/composer --version
Plattformanforderungen prüfen
composer check-platform-reqs
Optionen, die PHP- oder Erweiterungsanforderungen ignorieren, können zwar eine Installation erzwingen, erzeugen aber einen technisch nicht unterstützten Systemstand.
10. PHP-Version in Cronjobs und Workern prüfen
Scheduled Tasks mit festem PHP-Pfad
* * * * * cd /pfad/zum/shopware-verzeichnis && /usr/bin/php bin/console scheduled-task:run --time-limit=55 >> /dev/null 2>&1
Message Queue mit festem PHP-Pfad
* * * * * cd /pfad/zum/shopware-verzeichnis && /usr/bin/php bin/console messenger:consume async low_priority --time-limit=55 --memory-limit=512M >> /dev/null 2>&1
Weitere Prüfungen enthält die Anleitung Shopware Cronjobs prüfen.
11. PHP-Version sicher wechseln
- Shopware-Zielversion und Anforderungen prüfen.
- Plugin- und Theme-Kompatibilität prüfen.
- Vollständiges Backup erstellen.
- Neue PHP-Version im Testsystem aktivieren.
- Erforderliche PHP-Erweiterungen installieren.
- Web-PHP und CLI-PHP gemeinsam umstellen.
- Cronjobs und Prozessmanager anpassen.
- Composer-Plattformanforderungen prüfen.
- Cache neu aufbauen.
- Storefront, Administration und Checkout testen.
Nach einer Umstellung kann ein kontrollierter Neustart des zuständigen PHP-FPM-Prozesses oder Hostings notwendig sein, damit alte Bytecode-Dateien nicht weiterverwendet werden.
12. Typische Fehler nach einem PHP-Wechsel
| Fehlerhinweis | Mögliche Ursache |
|---|---|
| Your PHP version does not satisfy that requirement | PHP-Version passt nicht zu Composer-Paketen |
| Call to undefined function | Benötigte PHP-Erweiterung fehlt |
| Class not found | Composer-Abhängigkeiten oder Autoloader unvollständig |
| Allowed memory size exhausted | Speicherlimit der verwendeten SAPI zu niedrig |
| 502 Bad Gateway | PHP-FPM startet nicht oder Socket-Konfiguration ist falsch |
| CLI funktioniert, Website nicht | Webserver verwendet andere PHP-Version oder php.ini |
| Website funktioniert, Cronjob nicht | Cronjob verwendet alten PHP-Pfad |
Shopware-Logs prüfen
tail -n 200 var/log/prod-*.log
13. Abschlusskontrolle
- Shopware-Version und PHP-Anforderung sind bekannt.
- Web-PHP verwendet die richtige Version.
- CLI-PHP verwendet die richtige Version.
- Cronjobs verwenden einen absoluten PHP-Pfad.
- Die richtige php.ini wird geladen.
- Erforderliche PHP-Erweiterungen sind aktiv.
- Speicher- und Uploadlimits sind ausreichend.
- Composer-Plattformprüfung läuft erfolgreich.
- Shopware-CLI startet ohne Fehler.
- Cache wurde neu aufgebaut.
- Storefront und Administration funktionieren.
- Checkout und E-Mail-Versand wurden getestet.
- Scheduled Tasks und Message Queue laufen.
- Logs enthalten keine neuen PHP-Fehler.
Die Prüfung ist abgeschlossen, wenn Webserver, CLI, Composer, Cronjobs und Worker dieselbe unterstützte PHP-Basis mit den erforderlichen Erweiterungen verwenden.
Häufige Fragen
Wie prüfe ich die PHP-Version über SSH?
Mit php -v beziehungsweise dem absoluten Pfad wie /usr/bin/php -v.
Warum zeigt Shopware eine andere PHP-Version als SSH?
Webserver und Kommandozeile können unterschiedliche PHP-Binaries und Konfigurationsdateien verwenden.
Welche PHP-Version benötigt Shopware 6.7?
Shopware 6.7 unterstützt PHP 8.2, 8.3 und 8.4. Für spätere Versionen müssen die jeweils aktuellen Systemanforderungen geprüft werden.
Warum funktioniert Composer nach dem PHP-Wechsel nicht?
Composer kann über ein anderes PHP gestartet werden oder ein benötigtes Modul fehlt. PHP-Pfad und composer check-platform-reqs prüfen.
Muss ich Cronjobs nach einem PHP-Wechsel anpassen?
Ja, wenn dort ein alter absoluter PHP-Pfad verwendet wird oder die Hosting-Oberfläche weiterhin die bisherige Version auswählt.
Reicht es, PHP nur im Hosting-Menü umzustellen?
Nicht immer. CLI, Composer, Cronjobs, Worker und PHP-FPM müssen ebenfalls kontrolliert werden.
Verwandte Shopware-Anleitungen
Shopware verwendet weiterhin die falsche PHP-Version?
Ich prüfe Web-PHP, CLI-PHP, Composer, Cronjobs, Erweiterungen und Serverkonfiguration direkt in der bestehenden Shopware-Installation.
Technische Prüfung anfragen