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?!