how to remove PHP version error on deployment - php

I am using Xampp for local development, and I am working on the Laravel application. Everything works fine on the local server, but I am unable to deploy it. I am getting this error:
Problem 1
- Installation request for symfony/css-selector v5.0.6 -> satisfiable by symfony/css-selector[v5.0.6].
- symfony/css-selector v5.0.6 requires php ^7.2.5 -> your PHP version (7.2.2) does not satisfy that requirement.
Problem 2
- Installation request for symfony/mime v5.0.6 -> satisfiable by symfony/mime[v5.0.6].
- symfony/mime v5.0.6 requires php ^7.2.5 -> your PHP version (7.2.2) does not satisfy that requirement.
Problem 3
- Installation request for symfony/service-contracts v2.0.1 -> satisfiable by symfony/service-contracts[v2.0.1].
- symfony/service-contracts v2.0.1 requires php ^7.2.5 -> your PHP version (7.2.2) does not satisfy that requirement.
Problem 4
- Installation request for symfony/translation-contracts v2.0.1 -> satisfiable by symfony/translation-contracts[v2.0.1].
- symfony/translation-contracts v2.0.1 requires php ^7.2.5 -> your PHP version (7.2.2) does not satisfy that requirement.
Problem 5
- symfony/mime v5.0.6 requires php ^7.2.5 -> your PHP version (7.2.2) does not satisfy that requirement.
- symfony/http-foundation v4.4.6 requires symfony/mime ^4.3|^5.0 -> satisfiable by symfony/mime[v5.0.6].
- Installation request for symfony/http-foundation v4.4.6 -> satisfiable by symfony/http-foundation[v4.4.6].
I am using Xampp version 7.2.28 and using Laravel Envoyer for deployment. How can I solve this? Any help would be highly appreciable.

Thats becuase the version you are using locally is newer than the version of on the server. so your installing dependencies for the newer version and then trying to install on a lower version. you should make sure that your local environments match the live enviornment as much as possible, using Docker is quite handy for this.
Your possible solutions are:
Upgrade the PHP version on the live server
Downgrade the PHP version on your local to match production and adjust the dependencies accordingly
Set versions of your dependencies for the live system to compatible versions and re-install the dependencies
Downgrade your dependencies so that they can run on PHP 7.2.2 or later
The solution I would recommend is: "Downgrade your dependencies so that they can run on PHP 7.2.2 or later"
Note: I wouldn't actually recommend lowering your PHP version on the live system, but it is an option.

Related

Getting error of php version in Laravel 6 composer update even though my php version is 7.2.1

I downloaded a laravel 6 demo project and setting it up in my mac mamp. Initialy my php version was 7.1.23 and i was getting this error.
Warning: require(/Applications/MAMP/htdocs/laravel_demo/public/../vendor/autoload.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/laravel_demo/public/index.php on line 26
Fatal error: require(): Failed opening required '/Applications/MAMP/htdocs/laravel_demo/public/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.2.1/lib/php') in /Applications/MAMP/htdocs/laravel_demo/public/index.php on line 26
So i changed my php version to 7.2.1 by renaming old php version folder in mamp. Now if i run phpinfo() It is showing php version 7.2.1. But when i run composer update in terminal i am getting this error.
Problem 1
- This package requires php ^7.2 but your PHP version (7.1.23) does not satisfy that requirement.
Problem 2
- laravel/framework v6.4.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.3.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.2.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.1.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.4 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.3 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.2 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.1 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework 6.x-dev requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- Installation request for laravel/framework ^6.0 -> satisfiable by laravel/framework[6.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.2.0, v6.3.0, v6.4.0].
Is this issue related to laravel setup or my php version or am i missing something in updating my php version?
Laravel 6 requires PHP >= 7.2.0 and your version is 7.1.23.
What happening in this case?
If you run phpinfo() by a file accessed on your browser via http server. The output maybe different for your terminal. If the PHP enabled on your HTTP server (like apache or nginx) is the newest (7.2) maybe is the case to check the version in your terminal running php -v.
In some cases the php are updated to http server but, the "cli" version are not updated and points to older version, it depends on the way that the system are updated.
If this situation is your case, you need to check if php-cli are correctly installed.
Laravel 6 is required PHP Version is PHP >= 7.2.0.
your version is 7.1.23 that is lower requirement.
you install mamp 7.2 or latest versions.

