#php #laravel #terminal #homebrew #mamp
#php #laravel #терминал #homebrew #mamp
Вопрос:
Моя версия php была 7.1.33, но для установки конкретного проекта Laravel мне нужна была как минимум версия 7.2. Я использую Mac с установленной High Sierra (10.13). Итак, я установил homebrew, а затем это:
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
где находится загруженный файл конфигурации.
В браузере phpinfo из Mamp вместо этого выдает мне эти пути:
php.ini: /Applications/MAMP/bin/php/php7.2.8/conf
загруженный конфигурационный файл: /Applications/MAMP/bin/php/php7.2.8/conf/php.ini
При попытке «composer install» в указанном проекте я получаю сообщение об ошибке, что я не могу установить некоторые расширения. Эти расширения перечислены в php.ini Mamp, но не в /usr /local /etc /php / 7.2 / php.ini, который дал мне терминал.
Я в замешательстве, что делать для решения этой проблемы, я не смог правильно установить php 7.2?
Есть ли у кого-нибудь идеи, что именно пошло не так или как я могу использовать правильный php.ini (файл Mamp, где перечислены расширения) в терминале при установке composer проекта?
Ответ №1:
Если вы просто хотите проигнорировать ошибку composer, добавьте конфигурацию платформы в свой composer.json.
Например:
{
"config": {
"platform": {
"ext-mailparse": "1.0",
"ext-intl": "1",
"lib-icu": "4.2.1",
"php": "7.4.8",
"ext-gettext": "1"
}
},
"require": {
...
}
}
Комментарии:
1. У меня есть все расширения в «require»-части. В чем разница, если поместить это в конфигурацию платформы?
2. конфигурация платформы позволяет вам эмулировать нужную платформу, чтобы вы могли просто устанавливать пакеты, соответствующие этим требованиям платформы
Ответ №2:
Дело в том, что MAMP будет использовать свою собственную версию PHP и конфигурационные файлы и будет игнорировать установленные brew. Ваш терминал, с другой стороны, сделает обратное.
Итак, вам нужно сообщить вашей системе использовать MAMP php, добавив его папку bin в path:
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
из своего path, проверьте свой ~/.bash_profile
файл
Если вы хотите, чтобы системный php и MAMP php были разделены, вы могли бы использовать другую команду для mamp PHP:
alias phpmamp="/Applications/MAMP/bin/php/php7.2.8/bin/php"
а затем вызовите composer, используя его:
phpmamp composer install
Комментарии:
1. Как мне удалить его со своего пути? Я довольно новичок в консоли / терминале
2. Вам нужно вручную отредактировать ваш
~/.bash_profile
файл, ближе к концу вы найдете строку, содержащую »export PATH="/usr/local/opt/php@7.2/bin:$PATH
«. Удалите его и сохраните файл. Затем закройте и снова откройте свой терминал3. Спасибо за вашу помощь, я попробую это 🙂
4. К сожалению, второй вариант не сработал. «composer» рассматривается как входной файл, и я получаю это: «Не удалось открыть входной файл».
Ответ №3:
Я просто вручную установил необходимые мне расширения, обновление php работало нормально.