Как переопределить путь 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.