Is there a way to install older Laravel-Auditing versions?

I am using Laravel 5.4, PHP 7.0.30 and Ubuntu. As I type the command sudo composer require owen-it/laravel-auditing to install Laravel-Auditing, I get the following errors:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- symfony/css-selector v4.1.4 requires php ^7.1.3 -> your PHP version (7.0.30) does not satisfy that requirement.
- symfony/css-selector v4.1.4 requires php ^7.1.3 -> your PHP version (7.0.30) does not satisfy that requirement.
- symfony/css-selector v4.1.4 requires php ^7.1.3 -> your PHP version (7.0.30) does not satisfy that requirement.
- Installation request for symfony/css-selector == 4.1.4.0 -> satisfiable by symfony/css-selector[v4.1.4].
Installation failed, reverting ./composer.json to its original content.
It's not feasible to upgrade PHP version right now either.
Please help !

Composer & Plesk, encountering PHP version difficulties

Am currently attempting to get my Laravel application running behind Plesk Onyx. Now when trying to run composer install, I get the following error messages:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for doctrine/inflector v1.3.0 -> satisfiable by doctrine/inflector[v1.3.0].
- doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
Problem 2
- Installation request for symfony/css-selector v4.0.6 -> satisfiable by symfony/css-selector[v4.0.6].
- symfony/css-selector v4.0.6 requires php ^7.1.3 -> your PHP version (7.0.27) does not satisfy that requirement.
Problem 3
- Installation request for symfony/event-dispatcher v4.0.6 -> satisfiable by symfony/event-dispatcher[v4.0.6].
- symfony/event-dispatcher v4.0.6 requires php ^7.1.3 -> your PHP version (7.0.27) does not satisfy that requirement.
Problem 4
- Installation request for symfony/translation v4.0.6 -> satisfiable by symfony/translation[v4.0.6].
- symfony/translation v4.0.6 requires php ^7.1.3 -> your PHP version (7.0.27) does not satisfy that requirement.
Problem 5
- Installation request for doctrine/instantiator 1.1.0 -> satisfiable by doctrine/instantiator[1.1.0].
- doctrine/instantiator 1.1.0 requires php ^7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
Problem 6
- doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
- laravel/framework v5.5.39 requires doctrine/inflector ~1.1 -> satisfiable by doctrine/inflector[v1.3.0].
- Installation request for laravel/framework v5.5.39 -> satisfiable by laravel/framework[v5.5.39].
OK. I understand the errors for sure. I run Debian 9 and "PHP by OS Vendor" is 7.0.27. However, I know that PHP 7.1+ (and even 7.2) is installed on the server, because Plesk'd let me choose (for domains and vhosts) these versions. My question now is: How can I tell composer to use a certain PHP version installed on the server, and how could this work under Debian with Plesk?
Edit: I did not install Composer globally. Just https://getcomposer.org/download/ "Command-line installation".
Here's how:
Find the PHP paths used by Plesk. In my case, this is /opt/plesk/php/. Inside this folder, there are the folders according to PHP versions installed: 7.0, 7.1, 7.2. So php composer.phar install becomes /opt/plesk/php/7.2/bin/php composer.phar install. & it works. :-)
You may use platform setting in composer.json to emulate PHP version:
"config": {
"platform": {
"php": "7.1"
}
},
Composer will assume that PHP version is 7.1 during installation and update, even if you're using 7.0 to actual install.
This will only affect Composer installation and update - if you want to run console commands of your app, you will need to use correct binary (same for web server). However setting this will make your Composer installs and updates more predictable, so it's worth doing it anyway.

Installing a specific PHP version with macports

