1.假设你已经安装了php8.1版本和高版本的laravel框架。
我们现在来创建一种低版本的。
方法如下:
先安装php7.0,输入命令:
sudo apt-get install php7.0
然后到php目录查看,已经安装上了:
OK,为了不影响原来的8.1版本,全局变量环境这些我们就不去改变了。
而是直接通过目录调用。
php 7.0的可执行程序在/usr/bin/目录里,如下:
我们输入如下命令调用测试一下:
/usr/bin/php7.0 -v
OK,正常显示版本。
接着我们去下载php7.0对应的composer 2.2版本。
网站:Composer
接着我们将这个composer.phar脚本,移动自己想要的目录,当然你也可以不移动
我这里是新建了个laravel目录。
然后再在那个目录右击,选择在终端打开(或者你也可以加上composer2.2的绝对路径),通过php7.0直接调用这个composer2.2的脚本,如下命令:
/usr/bin/php7.0 composer.phar -v
OK,正常显示2.2版本:
好,接下来我们创建适用于php7.0的laravel 5.5版本,如下命令:
/usr/bin/php7.0 composer.phar create-project --prefer-dist laravel/laravel laravelphp7 5.5.*
然后会提示一些php扩展没安装,我们依次安装(注意选择对应7.0的扩展)。
安装方法参考:https://blog.csdn.net/d3582077/article/details/135490828
然后提示报下面的错:
Problem 1
- phpunit/phpunit[6.0.0, ..., 6.5.14] require ext-mbstring * -> satisfiable by symfony/polyfill-mbstring[v1.0.0, ..., v1.28.0].
- symfony/polyfill-mbstring[v1.24.0, ..., v1.28.0] require php >=7.1 -> your php version (7.0.33) does not satisfy that requirement.
- Root composer.json requires phpunit/phpunit ~6.0 -> satisfiable by phpunit/phpunit[6.0.0, ..., 6.5.14].
我们还是通过安装扩展库的方法解决:
sudo apt-get install php7.0-mbstring
接着删掉laravelphp7,再次创建:
/usr/bin/php7.0 composer.phar create-project --prefer-dist laravel/laravel laravelphp7 5.5.*
然后会有一有些提示,一路按y即可。
OK,这次安装成功:
我们接着,启动项目测试一下:
php artisan serve
报错:
我们还需要在项目中,切换一下php版本,输入如下命令:
sudo update-alternatives --config php
选择7.0版本:
接着,再运行php artisan serve终于OK,页面正常访问:(我已经在项目里写了个test.php页面:phpinfo())
是7.0版本的。
接着测试原来的php8.1版本,停止7.0的服务,进入8.1的项目,切换成8.1版本:
sudo update-alternatives --config php
启动8.1的项目。
php artisan serve
也OK,两者都能正常工作。8.1版本: