Как переопределить путь PHP для использования пути MAMP?
после полного завинчивания моей конфигурации PHP на MAC, пытаясь заставить модуль SOAP работать (- bash: / usr / bin / php: нет такого файла или каталога ....) Теперь я должен использовать MAMP, но каждый раз, когда я должен ввести путь
Applications/MAMP/bin/php5.3/bin/php to do command line.
как просто ввести php вместо всего пути на MAC ? Я дважды проверил и у меня нет файла с именем .profile
, ни bash_profile
спасибо
PS: вот что выводит echo $PATH:
echo $PATH
/Applications/MAMP/Library/bin/:/Applications/MAMP/bin/php5/bin/:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin
12 ответов:
тот факт, что ранее принятый ответ относится к php 5.3.6, в то время как текущая версия MAMP поставляется с 7.2.1 по умолчанию (с начала 2018 года), указывает на то, что это не очень устойчивое решение. Вы можете автоматически обновить свой путь, добавив дополнительную строку в свой
.bash_profile
чтобы получить последнюю версию PHP от/Applications/MAMP/bin/php/
и экспортировать это на свой путь. Вот как я это делаю:# Use MAMP version of PHP PHP_VERSION=`command ls /Applications/MAMP/bin/php/ | sort -n | tail -1` export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH
(использовать
source ~/.bash_profile
после внесения изменений, чтобы убедиться, что они принимают эффект.)как уже упоминалось, вы, вероятно, также захотите изменить свою оболочку, чтобы использовать исполняемый файл mysql MAMP, который находится в
/Applications/MAMP/Library/bin
. Тем не менее, я делаю не рекомендуем экспортировать эту папку, потому что там есть куча других исполняемых файлов, таких какlibtool
, что вы, вероятно, не хотите отдавать приоритет над установленными версиями вашей системы. Эта проблема помешала мне недавно установить пакет узла (libxmljs), как описано в документе здесь.мое решение было определить и экспортировать
mysql
иmysqladmin
функции:# Export MAMP MySQL executables as functions # Makes them usable from within shell scripts (unlike an alias) mysql() { /Applications/MAMP/Library/bin/mysql "$@" } mysqladmin() { /Applications/MAMP/Library/bin/mysqladmin "$@" } export -f mysql export -f mysqladmin
я использовал функции вместо псевдонимов, потому что псевдонимы не передаются дочерним процессам или, по крайней мере, не в контексте сценария оболочки. Единственный недостаток, который я нашел, это то, что работает
which mysql
иwhich mysqladmin
больше не будет возвращать ничего, что является облом. Если вы хотите проверить, какой mysql используется и убедитесь, что все является copacetic, используйте .Примечание: @julianromera указывает, что zsh не поддерживает функции экспорта, поэтому в этом случае вам лучше всего использовать псевдоним, например
alias mysql='/Applications/MAMP/Library/bin/mysql'
. Просто имейте в виду, что ваши псевдонимы могут быть недоступны из вложенных ячеек (например, при выполнении сценария оболочки).
в папке
/Users/David
для exmaple, вы можете создать.bash_profile
. Здесь вы можете экспортировать переменные, а затем добавить их в свой путь.откройте файл, чтобы отредактировать его в своем любимом редакторе, я использую vim.
тогда вы можете добавить в свой путь
export MAMP_PHP=/Applications/MAMP/bin/php/php5.3.6/bin export PATH="$MAMP_PHP:$PATH"
вы хотите, чтобы ваш чуть впереди
$PATH
как уже включает в себя/usr/bin
где живет система PHP. Таким образом, система всегда найдет вашу версию MAMP в первую очередь.Сохраните этот файл а затем перезагрузите свой терминал, и вы увидите, что вы должны получить свою версию MAMP.
для проверки я использую
php -v
как OSX Lion использует 5.3.10 и мой МАМП использует 5.3.6
Вы также можете проверить с помощьюwhich php
который выведет путь к вашему текущему исполняемому файлу php.
Я обнаружил, что на Mavericks 10.8 не было .bash_profile и мои пути были расположены в /etc / paths
чтобы новый путь (будь то MAMP или brew install of php) вступил в силу, он должен быть выше по умолчанию /usr/bin/php в этом файле путей. например.
/Applications/MAMP/bin/php/php5.3.6/bin /usr/bin
после изменения откройте новое окно терминала и запустите "какой php", который теперь должен указывать на ваш обновленный путь
вы все еще можете столкнуться с двоичным файлом mysql, который не найден таким образом
open terminal, type touch ~/.bash_profile; open ~/.bash_profile
изменить следующим образом ниже, сохранить и перезапустить терминал или попеременно
source ~/.bash_profile
выполнить новый путь без перезагрузки терминала
и в порядке сообщения DavidYell выше, также добавить следующее. Вы можете складывать различные переменные, экспортируя их с последующим экспортом одного пути, который я продемонстрировал ниже
export MAMP_PHP=/Applications/MAMP/bin/php/php5.6.2/bin export MAMP_BINS=/Applications/MAMP/Library/bin export USERBINS=~/bins export PATH="$USERBINS:$MAMP_PHP:$MAMP_BINS:$PATH"
ура
Если вам нужно ввести
/Applications/MAMP/bin/php5.3/bin/php
в командной строке затем добавить
/Applications/MAMP/bin/php5.3/bin
к вашему пути, чтобы иметь возможность вызывать php из любого места.
Это один работал для меня:
sudo mv /usr/bin/php /usr/bin/~php sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php
иногда это проще сделать:
sudo ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /usr/bin/php;
Mamps версия PHP на момент публикации была
php5.6.10
, поэтому убедитесь, что вы измените это на версию, которую вы используете.вы будете в один миг.
для пользователей XAMPP вы можете использовать это:
# Use XAMPP version of PHP export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH source ~/.bash_profile
и вы можете проверить это с:
php -v
вероятно, слишком поздно комментировать, но вот что я сделал, когда столкнулся с проблемами с установкой PHP PATH для моей установки XAMPP на Mac OSX
- открыть файл .bash_profile (находится в папке текущего пользователя) с помощью доступного текстового редактора.
- добавить путь как показано ниже:
экспорт Путь= / path / to / your/php / installation / bin:оставьте / отдых/из / вещи / нетронутыми/:$PATH
- сохранить .bash_profile и повторно запустите ваш Mac.
пояснение: терминал / Mac пытается выполнить поиск на пути он знает о том, в надежде найти программу, когда пользователь инициирует программа из "терминала", следовательно, трюк здесь состоит в том, чтобы заставить терминал найти php, пользователь намеревается, путем указывая на версию PHP пользователя в какой-то папке bin, установленной пользователем.
работала на меня :)
P. S Я все еще потерянная овца вокруг моего нового компьютера;)
Это не идеальное решение, поскольку вам нужно управлять двумя ini-файлами, однако мне удалось обойти это в windows, скопировав файл php ini в mamp из папки conf в вашу активную версию php в папке bin.
[MAMP INSTALL]\conf\[ACTIVE PHP VERSION]\php.ini
скопировать
[MAMP INSTALL]\bin\php\[ACTIVE PHP VERSION]
чтобы дополнить текущий принятый ответ, если вы предполагаете, что MAMP использует самую последнюю версию php5 по умолчанию, вы можете добавить grep 'php5' в середине:
PHP_VERSION= `ls /Applications/MAMP/bin/php/ | sort -n | grep 'php5' | tail -1`
и вы гарантированно получите самый последний php5 независимо от версии MAMP.
каждый раз, когда вы сохраняете конфигурацию MAMP, он сохраняет текущую версию PHP на
~/.profile
файл и создает псевдоним для php, pear и pecl, чтобы указать на текущую настроенную версию.однако для обновления этого файла необходимо обновить терминал (открыть другой сеанс). Вы также можете ввести
source ~/.profile
чтобы повторно использовать псевдонимы вручную.если вы хотите извлечь эту curerent версию в переменной PHP_VERSION - как указано выше-для дальнейшего использования, вы можете делать:
export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-`
и тогда у вас будет $PHP_VERSION, доступный с текущей версией MAMP.
наконец, если вы хотите запустите php, используя текущую настроенную версию на mamp, вам просто нужно добавить в свой
~/.bash_profile
следующее:export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-` export PATH=/Applications/MAMP/bin/php/php$PHP_VERSION/bin:$PATH
теперь, даже скрипт, который полагается на
/usr/bin/env php
прочитает правильную версию из конфигурации Mamp.