首页 > 解决方案 > 用自制软件更新 php 会导致并发症

问题描述

我的 php 版本是 7.1.33,但为了安装特定的 Laravel 项目,我至少需要 7.2 版本。我正在使用安装了 High Sierra (10.13) 的 Mac。所以我安装了自制软件,然后是这个:

brew install php@7.2
echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile
brew link php@7.2

根据php -v(在 laravel 项目的目录中)我的版本是 7.2.33,MAMP 使用的是 7.2.8,所以我认为这很好。

which php向我展示:/usr/local/bin/php

php --ini告诉我/usr/local/etc/php/7.2我的 php.ini 在/usr/local/etc/php/7.2/php.ini哪里以及加载的配置文件在哪里。

在 Mamp 的浏览器中,phpinfo 给了我这些路径:

php.ini:/Applications/MAMP/bin/php/php7.2.8/conf
加载的配置文件:/Applications/MAMP/bin/php/php7.2.8/conf/php.ini

在所述项目中尝试“composer install”时,出现无法安装某些扩展的错误。此扩展名列在 Mamp 的 php.ini 中,但不在终端给我的 /usr/local/etc/php/7.2/php.ini 中。

我很困惑如何解决这个问题,我是否未能正确安装 php 7.2?
有没有人知道到底出了什么问题,或者在安装项目的作曲家时如何在终端中使用正确的 php.ini(Mamp 的,其中列出了扩展名)?

标签: phplaravelterminalhomebrewmamp

解决方案


事实上,MAMP 将使用自己的 PHP 版本和配置文件,而忽略 brew 安装的文件。另一方面,您的终端会做相反的事情。

因此,您需要通过将 bin 文件夹添加到路径来告诉系统使用 MAMP php:

brew unlink php@7.2
export PATH="/Applications/MAMP/bin/php/php7.2.8/bin:$PATH" >> ~/.bash_profile

注意:你应该/usr/local/opt/php@7.2/bin从你的路径中删除,检查你的~/.bash_profile文件


如果你想保持系统 php 和 MAMP php 分开,你可以为 mamp PHP 别名一个不同的命令:

alias phpmamp="/Applications/MAMP/bin/php/php7.2.8/bin/php"

然后使用它调用作曲家:

phpmamp composer install

推荐阅读