Назад | Перейти на главную страницу

Псевдоним не работает в скрипте с #! / 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?

/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 (или другой подходящий сценарий запуска).