Псевдоним не работает в сценарии с #!/ Usr/bin/env php

У меня есть несколько PHP-скриптов, которые начинаются с #!/usr/bin/env php, По умолчанию используется интерпретатор PHP 4.4, но для сценариев требуется PHP 5.3, поэтому я создал псевдоним в ~/.bashrc:

alias php="/usr/local/bin/php5-53LATEST-CLI"

Так зовет php -v показывает мне 5.3 но #!/usr/bin/env php использует еще 4.4. Я не буду менять сценарии. Так как я могу получить PHP 5.3 с #!/usr/bin/env php?

1 ответ

Решение

/usr/bin/env php ищет исполняемый файл с именем php в течении $PATH; он не обращает внимания на псевдонимы, функции оболочки и т. д. Если вы хотите, чтобы он выполнял php v5.3, вы должны поместить эту версию в каталог под именем phpи поместите этот каталог в свой PATH где-то перед каталогом, который содержит версию 4.4. Может быть, что-то вроде этого:

mkdir /usr/local/bin/php-overrides
ln -s /usr/local/bin/php5-53LATEST-CLI /usr/local/bin/php-overrides/php

...затем добавьте

PATH="/usr/local/bin/php-overrides:$PATH"

на ваш ~/.bash_profile (или другой соответствующий скрипт запуска).

Другие вопросы по тегам