Netresearch Blog

Blog

Hier erfahren Sie alle News und Insights. Wir stellen unser Wissen bereit, geben Tipps und informieren über alles, was intern und extern bei uns passiert.

Installation DHL Shipping-Extension für Magento 2 mit Composer

Vor einiger Zeit hat uns ein Supportkunde kontaktiert, weil er Schwierigkeiten hatte, eine Magento-Extension zu installieren. Er nutzte Magento 2 und wollte die DHL Shipping-Extension einrichten. In Magento 2 ist Composer dafür der empfohlene Weg. Wie die Extension-Installation genau abläuft, steht in unserer Readme. Bei der Installation auf dem Kundensystem zeigte sich aber ein Problem, nämlich:

composer require dhl/shipping-m2
[InvalidArgumentException]
Package dhl/module-carrier-paket at version 2.5.0 has a PHP requirement incompatible with your PHP version (8.1.2)

Die Meldung ist recht eindeutig: Die PHP-Version auf dem System passt nicht zu den Anforderungen unserer DHL-Extension.

Die benötigte PHP-Version ist nicht direkt in der composer.json des Meta-Packages definiert, sondern (u. a.) im Package dhl/module-carrier-paket, das auch in der Fehlermeldung genannt ist. Dessen composer.json offenbart:

"require": {
        "php": "^7.1.3",

PHP 8 ist offensichtlich nicht erlaubt, sondern nur PHP 7.x. (siehe Doku von Composer). Der Kunde teilte mir aber mit, dass er PHP 7.2 in seinem Projekt nutzt und er nicht versteht, woher die Version 8.1.2 in der Fehlermeldung kommt. Er hat sich seine PHP-Version im Browser anzeigen lassen.

Warum klappt also die Installation trotz scheinbar passender PHP-Version nicht?

Ursache

Die PHP-Version auf der Kommandozeile (CLI) muss nicht zwingend identisch mit der Version sein, die der Webserver (Apache, nginx) nutzt. Mit anderen Worten: was man hiermit auf der CLI sieht

php -v

kann durchaus davon abweichen, was man im Browser angezeigt bekommt, wenn man das hier macht:

<?php
  phpinfo();
?>

Beim Kunden war genau das der Fall: Der Apache-Webserver nutzte PHP 7.2, aber auf der CLI war die PHP-Version 8.1.2. Und da Composer im Kontext der CLI läuft, sah dieser die (unpassende) Version 8.1.2 und verweigerte verständlicherweise die Installation der DHL-Extension.

Lösung #1

Will man die Default-PHP-Version nicht umstellen, kann man im CLI-Befehl den absoluten Pfad zur Executable angeben – sofern denn mehrere PHP-Executables gleichzeitig auf dem System installiert sind:

/usr/bin/php7.2 composer require dhl/shipping-m2

Für die Composer-Installation funktioniert das aber nur, wenn in der composer.json keine post-install-cmd Einträge enthalten sind wie z. B.:

"post-install-cmd": [
  "php <some command>",
  "php <some other command>"
],

In diesen Commands fehlt die explizite Angabe der PHP-Version wieder, also können diese Befehle schiefgehen, weil die Default-PHP-Version nicht passt..

Lösung #2

Soll standardmäßig immer eine bestimmte PHP-Version für die CLI verwendet werden, ist die Umstellung des Symlinks zur Executable möglich. Je nach Systemkonfiguration kann das z.B. so aussehen:

/usr/bin/php -> /usr/bin/php7.2

Oder auf Debian bzw. Ubuntu auch so:

/usr/bin/php -> /etc/alternatives/php
/etc/alternatives/php -> /usr/bin/php7.2

Gibt man nur php auf der Kommandozeile ein, wird dem Symlink /usr/bin/php gefolgt, wodurch man am Ende bei der Executable für PHP 7.2 landet.

Wenn man nicht weiß, welche Executable bzw. welcher Symlink angesprochen wird, hilft:

which php

Damit wird der Pfad angezeigt, der aufgerufen wird, wenn das Kommando benutzt wird.

Es gibt natürlich noch weitere Lösungsmöglichkeiten, aber der Einfachheit halber beschränke ich mich hier auf die zwei genannten.

Der Kunde konnte sein Problem übrigens damit lösen, noch etwas zu warten, bis wir die Version 2.6.0 der DHL-Shipping-Extension veröffentlicht hatten. Die ist nämlich standardmäßig mit PHP 8.1 kompatibel.


Tobias Hein
Head of DXP

Sie möchten einen Rundum-Support, mit dem Sie langfristig zufrieden sind und der Ihre Probleme zeitnah löst? Dann lernen Sie uns kennen und kontaktieren Sie noch heute unseren Experten.

Artikel teilen:
Verwandte Themen
Magento

Newsletter abonnieren

 Newsletter zu B2B-E-Commerce- & TYPO3-Lösungen
 Netresearch Insights
Webinare & Events

Neueste Beiträge

Von Axel Seemann

TYPO3Camp Dresden 2024: Sessions, Erkenntnisse & Impressionen

Auch dieses Jahr waren wir als Sponsor und Teilnehmer beim TYPO3Camp in Dresden präsent. Im…

Weiterlesen
TYPO3 v13: Highlights in Core & Backend
Von Caroline Kindervater
TYPO3 v13: TOP 5 Highlights in Core und Backend

Jede neue TYPO3-Version hat neue Features, welche die Arbeit mit der Software erleichtern und den…

Weiterlesen
E-Commerce in Theorie & Praxis: Studenten BA Sachsen zu Besuch
Von Luca Becker
B2B-Commerce: Studenten der BA Sachsen zu Gast bei Netresearch

Netresearch engagiert sich unter der Leitlinie “enable & connect” dafür, junge Menschen in den…

Weiterlesen
B2B-Shop OroCommerce 5.1 für Petromax
Von Caroline Kindervater
Outdoor-Spezialist Petromax startet neuen B2B-Shop mit OroCommerce 5.1

Petromax vertreibt seine einzigartigen Outdoor-Artikel über zwei Online-Shops: einen für Endkunden…

Weiterlesen