在mac系統中MAMP環境下安裝lavarel vendor時出現php 版本號不匹配的錯誤

當執行 composer install 的時候,出現報錯php

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ^7.2.5 but your PHP version (7.1.23) does not satisfy that requirement.
  Problem 2
    - laravel/tinker v2.4.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
    - laravel/tinker v2.3.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
    - laravel/tinker v2.2.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
    - laravel/tinker v2.1.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
    - laravel/tinker v2.0.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
    - laravel/tinker 2.x-dev requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
    - Installation request for laravel/tinker ^2.0 -> satisfiable by laravel/tinker[2.x-dev, v2.0.0, v2.1.0, v2.2.0, v2.3.0, v2.4.0].

這是由於系統中默認的php版本是7.1.23. 執行php -vlaravel

PHP 7.1.23 (cli) (built: Feb 22 2019 22:08:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

解決辦法php7

mac 系統可能自帶、或者不知道怎麼裝個了 php 7.1.32 版本,在 /usr/bin/php 下,我裝了個 mamp 軟件,在 ~/.profile 裏定義了 php /Applications/...../php7.2.14/.../php,因此我經過控制檯執行 php -v 時走的是別名,即 7.2.14。(usr/bin/php -v 輸出 7.1.32)

laravel-install 裏第一句話定義了 #!/usr/bin/env php,這句話的意思是從 /usr/bin/php 和 /usr/local/bin/php 裏找 php,就致使很難發現問題所在。

第一種解決方案:

# 用 php 7.2.14 的地址強制軟連接到 /usr/bin/php
sudo ln -sf /Applications/MAMP/bin/php/php7.2.14/bin/php /usr/bin/php
若是你想同時存在多版本,可能這種方法不太合適。

第二種解決方案:

修改 laravel-install 裏第一句話,去掉或指定 php 目錄(不建議這種,太麻煩)
相關文章
相關標籤/搜索