I need to mimic my hosting environment, so composer and symfony would respect the environment.
My host is on PHP 7.0.6
And my local environment is on 7.0.21
During an upgrade doctrine/doctrine-bundle spits out an error
Problem 1
- This package requires php >=7.0.18 but your PHP version (7.0.6) does not satisfy that requirement.
Problem 2
- Installation request for ocramius/proxy-manager 2.0.4 -> satisfiable by ocramius/proxy-manager[2.0.4].
- ocramius/proxy-manager 2.0.4 requires php 7.0.0 - 7.0.5 || ^7.0.7 -> your PHP version (7.0.6) does not satisfy that requirement.
Problem 3
- doctrine/migrations v1.5.0 requires ocramius/proxy-manager ^1.0|^2.0 -> satisfiable by ocramius/proxy-manager[2.0.4].
- doctrine/migrations v1.5.0 requires ocramius/proxy-manager ^1.0|^2.0 -> satisfiable by ocramius/proxy-manager[2.0.4].
- ocramius/proxy-manager 2.0.4 requires php 7.0.0 - 7.0.5 || ^7.0.7 -> your PHP version (7.0.6) does not satisfy that requirement.
- Installation request for doctrine/migrations v1.5.0 -> satisfiable by doctrine/migrations[v1.5.0].
I followed these instructions https://trac.macports.org/wiki/howto/InstallingOlderPort
And tracked the proper version of macports https://github.com/macports/macports-ports/commit/99a636bc52126e82187694ad73c413e22d13f68c
so I ran
git clone --single-branch https://github.com/macports/macports-ports.git
cd macports-ports
git checkout 99a636bc52126e82187694ad73c413e22d13f68c
But I still have the same version of PHP
Any help would be really appreciated.

Issues installing Laravel/Spark Due to System PHP Version

I'm on a new development machine, and I'm having issues installing Laravel, Spark, or just about anything that requires anything newer than PHP 5.5.30.
The problem is, I'm using MAMP Pro which IS running PHP 7.0.1. I've also tried to update my system's PHP version to PHP 7 using this tutorial: https://coolestguidesontheplanet.com/upgrade-php-on-osx/
☁ /webroot spark new app
Crafting application...
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- This package requires php >=5.6.4 but your PHP version (5.5.30) does not satisfy that requirement.
Problem 2
- Installation request for laravel/framework v5.3.20 -> satisfiable by laravel/framework[v5.3.20].
- laravel/framework v5.3.20 requires php >=5.6.4 -> your PHP version (5.5.30) does not satisfy that requirement.
Problem 3
- Installation request for phpunit/php-code-coverage 4.0.1 -> satisfiable by phpunit/php-code-coverage[4.0.1].
- phpunit/php-code-coverage 4.0.1 requires php ^5.6 || ^7.0 -> your PHP version (5.5.30) does not satisfy that requirement.
Problem 4
- Installation request for phpunit/phpunit 5.6.2 -> satisfiable by phpunit/phpunit[5.6.2].
- phpunit/phpunit 5.6.2 requires php ^5.6 || ^7.0 -> your PHP version (5.5.30) does not satisfy that requirement.
Problem 5
- Installation request for phpunit/phpunit-mock-objects 3.4.0 -> satisfiable by phpunit/phpunit-mock-objects[3.4.0].
- phpunit/phpunit-mock-objects 3.4.0 requires php ^5.6 || ^7.0 -> your PHP version (5.5.30) does not satisfy that requirement.
Problem 6
- Installation request for sebastian/code-unit-reverse-lookup 1.0.0 -> satisfiable by sebastian/code-unit-reverse-lookup[1.0.0].
- sebastian/code-unit-reverse-lookup 1.0.0 requires php >=5.6 -> your PHP version (5.5.30) does not satisfy that requirement.
Problem 7
- Installation request for sebastian/object-enumerator 1.0.0 -> satisfiable by sebastian/object-enumerator[1.0.0].
- sebastian/object-enumerator 1.0.0 requires php >=5.6 -> your PHP version (5.5.30) does not satisfy that requirement.
Problem 8
- Installation request for sebastian/resource-operations 1.0.0 -> satisfiable by sebastian/resource-operations[1.0.0].
- sebastian/resource-operations 1.0.0 requires php >=5.6.0 -> your PHP version (5.5.30) does not satisfy that requirement.
Problem 9
- Installation request for sebastian/version 2.0.0 -> satisfiable by sebastian/version[2.0.0].
- sebastian/version 2.0.0 requires php >=5.6 -> your PHP version (5.5.30) does not satisfy that requirement.
Application ready! Build something amazing.
Downloading Spark...
I don't want to just bypass the required PHP version by editing in the composer file, because I'm not sure if it's causing problems when installing apps or not. None of my Spark or Laravel installations work, they just give a 500 status error, it could be something else, but I was assuming it was this same problem.
All fixed.
Thanks #Kyslik for your suggestion.
I had previously tried updating my PATH, but for some reason it worked this time. I must have made a mistake before. For reference of anyone else having this issue, I followed this:
How to override the path of PHP to use the MAMP path?

Categories