在多版本php环境,指定composer使用的php版本
在不同的项目中,可能会使用不同的php版本。在使用 composer 安装依赖时,如何指定不同的php版本呢?

composer install
比如平时工作开发时,使用的是 php 7.0版本,但是在安装 Laravel新版本(7.x) 时就跑不同了。因为在Laravel 7.x 中, 最低要求版本是 PHP >= 7.2.5。
查看默认PHP版本:
本机中默认PHP版本是7.0.30,命令地址是“/usr/local/bin/php”。
$ which php
/usr/local/bin/php
$ /usr/local/bin/php -v
PHP 7.0.30 (cli) (built: Jun 22 2018 00:52:06) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.30, Copyright (c) 1999-2017, by Zend Technologies
安装PHP 7.2
在macOS系统中,可以直接使用brew软件管理工具安装(如果没有,需要先安装brew软件):
$ brew search php72
$ brew install php72
// 将命令路径复制一份到环境变量目录里:
$ cp /usr/local/Cellar/php/7.2.7/bin/php /usr/local/bin/php72
查看php7.2:
$ /usr/local/bin/php72 -v
PHP 7.2.7 (cli) (built: Jun 22 2018 06:29:00) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.7, Copyright (c) 1999-2018, by Zend Technologies
php72 的命令路径是我们上边指定的 “/usr/local/bin/php72”:
$ which php72
/usr/local/bin/php72
下载 composer.phar 文件
composer 网站上提供phar文件。【phar】包类似Java中的【jar】包,是一种压缩包,用来将多个 PHP 文件打包为一个文件。
$ wget https://getcomposer.org/download/1.6.5/composer.phar
composer --version
Composer version 1.9.0 2019-08-02 20:55:32
下载好后,直接使用:

比如安装 “laravel/passport” 包:
// 直接使用默认php版本
$ composer require laravel/passport
// 使用指定的php版本(php7.2)
$ php72 composer.phar require laravel/passport
再看一下使用对比:
// php7.2全路径:
// 使用默认php版本:
$ composer update
// 使用指定php7.2版本:
$ /usr/local/bin/php72 composer.phar update
// 使用默认php版本:
$ composer install
// 使用指定php7.2版本:
$ php72 composer.phar install
在使用 php artisan 命令行时,也要使用 php72:
$ php72 artisan
相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36