После полной проверки моей настройки 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: Вот что такое выходное эхо $ 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
Тот факт, что ранее принятый ответ относится к php 5.3.6, в то время как текущая версия MAMP поставляется с 5.6.2 по умолчанию (по состоянию на 2015-05-01), указывает, что это не очень устойчивое решение. Вы можете убедиться, что ваш путь обновляется автоматически, добавив дополнительную строку в ваш .bash_profile
чтобы получить последнюю версию PHP из /Applications/MAMP/bin/php/
и экспортировать ее на ваш путь. Вот как я это делаю:
# Use MAMP version of PHP PHP_VERSION=`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 используется, и убедитесь, что все коаксиально, используйте mysql --version
.
Примечание: @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, а мой MAMP использует 5.3.6
Вы также можете проверить, используя which php
который выведет путь к вашему текущему исполняемому файлу php.
Я обнаружил, что на Mavericks 10.8 не было .bash_profile, и мои пути были расположены в / etc / paths
Для того, чтобы новый путь (будь то маска или установка вируса 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
выполнить новый PATH без перезапуска терминала
и в качестве поста DavidYell выше, также добавьте следующее. Вы можете складывать различные переменные, экспортируя их, за которым следует один экспорт PATH, который я продемонстрировал ниже
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
к вашей PATH, чтобы иметь возможность вызывать 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
экспорт PATH = / путь / в / ваш / php / установка / bin : оставить / отдохнуть / из / the / stuff / нетронутый / : $ PATH
Объяснение: Терминал / Mac пытается запустить поиск в PATHS, о котором он знает, в надежде найти программу, когда пользователь инициирует программу из «Терминала», поэтому здесь нужно сделать вывод, что терминал найдет php, пользователь намеревается, указав его на пользовательскую версию PHP в некоторой папке bin, установленную пользователем.
Работал для меня 🙂
PS Я все еще потерял овец вокруг моего нового Компьютера;)
Это не идеальное решение, так как вам нужно управлять двумя ini-файлами, но мне удалось обойти это на окнах, скопировав файл 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.