Problem mit dem Composer update/install und der PHP Version

Erst vor kurzem habe ich für eine Agentur eine Laravel Anwendung gebaut. Ich habe sie lokal entwickelt und nachdem sie fertig und getestet war dem Kunden vorgestellt. Da ich noch keine Servercredentials von der Agentur hatte, habe ich das Projekt in mein GitHub gelegt und auf meinen Server geclont und dort die Anwendung konfiguriert (Datenbank , Laravel Security Key und alles was mit der .env zu tun hat).

Dann composer install sowie artisan migrate durchlaufen lassen. Somit konnte ich der Agentur das Ergebnis zeigen und sie konnten testen. Das alles Remote von zu Hause.

Nachdem sie zufrieden waren, schickten sie mir ihre Server Zugangsdaten und ich machte das gleiche Prozedere wie auf meinem Server. Also über SSH auf den Server gelogt und los. Allerdings kam ich hier nur bis composer install. Denn der Composer meldete folgende Fehlermeldung:

Problem 1
    - Root composer.json requires php ^7.3 but your php version (7.2.34) does not satisfy that requirement.
  Problem 2
    - laravel/framework is locked to version v8.10.0 and an update of this package was not requested.
    - laravel/framework v8.10.0 requires php ^7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 3
    - mockery/mockery is locked to version 1.4.2 and an update of this package was not requested.
    - mockery/mockery 1.4.2 requires php ^7.3 || ^8.0 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 4
    - nunomaduro/collision is locked to version v5.0.2 and an update of this package was not requested.
    - nunomaduro/collision v5.0.2 requires php ^7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 5
    - phpunit/php-code-coverage is locked to version 9.2.0 and an update of this package was not requested.
    - phpunit/php-code-coverage 9.2.0 requires php >=7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 6
    - phpunit/php-file-iterator is locked to version 3.0.5 and an update of this package was not requested.
    - phpunit/php-file-iterator 3.0.5 requires php >=7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 7
    - phpunit/php-invoker is locked to version 3.1.1 and an update of this package was not requested.
    - phpunit/php-invoker 3.1.1 requires php >=7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 8
    - phpunit/php-text-template is locked to version 2.0.3 and an update of this package was not requested.
    - phpunit/php-text-template 2.0.3 requires php >=7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 9
    - phpunit/php-timer is locked to version 5.0.2 and an update of this package was not requested.
    - phpunit/php-timer 5.0.2 requires php >=7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 10
    - phpunit/phpunit is locked to version 9.4.1 and an update of this package was not requested.
    - phpunit/phpunit 9.4.1 requires php >=7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 11
    - sebastian/cli-parser is locked to version 1.0.1 and an update of this package was not requested.
    - sebastian/cli-parser 1.0.1 requires php >=7.3 -> your php version (7.2.34) does not satisfy that requirement.
  Problem 12
- sebastian/code-
…

Auch ein composer update lief ins Leere.

Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires php ^7.3 but your php version (7.2.34) does not satisfy that requirement.
  Problem 2
    - laravel/framework[v8.12.0, ..., 8.x-dev] require php ^7.3|^8.0 -> your php version (7.2.34) does not satisfy that requirement.
    - laravel/framework[v8.0.0, ..., v8.11.2] require php ^7.3 -> your php version (7.2.34) does not satisfy that requirement.
- Root composer.json requires laravel/framework ^8.0 -> satisfiable by laravel/framework[v8.0.0, ..., 8.x-dev].

Die Fehlermeldung ist dahingehen komisch, da ich auf dem server php 7.3 installiert bekommen habe. Also php -v gibt php 7.3 an.

PHP 7.3.23 (cli) (built: Oct  2 2020 14:41:47) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.3.4, Copyright (c) 2002-2019, by ionCube Ltd.
(10:20:50) [ve] 

Das bedeutet für mich, dass Composer davon ausgeht – warum auch immer – dass php 7.2 auf dem server installiert ist. Was ja auch richtig ist. Aber PHP hatte nachträglich einen Symlink auf die php7.3 gesetzt bekommen. Und das war sehr wahrscheinlich das Problem. Das erstemal wo composer lief, war standardmäßig noch php 7.2 aktiviert und wurde erst nachträglich auf php7.3 gesetzt. Composer merkte sich also die alte PHP Version. Also muss ich composer klar machen, vergiss die Alte und nimm die Neue 😉

Das macht man im nicht realen Leben über die Kommandozeile:

composer clear-cache
composer self-update
composer install --ignore-platform-reqs

Es lief durch und damit … Problem gelöst! Hoffe bei Euch auch?!


Leave a Comment

Your email address will not be published. Required fields are marked *

*

*

Empfholende Artikel


Git – Closing a Branch – Was soll das sein?

May 4, 2021

Wer mit Bitcucket arbeitet kennt den Terminus. Nach einem erfolgreichen Merge auf den Master kann der Branch mit einem Häckchen in einer Checkbox geschlossen werden. Unter den Kollegen ist man sich einig. Branch immer schließen. Bloß warum? Zuerst sollte erwähnt werden, dass es in Git kein explizietes Branch closen gibt. Man kann einen Branch aber […]

Git Pull Request enthält fremde Commits

April 2, 2021

Vielleicht ist das euch auch schon mal passiert. Mir jedenfalls passiert das immer mal wieder mal. Ich checke in ein Branch ein um zum Beispiel ein Code Review vorzunehmen. Nachdem ich fertig bin, schnappe ich mir ein Ticket und eröffne einen neuen Feature Branche. Der eine oder andere ahnt bestimmt schon, worauf ich hinaus will? […]

Git Commit Message Regeln

March 22, 2021

Lange Zeit war mir das auch nicht klar, dass es Regeln für Git Commit Messages gibt. Wie sinnvoll die Regeln sind erschließt sich spätestens dann wenn man in größeren Teams arbeitet. Diese 7 Regeln möchte ich euch hier kurz erklären. Die Regel hat der Softwareentwickler Chris Beams vor einiger Zeit erstellt und auf seinem Blog […]

HTML Boilerplate / Scaffold / Vorlage

February 13, 2021

Um schnell mal etwas auszuprobieren, kann es sein das man ein HTML Grundgerüst benötigt. Vielleicht geht es euch ähnlich wie mir. Ich bin faul uns suche dann im anderen Projekten schnell das Gerüst. Was aber immer mit nicht ganz ohne Aufwendung dann einzufügen ist. Man muss hier und dort noch was löschen bzw. korrigieren. Aus […]

Docker auf Ubuntu 18.04 installieren

February 13, 2021

Docker auf einem frischen Ubunto 18.04 installieren geht in wenigen Schritten. Mit frischem meine ich ein System wo noch keine ältere Dockerversion vorher lief. Wir holen jetzt paar Pakete die wir für die Docker Installation brauchen rein. Nun fügen wir den GPG Key/Schlüssel für das offizielle Docker Repository hinzu. (ist ein freies Kryptographiesystem) Jetzt fügen […]

Git – Neuen Branch verwerfen / löschen

February 10, 2021

Es kommt vor, dass man ein Feature für ein Projekt entwickeln soll und man zuerst ausprobiert was so geht. Ihr arbeitet an einem Remote Repository und entwickelt lokal. Dann schnell mal ein composer update und die composer.lock ist geändert. Ihr wollt am liebsten den ganzen Branch verwerfen und zum Step zurück wo ihr angefangen habt. […]