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


NVM – Noder Version Manager

February 18, 2022

Als Fullstack oder Frontendentwickler benötigt man heute eigentlich immerNodeJS. Zumindest bei einem modernen Stack. Um zum Beispiel JS, CSS Dateien zu kompilieren oder in verschiedene Packages zu bündeln um es dann in das Projekt zu laden. Oder seine lokale Entwicklungsumgebung mit nützlichen Tools zu bereichern wie zum Beispiel Linter, Typescript. Wenn man mehrer verschiedene Projekte […]

InnoDB vs MyISAM

January 29, 2022

InnoDB setzt man ein um schnell Daten auszulesen. SELECT Anfragen werden hier schnell ausgeführt. MyISAM hingegen ist bei SELECT anfragen etwas langsamer aber dafür bei INSERT und UPDATE Anfragen schnell wie der Blitz. Daher kommt es häufig vor, dass man in einer Datenbank beide Formate vortrifft. Ich habe ein Projekt bei dem ich die Pageviews […]

Git Branch master zu main umbennen

December 20, 2021

Zuerst benennen wir unser Master in Main lokal um: 2. Nun möchten wir auf unserem entferntem Repository das selbe tun. Ändert den master auf main in eurem entfernetem Repository (GitLab, GitHub etc.). Dann könnt ihr von lokal aus: den neuen branch bespielen. Um den master jetzt zu löschen folgendes eingeben: Ich persönlich fand es unnötig […]

Sprechblassen mit HTML und CSS bauen

November 22, 2021

Es kommt immer mal wieder vor, dass man eine Sprechblase zum Beispiel in einer Kommentarbox bauen muss. Wie war das gleich nochmal?!? Man kann sich ja nicht immer alles merken und es gibt im Netzt auch nützliche Generatoren für diese Fälle. Für Sprechblasen könnte man zum Beispiel diesen hier nehmen: https://www.html-code-generator.com/css/speech-bubble-generator . Mit ein paar […]

Table colspan und rowspan Generator

November 21, 2021

Komplizierte Konstrukte mit Tabellen abzubilden war eigentlich eine Dispziplinzwischen den Jahr 2000 und 2003 herum. Immer wieder kommen aber bei Stackoverflow Fragen auf, wie man solche oder solche Tabellen darstellt. Statt auf das coole und moderne Grid System zurückzugreifen wird noch mit Tabellen gearbeitet. Wie auch immer. Wer sich den Horror mit colspans und rowspan […]

Eine bestehende Datenbank auf einem Docker laufen lassen

November 11, 2021

Stellt euch vor ihr bekommt die undankbare Aufgabe ein altes WordPress Projekt zu upgraden. Das Projekt hinkt bereits zwei Major Releases hinterher. Das bedeutet ihr könnt nicht einfach im Produktivsystem ein upgrade vollziehen. Ihr müsst euch das Produsystem auf eure lokale Entwicklungsumgebung kopieren. Dafür eignet sich Docker ganz gut. Heute gehe ich davon aus, dass […]