如何解决用自制软件更新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
给出了我的php.ini所在的位置/usr/local/etc/php/7.2
和加载的配置文件所在的位置/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的,列出了扩展名)?
解决方法
如果只想忽略作曲家错误;将平台配置添加到您的composer.json。
例如:
{
"config": {
"platform": {
"ext-mailparse": "1.0","ext-intl": "1","lib-icu": "4.2.1","php": "7.4.8","ext-gettext": "1"
}
},"require": {
...
}
}
,
事实是,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
,
我只是手动安装了所需的扩展名,更新php效果很好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。