Подтвердить что ты не робот

Как переопределить путь 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: Здесь какое выходное эхо $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
4b9b3361

Ответ 1

Каждый раз, когда вы сохраняете конфигурацию MAMP (раздел PHP), он сохраняет текущую версию PHP в файле ~/.profile и создает псевдоним для php, pear и pecl, чтобы указать текущую настроенную версию.

Однако вам нужно обновить свой терминал (открыть другой сеанс), чтобы обновить этот файл. Вы также можете набрать source ~/.profile чтобы обновить псевдонимы вручную.

Если вы хотите извлечь эту текущую версию в переменную 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 PHPRC="/Library/Application Support/appsolute/MAMP PRO/conf/" #point to your php.ini folder to use the same php settings
export PATH=/Applications/MAMP/bin/php/php$PHP_VERSION/bin:$PATH

Теперь даже скрипт, использующий /usr/bin/env php будет читать правильную версию из конфигурации Mamp.

Ответ 2

В домашней папке /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.

Ответ 3

Тот факт, что ранее принятый ответ относится к 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 после внесения изменений, чтобы убедиться, что они вступают в силу.)

Как уже упоминалось, вы, вероятно, также захотите изменить свою оболочку для использования исполняемого файла MAMP mysql, который находится в /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 "[email protected]"
}
mysqladmin() {
    /Applications/MAMP/Library/bin/mysqladmin "[email protected]"
}
export -f mysql
export -f mysqladmin

Я использовал функции вместо псевдонимов, потому что псевдонимы не передаются дочерним процессам или, по крайней мере, в контексте сценария оболочки. Единственный недостаток, который я обнаружил, это то, which mysql и which mysqladmin больше не будут возвращать ничего, что является обломом. Если вы хотите проверить, какой mysql используется, и убедиться, что все в двух вариантах, используйте вместо этого mysql --version.

Примечание: @julianromera указывает, что zsh не поддерживает экспорт функций, поэтому в этом случае лучше всего использовать псевдоним, например, alias mysql='/Applications/MAMP/Library/bin/mysql'. Просто имейте в виду, что ваши псевдонимы могут быть недоступны из подоболочек (например, при выполнении сценария оболочки).

Ответ 4

Я обнаружил, что на Mavericks 10.8 не было .bash_profile, и мои пути были расположены в /etc/paths

Чтобы новый путь (будь то маска или brew установка php) вступил в силу, он должен быть выше значения по умолчанию /usr/bin/php в этом файле путей. например.

/Applications/MAMP/bin/php/php5.3.6/bin
/usr/bin 

Внесите изменения, откройте новое окно терминала и запустите "какой php", который должен теперь указывать на ваш обновленный путь

Ответ 5

вы все равно можете запустить двоичный файл 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"

веселит

Ответ 6

Если вам нужно набрать

/Applications/MAMP/bin/php5.3/bin/php

в командной строке, затем добавьте

/Applications/MAMP/bin/php5.3/bin

для вашего PATH, чтобы иметь возможность вызывать php из любого места.

Ответ 7

Это работало для меня:

sudo mv /usr/bin/php /usr/bin/~php
sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php

Ответ 8

Иногда легче сделать это:

sudo ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /usr/bin/php;

Версия Mamps PHP во время публикации была php5.6.10, поэтому убедитесь, что вы изменили ее на версию, которую вы используете.

Вы будете в один миг.

Ответ 9

Для пользователей XAMPP вы можете использовать это:

# Use XAMPP version of PHP
export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH
source ~/.bash_profile

И вы можете проверить это с помощью:

php -v

Ответ 10

Возможно, слишком поздно комментировать, но вот что я сделал, когда у меня возникли проблемы с настройкой php PATH для моей установки XAMPP на Mac OSX

  • Откройте файл .bash_profile (найденный в текущей папке пользователя) с помощью доступного текстового редактора.
  • Добавьте путь, как показано ниже:

export PATH =/path/to/your/php/installation/bin: оставить/отдохнуть/из//материал/нетронутый/: $PATH

  1. Сохраните свой .bash_profile и заново запустите свой Mac.

Объяснение: Терминал /Mac пытается выполнить поиск в PATHS, о котором он знает, в надежде найти программу, когда пользователь запускает программу из "Терминала", следовательно, трюк здесь заключается в том, чтобы заставить терминал найти php, пользователь намеревается, указав его на пользовательскую версию PHP в некоторой папке bin, установленную пользователем.

Работал для меня:)

P.S Я все еще потерял овец вокруг моего нового Компьютера;)

Ответ 11

Это не идеальное решение, так как вам нужно управлять двумя ini файлами, однако мне удалось обойти это на окнах, скопировав файл php ini в mamp из папки conf на ваш активный php версии в папке bin.

[MAMP INSTALL]\conf\[ACTIVE PHP VERSION]\php.ini

скопировать в

[MAMP INSTALL]\bin\php\[ACTIVE PHP VERSION]

Ответ 12

Чтобы комплимент текущего принятого ответа, если вы предполагаете, что MAMP использует самую последнюю версию php5 по умолчанию, вы можете добавить grep 'php5' посередине:

PHP_VERSION= `ls /Applications/MAMP/bin/php/ | sort -n | grep 'php5' | tail -1`

и вам гарантированно получить последний php5, независимо от версии MAMP.

Ответ 13

Последняя версия MAMP (версия 5+) предлагает простой способ сделать версию MAMP PHP доступной для командной строки. Просто выберите "PHP" в боковом меню и установите флажок "Сделать эту версию доступной в командной строке". Очень просто! Смотрите прикрепленный скриншот :)

screenshot